From b357fe57b2b35f62572f99515a0666954281b49f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Wed, 10 Feb 2021 07:49:17 +0100 Subject: [PATCH 01/16] test-tables: fix warning about NULL used in printf With the simplified asserts, newer gcc is able to (correctly) figure out that NULL was being passed. --- src/shared/test-tables.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/shared/test-tables.h b/src/shared/test-tables.h index bb8177b649..120dc7f2e9 100644 --- a/src/shared/test-tables.h +++ b/src/shared/test-tables.h @@ -27,7 +27,7 @@ static inline void _test_table(const char *name, } if (boring < 1 || i == size) - printf("%s: %d → %s → %d\n", name, i, val, rev); + printf("%s: %d → %s → %d\n", name, i, strnull(val), rev); else if (boring == 1) printf("%*s ...\n", (int) strlen(name), ""); From 3c3cd61e75edf4e324c1d342842cab88dd7330cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Fri, 18 Jan 2019 17:31:32 +0100 Subject: [PATCH 02/16] test-tables: make the assert more readable Doing it all in one line and with negation in front seemed like a good idea at some point, but I think it is vastly easier to understand when it is split out a bit. --- src/shared/test-tables.h | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/shared/test-tables.h b/src/shared/test-tables.h index 120dc7f2e9..e68ec60497 100644 --- a/src/shared/test-tables.h +++ b/src/shared/test-tables.h @@ -31,9 +31,13 @@ static inline void _test_table(const char *name, else if (boring == 1) printf("%*s ...\n", (int) strlen(name), ""); - assert_se(!(i >= 0 && i < size ? - sparse ? rev != i && rev != -1 : val == NULL || rev != i : - val != NULL || rev != -1)); + if (i >= 0 && i < size) { + if (sparse) + assert_se(rev == i || rev == -1); + else + assert_se(val != NULL && rev == i); + } else + assert_se(val == NULL && rev == -1); } } From 170d40260ba4484726d247b679089a394b5ffcf6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Wed, 8 May 2019 11:09:10 +0200 Subject: [PATCH 03/16] core: do not initialize variable which is unconditionally set below --- src/core/dbus-timer.c | 2 +- src/core/dbus-unit.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/core/dbus-timer.c b/src/core/dbus-timer.c index 8e69c17327..88b2f2cacf 100644 --- a/src/core/dbus-timer.c +++ b/src/core/dbus-timer.c @@ -338,7 +338,7 @@ static int bus_timer_set_transient_property( b = timer_base_from_string(name); if (b < 0) - return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Unknown timer base"); + return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Unknown timer base %s", name); r = sd_bus_message_read(message, "t", &usec); if (r < 0) diff --git a/src/core/dbus-unit.c b/src/core/dbus-unit.c index 67cc58ee9e..90bf5514a3 100644 --- a/src/core/dbus-unit.c +++ b/src/core/dbus-unit.c @@ -1982,7 +1982,7 @@ static int bus_unit_set_transient_property( UnitWriteFlags flags, sd_bus_error *error) { - UnitDependency d = _UNIT_DEPENDENCY_INVALID; + UnitDependency d; int r; assert(u); From 61b315de9b9a0688d63142947d0e5ce76e6bc7ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Tue, 9 Feb 2021 16:32:55 +0100 Subject: [PATCH 04/16] Add comma in structured initialization in a few places MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It just looks nicer… --- src/journal-remote/journal-upload.c | 2 +- src/libsystemd/sd-bus/test-bus-error.c | 2 +- src/update-utmp/update-utmp.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/journal-remote/journal-upload.c b/src/journal-remote/journal-upload.c index 455a6c942e..4d6041e911 100644 --- a/src/journal-remote/journal-upload.c +++ b/src/journal-remote/journal-upload.c @@ -413,7 +413,7 @@ static int setup_uploader(Uploader *u, const char *url, const char *state_file) assert(url); *u = (Uploader) { - .input = -1 + .input = -1, }; host = STARTSWITH_SET(url, "http://", "https://"); diff --git a/src/libsystemd/sd-bus/test-bus-error.c b/src/libsystemd/sd-bus/test-bus-error.c index 958884d56f..84728e4e84 100644 --- a/src/libsystemd/sd-bus/test-bus-error.c +++ b/src/libsystemd/sd-bus/test-bus-error.c @@ -15,7 +15,7 @@ static void test_error(void) { const sd_bus_error temporarily_const_error = { .name = SD_BUS_ERROR_ACCESS_DENIED, .message = "oh! no", - ._need_free = -1 + ._need_free = -1, }; assert_se(!sd_bus_error_is_set(&error)); diff --git a/src/update-utmp/update-utmp.c b/src/update-utmp/update-utmp.c index 1ec9066d34..38df4cddf0 100644 --- a/src/update-utmp/update-utmp.c +++ b/src/update-utmp/update-utmp.c @@ -215,7 +215,7 @@ static int on_runlevel(Context *c) { static int run(int argc, char *argv[]) { _cleanup_(context_clear) Context c = { #if HAVE_AUDIT - .audit_fd = -1 + .audit_fd = -1, #endif }; int r; From ec08f27069161565c52d218dcf464f55a0e15c23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Tue, 9 Feb 2021 16:43:03 +0100 Subject: [PATCH 05/16] core: drop bitfields in Manager object MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Every bitfield may make the object a little smaller, but requires additional code when accessing the field. So it only makes sense in objects that are created in many many copies. The Manager is pretty much a singleton. -rwxrwxr-x 1 zbyszek zbyszek 4443840 Feb 9 16:14 build/systemd -rwxrwxr-x 1 zbyszek zbyszek 4442552 Feb 9 16:42 build/systemd We save 1288 bytes of code by "wasting" a few bytes on storage. (The speed advantages are probably more important, but harder to measure…) --- src/core/manager.h | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/core/manager.h b/src/core/manager.h index 19df889dd8..e56d297908 100644 --- a/src/core/manager.h +++ b/src/core/manager.h @@ -311,25 +311,25 @@ struct Manager { /* The stat() data the last time we saw /etc/localtime */ usec_t etc_localtime_mtime; - bool etc_localtime_accessible:1; + bool etc_localtime_accessible; - ManagerObjective objective:5; + ManagerObjective objective; /* Flags */ - bool dispatching_load_queue:1; + bool dispatching_load_queue; - bool taint_usr:1; + bool taint_usr; /* Have we already sent out the READY=1 notification? */ - bool ready_sent:1; + bool ready_sent; /* Have we already printed the taint line if necessary? */ - bool taint_logged:1; + bool taint_logged; /* Have we ever changed the "kernel.pid_max" sysctl? */ - bool sysctl_pid_max_changed:1; + bool sysctl_pid_max_changed; - ManagerTestRunFlags test_run_flags:8; + ManagerTestRunFlags test_run_flags; /* If non-zero, exit with the following value when the systemd * process terminate. Useful for containers: systemd-nspawn could get @@ -366,8 +366,8 @@ struct Manager { int original_log_level; LogTarget original_log_target; - bool log_level_overridden:1; - bool log_target_overridden:1; + bool log_level_overridden; + bool log_target_overridden; struct rlimit *rlimit[_RLIMIT_MAX]; From 755c6d5923e11b71b465ca29095adf050fb73787 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Tue, 9 Feb 2021 17:02:18 +0100 Subject: [PATCH 06/16] sd-event: drop one bitfield from sd_event_source pahole analysis confirms that the structure size does not change (there was/is a hole after the sequence of bitfields anyway). --- src/libsystemd/sd-event/event-source.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libsystemd/sd-event/event-source.h b/src/libsystemd/sd-event/event-source.h index f0d2a1b9e6..9f6a8d5e16 100644 --- a/src/libsystemd/sd-event/event-source.h +++ b/src/libsystemd/sd-event/event-source.h @@ -56,7 +56,7 @@ struct sd_event_source { char *description; - EventSourceType type:5; + EventSourceType type; signed int enabled:3; bool pending:1; bool dispatching:1; From 4d24463211cf3643a5c1a0ae4743f555408f49a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Tue, 9 Feb 2021 17:08:06 +0100 Subject: [PATCH 07/16] shared/json: make JsonVariant.type field wider pahole shows that this doesn't make a difference, but we can fit -EINVAL into .type without warnings. --- src/shared/json.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/shared/json.c b/src/shared/json.c index fe32212993..b8f8292e74 100644 --- a/src/shared/json.c +++ b/src/shared/json.c @@ -64,7 +64,10 @@ struct JsonVariant { JsonSource *source; unsigned line, column; - JsonVariantType type:5; + /* The current 'depth' of the JsonVariant, i.e. how many levels of member variants this has */ + uint16_t depth; + + JsonVariantType type:8; /* A marker whether this variant is embedded into in array/object or not. If true, the 'parent' pointer above * is valid. If false, the 'n_ref' field above is valid instead. */ @@ -87,9 +90,6 @@ struct JsonVariant { /* If in addition to this object all objects referenced by it are also ordered strictly by name */ bool normalized:1; - /* The current 'depth' of the JsonVariant, i.e. how many levels of member variants this has */ - uint16_t depth; - union { /* For simple types we store the value in-line. */ JsonValue value; From 399f74c79d27e06f22908bfbffbb28e207f5810b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Tue, 9 Feb 2021 19:51:50 +0100 Subject: [PATCH 08/16] sd-netlink: pahole optimization of sd_netlink_slot By rearranging the fields, we can avoid one of the holes (on amd64). By adding more space for .type, -EINVAL can be used as a value later on. The structure is reduced from 96 to 88 bytes (on amd64). Text size is also smaller: -rwxrwxr-x 1 zbyszek zbyszek 4109832 Feb 9 19:50 build/libsystemd.so.0.30.0 -rwxrwxr-x 1 zbyszek zbyszek 4109792 Feb 9 19:51 build/libsystemd.so.0.30.0 --- src/libsystemd/sd-netlink/netlink-internal.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libsystemd/sd-netlink/netlink-internal.h b/src/libsystemd/sd-netlink/netlink-internal.h index efd0cf9335..9159f94dd9 100644 --- a/src/libsystemd/sd-netlink/netlink-internal.h +++ b/src/libsystemd/sd-netlink/netlink-internal.h @@ -38,12 +38,12 @@ typedef enum NetlinkSlotType { struct sd_netlink_slot { unsigned n_ref; + NetlinkSlotType type:8; + bool floating; sd_netlink *netlink; void *userdata; sd_netlink_destroy_t destroy_callback; - NetlinkSlotType type:2; - bool floating:1; char *description; LIST_FIELDS(sd_netlink_slot, slots); From 38d1e120636bf6c998ea0e5be5524e40e38716e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Wed, 10 Feb 2021 14:03:10 +0100 Subject: [PATCH 09/16] sd-bus: drop some bitfields in sd_bus_slot A hole was/is present after the booleans, so changing them to be one byte each doesn't change the structure size (122 bits on amd64). If we add more stuff later, it might make sense to turn some of those into bitfields again. For now, let's take the easy route. EINVAL fits into type now. Code size it minimally reduced: -rwxrwxr-x 1 zbyszek zbyszek 4109792 Feb 10 14:00 build/libsystemd.so.0.30.0 -rwxrwxr-x 1 zbyszek zbyszek 4109712 Feb 10 14:01 build/libsystemd.so.0.30.0 --- src/libsystemd/sd-bus/bus-internal.h | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/libsystemd/sd-bus/bus-internal.h b/src/libsystemd/sd-bus/bus-internal.h index 82fa97fc5d..b9cebf2a02 100644 --- a/src/libsystemd/sd-bus/bus-internal.h +++ b/src/libsystemd/sd-bus/bus-internal.h @@ -127,17 +127,17 @@ typedef enum BusSlotType { struct sd_bus_slot { unsigned n_ref; - BusSlotType type:5; + BusSlotType type:8; - /* Slots can be "floating" or not. If they are not floating (the usual case) then they reference the bus object - * they are associated with. This means the bus object stays allocated at least as long as there is a slot - * around associated with it. If it is floating, then the slot's lifecycle is bound to the lifecycle of the - * bus: it will be disconnected from the bus when the bus is destroyed, and it keeping the slot reffed hence - * won't mean the bus stays reffed too. Internally this means the reference direction is reversed: floating - * slots objects are referenced by the bus object, and not vice versa. */ - bool floating:1; - - bool match_added:1; + /* Slots can be "floating" or not. If they are not floating (the usual case) then they reference the + * bus object they are associated with. This means the bus object stays allocated at least as long as + * there is a slot around associated with it. If it is floating, then the slot's lifecycle is bound + * to the lifecycle of the bus: it will be disconnected from the bus when the bus is destroyed, and + * it keeping the slot reffed hence won't mean the bus stays reffed too. Internally this means the + * reference direction is reversed: floating slots objects are referenced by the bus object, and not + * vice versa. */ + bool floating; + bool match_added; sd_bus *bus; void *userdata; From 71c163c9fa737053bccf8f6d733b272dfacc966f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Wed, 10 Feb 2021 08:32:23 +0100 Subject: [PATCH 10/16] udev: make sure UdevBuiltinCommand is properly converted --- src/udev/meson.build | 6 ++++++ src/udev/test-udev-builtin.c | 26 ++++++++++++++++++++++++++ src/udev/udev-builtin.h | 14 ++++++++++++-- 3 files changed, 44 insertions(+), 2 deletions(-) create mode 100644 src/udev/test-udev-builtin.c diff --git a/src/udev/meson.build b/src/udev/meson.build index 4a95c431a5..fd74e28682 100644 --- a/src/udev/meson.build +++ b/src/udev/meson.build @@ -197,6 +197,12 @@ tests += [ [threads, libacl]], + [['src/udev/test-udev-builtin.c'], + [libudevd_core, + libshared], + [threads, + libacl]], + [['src/udev/fido_id/test-fido-id-desc.c', 'src/udev/fido_id/fido_id_desc.c']], ] diff --git a/src/udev/test-udev-builtin.c b/src/udev/test-udev-builtin.c new file mode 100644 index 0000000000..1bd1dbddf5 --- /dev/null +++ b/src/udev/test-udev-builtin.c @@ -0,0 +1,26 @@ +/* SPDX-License-Identifier: LGPL-2.1-or-later */ + +#include "tests.h" +#include "udev-builtin.h" + +static void test_udev_builtin_cmd_to_ptr(void) { + log_info("/* %s */", __func__); + + /* Those could have been static_assert()s, but ({}) is not allowed there. */ +#if HAVE_BLKID + assert_se(UDEV_BUILTIN_CMD_TO_PTR(UDEV_BUILTIN_BLKID)); + assert_se(PTR_TO_UDEV_BUILTIN_CMD(UDEV_BUILTIN_CMD_TO_PTR(UDEV_BUILTIN_BLKID)) == UDEV_BUILTIN_BLKID); +#endif + assert_se(UDEV_BUILTIN_CMD_TO_PTR(UDEV_BUILTIN_BTRFS)); + assert_se(PTR_TO_UDEV_BUILTIN_CMD(UDEV_BUILTIN_CMD_TO_PTR(UDEV_BUILTIN_BTRFS)) == UDEV_BUILTIN_BTRFS); + assert_se(PTR_TO_UDEV_BUILTIN_CMD(UDEV_BUILTIN_CMD_TO_PTR(_UDEV_BUILTIN_INVALID)) == _UDEV_BUILTIN_INVALID); + + assert_se(PTR_TO_UDEV_BUILTIN_CMD(NULL) == _UDEV_BUILTIN_INVALID); + assert_se(PTR_TO_UDEV_BUILTIN_CMD((void*) 10000) == _UDEV_BUILTIN_INVALID); +} + +int main(int argc, char *argv[]) { + test_setup_logging(LOG_DEBUG); + + test_udev_builtin_cmd_to_ptr(); +} diff --git a/src/udev/udev-builtin.h b/src/udev/udev-builtin.h index 14d6406d2b..b92d74fc9d 100644 --- a/src/udev/udev-builtin.h +++ b/src/udev/udev-builtin.h @@ -37,8 +37,18 @@ typedef struct UdevBuiltin { bool run_once; } UdevBuiltin; -#define PTR_TO_UDEV_BUILTIN_CMD(p) ((UdevBuiltinCommand) ((intptr_t) (p)-1)) -#define UDEV_BUILTIN_CMD_TO_PTR(u) ((void *) ((intptr_t) (u)+1)) +#define UDEV_BUILTIN_CMD_TO_PTR(u) \ + ({ \ + UdevBuiltinCommand _u = (u); \ + _u < 0 ? NULL : (void*)(intptr_t) (_u + 1); \ + }) + +#define PTR_TO_UDEV_BUILTIN_CMD(p) \ + ({ \ + void *_p = (p); \ + _p && (intptr_t)(_p) <= _UDEV_BUILTIN_MAX ? \ + (UdevBuiltinCommand)((intptr_t)_p - 1) : _UDEV_BUILTIN_INVALID; \ + }) #if HAVE_BLKID extern const UdevBuiltin udev_builtin_blkid; From 2d93c20e5f600a9f1e4b617123577acf6ce5faa0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Tue, 9 Feb 2021 17:17:47 +0100 Subject: [PATCH 11/16] tree-wide: use -EINVAL for enum invalid values As suggested in https://github.com/systemd/systemd/pull/11484#issuecomment-775288617. This does not touch anything exposed in src/systemd. Changing the defines there would be a compatibility break. Note that tests are broken after this commit. They will be fixed in the next one. --- src/basic/architecture.h | 2 +- src/basic/cgroup-util.h | 6 ++-- src/basic/locale-util.h | 2 +- src/basic/log.h | 2 +- src/basic/smack-util.h | 2 +- src/basic/socket-util.h | 2 +- src/basic/terminal-util.h | 2 +- src/basic/time-util.h | 2 +- src/basic/unit-def.h | 34 +++++++++---------- src/basic/unit-file.h | 4 +-- src/basic/unit-name.h | 2 +- src/basic/virt.h | 2 +- src/boot/efi/random-seed.h | 3 +- src/core/automount.h | 2 +- src/core/cgroup.h | 8 ++--- src/core/emergency-action.h | 4 ++- src/core/execute.h | 14 ++++---- src/core/job.h | 8 ++--- src/core/kill.h | 4 +-- src/core/manager.h | 8 ++--- src/core/mount.h | 4 +-- src/core/namespace.h | 10 +++--- src/core/path.h | 4 +-- src/core/scope.h | 2 +- src/core/service.c | 2 +- src/core/service.h | 12 +++---- src/core/show-status.h | 4 +-- src/core/socket.h | 8 ++--- src/core/swap.h | 4 +-- src/core/timer.h | 4 +-- src/core/unit.h | 4 +-- src/coredump/coredump.c | 2 +- src/cryptenroll/cryptenroll.h | 6 ++-- src/home/homed-home.h | 2 +- src/home/homed-operation.h | 2 +- src/home/user-record-util.h | 2 +- src/hostname/hostnamed.c | 2 +- src/import/import-compress.h | 2 +- src/import/importd.c | 2 +- src/import/pull-common.h | 2 +- src/import/pull-job.h | 2 +- src/journal-remote/journal-remote-write.h | 2 +- src/journal/journald-server.h | 4 +-- src/journal/journald-stream.c | 2 +- src/libsystemd-network/sd-ipv4acd.c | 2 +- src/libsystemd/sd-bus/bus-internal.h | 2 +- src/libsystemd/sd-bus/bus-match.h | 2 +- src/libsystemd/sd-device/device-enumerator.c | 2 +- .../sd-device/device-monitor-private.h | 4 ++- src/libsystemd/sd-device/device-private.h | 2 +- src/libsystemd/sd-event/event-source.h | 4 +-- src/libsystemd/sd-netlink/netlink-internal.h | 2 +- src/libsystemd/sd-netlink/netlink-types.h | 6 ++-- src/libsystemd/sd-network/network-util.h | 6 ++-- src/login/logind-action.h | 2 +- src/login/logind-inhibit.h | 4 +-- src/login/logind-session.h | 10 +++--- src/login/logind-user.h | 2 +- src/machine/machine.h | 6 ++-- src/network/generator/network-generator.h | 2 +- src/network/netdev/bareudp.h | 2 +- src/network/netdev/bridge.h | 2 +- src/network/netdev/fou-tunnel.h | 2 +- src/network/netdev/geneve.h | 2 +- src/network/netdev/l2tp-tunnel.h | 6 ++-- src/network/netdev/netdev.h | 6 ++-- src/network/netdev/tunnel.h | 4 +-- src/network/netdev/vxlan.h | 2 +- src/network/networkd-dhcp-common.h | 2 +- src/network/networkd-dhcp4.h | 2 +- src/network/networkd-dhcp6.h | 2 +- src/network/networkd-fdb.h | 2 +- src/network/networkd-link.h | 2 +- src/network/networkd-lldp-rx.h | 2 +- src/network/networkd-ndisc.h | 4 +-- src/network/networkd-network.h | 6 ++-- src/network/networkd-radv.h | 2 +- src/network/networkd-sriov.h | 2 +- src/network/networkd-sysctl.h | 2 +- src/network/networkd-util.h | 2 +- src/network/tc/qdisc.h | 2 +- src/network/tc/tc.h | 2 +- src/network/tc/tclass.h | 2 +- src/nspawn/nspawn-mount.h | 2 +- src/nspawn/nspawn-settings.h | 12 +++---- src/partition/repart.c | 2 +- src/portable/portable.h | 2 +- src/portable/portabled-image-bus.h | 2 +- src/pstore/pstore.c | 2 +- src/resolve/dns-type.h | 4 +-- src/resolve/resolvectl.h | 2 +- src/resolve/resolved-dns-dnssec.h | 4 +-- src/resolve/resolved-dns-packet.h | 2 +- src/resolve/resolved-dns-scope.h | 2 +- src/resolve/resolved-dns-server.h | 4 +-- src/resolve/resolved-dns-stream.h | 2 +- src/resolve/resolved-dns-stub.h | 2 +- src/resolve/resolved-dns-transaction.h | 4 +-- src/resolve/resolved-resolv-conf.h | 2 +- src/shared/bond-util.h | 16 ++++----- src/shared/bootspec.h | 2 +- src/shared/bus-util.h | 2 +- src/shared/bus-wait-for-units.h | 2 +- src/shared/condition.c | 2 +- src/shared/condition.h | 4 +-- src/shared/coredump-util.h | 2 +- src/shared/discover-image.h | 4 +-- src/shared/dissect-image.h | 2 +- src/shared/ethtool-util.h | 8 ++--- src/shared/format-table.h | 2 +- src/shared/geneve-util.h | 2 +- src/shared/hostname-setup.h | 2 +- src/shared/id128-print.h | 2 +- src/shared/import-util.h | 2 +- src/shared/install.h | 4 +-- src/shared/ipvlan-util.h | 4 +-- src/shared/json-internal.h | 2 +- src/shared/json.h | 2 +- src/shared/macvlan-util.h | 2 +- src/shared/netif-naming-scheme.h | 2 +- src/shared/output-mode.h | 2 +- src/shared/resolve-util.h | 6 ++-- src/shared/udev-util.h | 2 +- src/shared/user-record.h | 4 +-- src/shared/varlink.c | 2 +- src/shared/volatile-util.h | 2 +- src/systemctl/systemctl-show.c | 2 +- src/systemctl/systemctl.h | 2 +- src/systemd/sd-dhcp-lease.h | 3 +- src/systemd/sd-lldp.h | 3 +- src/systemd/sd-ndisc.h | 3 +- src/tmpfiles/tmpfiles.c | 2 +- src/udev/cdrom_id/cdrom_id.c | 4 +-- src/udev/net/link-config.h | 4 +-- src/udev/udev-builtin.h | 2 +- src/udev/udev-event.c | 2 +- src/udev/udev-rules.c | 8 ++--- src/udev/udev-rules.h | 2 +- src/userdb/userdbctl.c | 2 +- 139 files changed, 255 insertions(+), 245 deletions(-) diff --git a/src/basic/architecture.h b/src/basic/architecture.h index 1db625cf80..9abc1831da 100644 --- a/src/basic/architecture.h +++ b/src/basic/architecture.h @@ -45,7 +45,7 @@ enum { ARCHITECTURE_ARC, ARCHITECTURE_ARC_BE, _ARCHITECTURE_MAX, - _ARCHITECTURE_INVALID = -1 + _ARCHITECTURE_INVALID = -EINVAL, }; int uname_architecture(void); diff --git a/src/basic/cgroup-util.h b/src/basic/cgroup-util.h index bdc0d0d086..c5f54aafea 100644 --- a/src/basic/cgroup-util.h +++ b/src/basic/cgroup-util.h @@ -32,7 +32,7 @@ typedef enum CGroupController { CGROUP_CONTROLLER_BPF_DEVICES, _CGROUP_CONTROLLER_MAX, - _CGROUP_CONTROLLER_INVALID = -1, + _CGROUP_CONTROLLER_INVALID = -EINVAL, } CGroupController; #define CGROUP_CONTROLLER_TO_MASK(c) (1U << (c)) @@ -97,7 +97,7 @@ typedef enum CGroupIOLimitType { CGROUP_IO_WIOPS_MAX, _CGROUP_IO_LIMIT_TYPE_MAX, - _CGROUP_IO_LIMIT_TYPE_INVALID = -1 + _CGROUP_IO_LIMIT_TYPE_INVALID = -EINVAL, } CGroupIOLimitType; extern const uint64_t cgroup_io_limit_defaults[_CGROUP_IO_LIMIT_TYPE_MAX]; @@ -283,7 +283,7 @@ typedef enum ManagedOOMMode { MANAGED_OOM_AUTO, MANAGED_OOM_KILL, _MANAGED_OOM_MODE_MAX, - _MANAGED_OOM_MODE_INVALID = -1, + _MANAGED_OOM_MODE_INVALID = -EINVAL, } ManagedOOMMode; const char* managed_oom_mode_to_string(ManagedOOMMode m) _const_; diff --git a/src/basic/locale-util.h b/src/basic/locale-util.h index 37bc3b7490..bebdf97aa8 100644 --- a/src/basic/locale-util.h +++ b/src/basic/locale-util.h @@ -26,7 +26,7 @@ typedef enum LocaleVariable { VARIABLE_LC_MEASUREMENT, VARIABLE_LC_IDENTIFICATION, _VARIABLE_LC_MAX, - _VARIABLE_LC_INVALID = -1 + _VARIABLE_LC_INVALID = -EINVAL, } LocaleVariable; int get_locales(char ***l); diff --git a/src/basic/log.h b/src/basic/log.h index 60e67270db..52fd58d5b4 100644 --- a/src/basic/log.h +++ b/src/basic/log.h @@ -23,7 +23,7 @@ typedef enum LogTarget{ LOG_TARGET_AUTO, /* console if stderr is not journal, JOURNAL_OR_KMSG otherwise */ LOG_TARGET_NULL, _LOG_TARGET_MAX, - _LOG_TARGET_INVALID = -1 + _LOG_TARGET_INVALID = -EINVAL, } LogTarget; /* Note to readers: << and >> have lower precedence than & and | */ diff --git a/src/basic/smack-util.h b/src/basic/smack-util.h index d0b2352428..36fdc72083 100644 --- a/src/basic/smack-util.h +++ b/src/basic/smack-util.h @@ -24,7 +24,7 @@ typedef enum SmackAttr { SMACK_ATTR_IPIN, SMACK_ATTR_IPOUT, _SMACK_ATTR_MAX, - _SMACK_ATTR_INVALID = -1, + _SMACK_ATTR_INVALID = -EINVAL, } SmackAttr; bool mac_smack_use(void); diff --git a/src/basic/socket-util.h b/src/basic/socket-util.h index 240d209c14..b741a90be7 100644 --- a/src/basic/socket-util.h +++ b/src/basic/socket-util.h @@ -63,7 +63,7 @@ typedef enum SocketAddressBindIPv6Only { SOCKET_ADDRESS_BOTH, SOCKET_ADDRESS_IPV6_ONLY, _SOCKET_ADDRESS_BIND_IPV6_ONLY_MAX, - _SOCKET_ADDRESS_BIND_IPV6_ONLY_INVALID = -1 + _SOCKET_ADDRESS_BIND_IPV6_ONLY_INVALID = -EINVAL, } SocketAddressBindIPv6Only; #define socket_address_family(a) ((a)->sockaddr.sa.sa_family) diff --git a/src/basic/terminal-util.h b/src/basic/terminal-util.h index 75e44c8726..27e7f8db22 100644 --- a/src/basic/terminal-util.h +++ b/src/basic/terminal-util.h @@ -111,7 +111,7 @@ typedef enum ColorMode { /* Only 256 colors. */ COLOR_256 = 256, - _COLOR_INVALID = -1, + _COLOR_INVALID = -EINVAL, } ColorMode; int acquire_terminal(const char *name, AcquireTerminalFlags flags, usec_t timeout); diff --git a/src/basic/time-util.h b/src/basic/time-util.h index 89ee8b4a96..da6f3cd382 100644 --- a/src/basic/time-util.h +++ b/src/basic/time-util.h @@ -35,7 +35,7 @@ typedef enum TimestampStyle { TIMESTAMP_UTC, TIMESTAMP_US_UTC, _TIMESTAMP_STYLE_MAX, - _TIMESTAMP_STYLE_INVALID = -1, + _TIMESTAMP_STYLE_INVALID = -EINVAL, } TimestampStyle; #define USEC_INFINITY ((usec_t) UINT64_MAX) diff --git a/src/basic/unit-def.h b/src/basic/unit-def.h index d6fc0c0379..ff05799c1d 100644 --- a/src/basic/unit-def.h +++ b/src/basic/unit-def.h @@ -22,7 +22,7 @@ typedef enum UnitType { UNIT_SLICE, UNIT_SCOPE, _UNIT_TYPE_MAX, - _UNIT_TYPE_INVALID = -1 + _UNIT_TYPE_INVALID = -EINVAL, } UnitType; typedef enum UnitLoadState { @@ -34,7 +34,7 @@ typedef enum UnitLoadState { UNIT_MERGED, UNIT_MASKED, _UNIT_LOAD_STATE_MAX, - _UNIT_LOAD_STATE_INVALID = -1 + _UNIT_LOAD_STATE_INVALID = -EINVAL, } UnitLoadState; typedef enum UnitActiveState { @@ -46,7 +46,7 @@ typedef enum UnitActiveState { UNIT_DEACTIVATING, UNIT_MAINTENANCE, _UNIT_ACTIVE_STATE_MAX, - _UNIT_ACTIVE_STATE_INVALID = -1 + _UNIT_ACTIVE_STATE_INVALID = -EINVAL, } UnitActiveState; typedef enum FreezerState { @@ -55,7 +55,7 @@ typedef enum FreezerState { FREEZER_FROZEN, FREEZER_THAWING, _FREEZER_STATE_MAX, - _FREEZER_STATE_INVALID = -1 + _FREEZER_STATE_INVALID = -EINVAL, } FreezerState; typedef enum AutomountState { @@ -64,7 +64,7 @@ typedef enum AutomountState { AUTOMOUNT_RUNNING, AUTOMOUNT_FAILED, _AUTOMOUNT_STATE_MAX, - _AUTOMOUNT_STATE_INVALID = -1 + _AUTOMOUNT_STATE_INVALID = -EINVAL, } AutomountState; /* We simply watch devices, we cannot plug/unplug them. That @@ -74,7 +74,7 @@ typedef enum DeviceState { DEVICE_TENTATIVE, /* mounted or swapped, but not (yet) announced by udev */ DEVICE_PLUGGED, /* announced by udev */ _DEVICE_STATE_MAX, - _DEVICE_STATE_INVALID = -1 + _DEVICE_STATE_INVALID = -EINVAL, } DeviceState; typedef enum MountState { @@ -91,7 +91,7 @@ typedef enum MountState { MOUNT_FAILED, MOUNT_CLEANING, _MOUNT_STATE_MAX, - _MOUNT_STATE_INVALID = -1 + _MOUNT_STATE_INVALID = -EINVAL, } MountState; typedef enum PathState { @@ -100,7 +100,7 @@ typedef enum PathState { PATH_RUNNING, PATH_FAILED, _PATH_STATE_MAX, - _PATH_STATE_INVALID = -1 + _PATH_STATE_INVALID = -EINVAL, } PathState; typedef enum ScopeState { @@ -111,7 +111,7 @@ typedef enum ScopeState { SCOPE_STOP_SIGKILL, SCOPE_FAILED, _SCOPE_STATE_MAX, - _SCOPE_STATE_INVALID = -1 + _SCOPE_STATE_INVALID = -EINVAL, } ScopeState; typedef enum ServiceState { @@ -135,14 +135,14 @@ typedef enum ServiceState { SERVICE_AUTO_RESTART, SERVICE_CLEANING, _SERVICE_STATE_MAX, - _SERVICE_STATE_INVALID = -1 + _SERVICE_STATE_INVALID = -EINVAL, } ServiceState; typedef enum SliceState { SLICE_DEAD, SLICE_ACTIVE, _SLICE_STATE_MAX, - _SLICE_STATE_INVALID = -1 + _SLICE_STATE_INVALID = -EINVAL, } SliceState; typedef enum SocketState { @@ -161,7 +161,7 @@ typedef enum SocketState { SOCKET_FAILED, SOCKET_CLEANING, _SOCKET_STATE_MAX, - _SOCKET_STATE_INVALID = -1 + _SOCKET_STATE_INVALID = -EINVAL, } SocketState; typedef enum SwapState { @@ -175,14 +175,14 @@ typedef enum SwapState { SWAP_FAILED, SWAP_CLEANING, _SWAP_STATE_MAX, - _SWAP_STATE_INVALID = -1 + _SWAP_STATE_INVALID = -EINVAL, } SwapState; typedef enum TargetState { TARGET_DEAD, TARGET_ACTIVE, _TARGET_STATE_MAX, - _TARGET_STATE_INVALID = -1 + _TARGET_STATE_INVALID = -EINVAL, } TargetState; typedef enum TimerState { @@ -192,7 +192,7 @@ typedef enum TimerState { TIMER_ELAPSED, TIMER_FAILED, _TIMER_STATE_MAX, - _TIMER_STATE_INVALID = -1 + _TIMER_STATE_INVALID = -EINVAL, } TimerState; typedef enum UnitDependency { @@ -237,7 +237,7 @@ typedef enum UnitDependency { UNIT_REFERENCED_BY, _UNIT_DEPENDENCY_MAX, - _UNIT_DEPENDENCY_INVALID = -1 + _UNIT_DEPENDENCY_INVALID = -EINVAL, } UnitDependency; typedef enum NotifyAccess { @@ -246,7 +246,7 @@ typedef enum NotifyAccess { NOTIFY_MAIN, NOTIFY_EXEC, _NOTIFY_ACCESS_MAX, - _NOTIFY_ACCESS_INVALID = -1 + _NOTIFY_ACCESS_INVALID = -EINVAL, } NotifyAccess; char *unit_dbus_path_from_name(const char *name); diff --git a/src/basic/unit-file.h b/src/basic/unit-file.h index 5463b0ab13..cc731a9e06 100644 --- a/src/basic/unit-file.h +++ b/src/basic/unit-file.h @@ -26,7 +26,7 @@ enum UnitFileState { UNIT_FILE_TRANSIENT, UNIT_FILE_BAD, _UNIT_FILE_STATE_MAX, - _UNIT_FILE_STATE_INVALID = -1 + _UNIT_FILE_STATE_INVALID = -EINVAL, }; enum UnitFileScope { @@ -34,7 +34,7 @@ enum UnitFileScope { UNIT_FILE_GLOBAL, UNIT_FILE_USER, _UNIT_FILE_SCOPE_MAX, - _UNIT_FILE_SCOPE_INVALID = -1 + _UNIT_FILE_SCOPE_INVALID = -EINVAL, }; bool unit_type_may_alias(UnitType type) _const_; diff --git a/src/basic/unit-name.h b/src/basic/unit-name.h index c25672fad2..19d70abea8 100644 --- a/src/basic/unit-name.h +++ b/src/basic/unit-name.h @@ -13,7 +13,7 @@ typedef enum UnitNameFlags { UNIT_NAME_TEMPLATE = 1 << 1, /* Allow foo@.service */ UNIT_NAME_INSTANCE = 1 << 2, /* Allow foo@bar.service */ UNIT_NAME_ANY = UNIT_NAME_PLAIN|UNIT_NAME_TEMPLATE|UNIT_NAME_INSTANCE, - _UNIT_NAME_INVALID = -1, + _UNIT_NAME_INVALID = -EINVAL, } UnitNameFlags; bool unit_name_is_valid(const char *n, UnitNameFlags flags) _pure_; diff --git a/src/basic/virt.h b/src/basic/virt.h index 42d63d5135..03aa1a72be 100644 --- a/src/basic/virt.h +++ b/src/basic/virt.h @@ -41,7 +41,7 @@ enum { VIRTUALIZATION_CONTAINER_LAST = VIRTUALIZATION_CONTAINER_OTHER, _VIRTUALIZATION_MAX, - _VIRTUALIZATION_INVALID = -1 + _VIRTUALIZATION_INVALID = -EINVAL, }; static inline bool VIRTUALIZATION_IS_VM(int x) { diff --git a/src/boot/efi/random-seed.h b/src/boot/efi/random-seed.h index 0f443e6a87..f14da800ea 100644 --- a/src/boot/efi/random-seed.h +++ b/src/boot/efi/random-seed.h @@ -2,13 +2,14 @@ #pragma once #include +#include typedef enum RandomSeedMode { RANDOM_SEED_OFF, RANDOM_SEED_WITH_SYSTEM_TOKEN, RANDOM_SEED_ALWAYS, _RANDOM_SEED_MODE_MAX, - _RANDOM_SEED_MODE_INVALID = -1, + _RANDOM_SEED_MODE_INVALID = -EINVAL, } RandomSeedMode; EFI_STATUS process_random_seed(EFI_FILE *root_dir, RandomSeedMode mode); diff --git a/src/core/automount.h b/src/core/automount.h index fe668d9774..91e6c5766c 100644 --- a/src/core/automount.h +++ b/src/core/automount.h @@ -12,7 +12,7 @@ typedef enum AutomountResult { AUTOMOUNT_FAILURE_START_LIMIT_HIT, AUTOMOUNT_FAILURE_MOUNT_START_LIMIT_HIT, _AUTOMOUNT_RESULT_MAX, - _AUTOMOUNT_RESULT_INVALID = -1 + _AUTOMOUNT_RESULT_INVALID = -EINVAL, } AutomountResult; struct Automount { diff --git a/src/core/cgroup.h b/src/core/cgroup.h index 9fbfabbb7e..9f225d934b 100644 --- a/src/core/cgroup.h +++ b/src/core/cgroup.h @@ -44,7 +44,7 @@ typedef enum CGroupDevicePolicy { CGROUP_DEVICE_POLICY_STRICT, _CGROUP_DEVICE_POLICY_MAX, - _CGROUP_DEVICE_POLICY_INVALID = -1 + _CGROUP_DEVICE_POLICY_INVALID = -EINVAL, } CGroupDevicePolicy; typedef enum FreezerAction { @@ -52,7 +52,7 @@ typedef enum FreezerAction { FREEZER_THAW, _FREEZER_ACTION_MAX, - _FREEZER_ACTION_INVALID = -1, + _FREEZER_ACTION_INVALID = -EINVAL, } FreezerAction; struct CGroupDeviceAllow { @@ -173,7 +173,7 @@ typedef enum CGroupIPAccountingMetric { CGROUP_IP_EGRESS_BYTES, CGROUP_IP_EGRESS_PACKETS, _CGROUP_IP_ACCOUNTING_METRIC_MAX, - _CGROUP_IP_ACCOUNTING_METRIC_INVALID = -1, + _CGROUP_IP_ACCOUNTING_METRIC_INVALID = -EINVAL, } CGroupIPAccountingMetric; /* Used when querying IO accounting data */ @@ -183,7 +183,7 @@ typedef enum CGroupIOAccountingMetric { CGROUP_IO_READ_OPERATIONS, CGROUP_IO_WRITE_OPERATIONS, _CGROUP_IO_ACCOUNTING_METRIC_MAX, - _CGROUP_IO_ACCOUNTING_METRIC_INVALID = -1, + _CGROUP_IO_ACCOUNTING_METRIC_INVALID = -EINVAL, } CGroupIOAccountingMetric; typedef struct Unit Unit; diff --git a/src/core/emergency-action.h b/src/core/emergency-action.h index 95d49a8166..4d7e755ae1 100644 --- a/src/core/emergency-action.h +++ b/src/core/emergency-action.h @@ -1,6 +1,8 @@ /* SPDX-License-Identifier: LGPL-2.1-or-later */ #pragma once +#include + typedef enum EmergencyAction { EMERGENCY_ACTION_NONE, EMERGENCY_ACTION_REBOOT, @@ -13,7 +15,7 @@ typedef enum EmergencyAction { _EMERGENCY_ACTION_FIRST_USER_ACTION = EMERGENCY_ACTION_EXIT, EMERGENCY_ACTION_EXIT_FORCE, _EMERGENCY_ACTION_MAX, - _EMERGENCY_ACTION_INVALID = -1 + _EMERGENCY_ACTION_INVALID = -EINVAL, } EmergencyAction; typedef enum EmergencyActionFlags { diff --git a/src/core/execute.h b/src/core/execute.h index d615af5109..cf0c8b868b 100644 --- a/src/core/execute.h +++ b/src/core/execute.h @@ -33,7 +33,7 @@ typedef enum ExecUtmpMode { EXEC_UTMP_LOGIN, EXEC_UTMP_USER, _EXEC_UTMP_MODE_MAX, - _EXEC_UTMP_MODE_INVALID = -1 + _EXEC_UTMP_MODE_INVALID = -EINVAL, } ExecUtmpMode; typedef enum ExecInput { @@ -46,7 +46,7 @@ typedef enum ExecInput { EXEC_INPUT_DATA, EXEC_INPUT_FILE, _EXEC_INPUT_MAX, - _EXEC_INPUT_INVALID = -1 + _EXEC_INPUT_INVALID = -EINVAL, } ExecInput; typedef enum ExecOutput { @@ -63,7 +63,7 @@ typedef enum ExecOutput { EXEC_OUTPUT_FILE_APPEND, EXEC_OUTPUT_FILE_TRUNCATE, _EXEC_OUTPUT_MAX, - _EXEC_OUTPUT_INVALID = -1 + _EXEC_OUTPUT_INVALID = -EINVAL, } ExecOutput; typedef enum ExecPreserveMode { @@ -71,7 +71,7 @@ typedef enum ExecPreserveMode { EXEC_PRESERVE_YES, EXEC_PRESERVE_RESTART, _EXEC_PRESERVE_MODE_MAX, - _EXEC_PRESERVE_MODE_INVALID = -1 + _EXEC_PRESERVE_MODE_INVALID = -EINVAL, } ExecPreserveMode; typedef enum ExecKeyringMode { @@ -79,7 +79,7 @@ typedef enum ExecKeyringMode { EXEC_KEYRING_PRIVATE, EXEC_KEYRING_SHARED, _EXEC_KEYRING_MODE_MAX, - _EXEC_KEYRING_MODE_INVALID = -1, + _EXEC_KEYRING_MODE_INVALID = -EINVAL, } ExecKeyringMode; /* Contains start and exit information about an executed command. */ @@ -126,7 +126,7 @@ typedef enum ExecDirectoryType { EXEC_DIRECTORY_LOGS, EXEC_DIRECTORY_CONFIGURATION, _EXEC_DIRECTORY_TYPE_MAX, - _EXEC_DIRECTORY_TYPE_INVALID = -1, + _EXEC_DIRECTORY_TYPE_INVALID = -EINVAL, } ExecDirectoryType; typedef struct ExecDirectory { @@ -144,7 +144,7 @@ typedef enum ExecCleanMask { EXEC_CLEAN_CONFIGURATION = 1U << EXEC_DIRECTORY_CONFIGURATION, EXEC_CLEAN_NONE = 0, EXEC_CLEAN_ALL = (1U << _EXEC_DIRECTORY_TYPE_MAX) - 1, - _EXEC_CLEAN_MASK_INVALID = -1, + _EXEC_CLEAN_MASK_INVALID = -EINVAL, } ExecCleanMask; /* A credential configured with SetCredential= */ diff --git a/src/core/job.h b/src/core/job.h index 1b3ddc7b4b..64ea847ff9 100644 --- a/src/core/job.h +++ b/src/core/job.h @@ -57,14 +57,14 @@ enum JobType { JOB_RELOAD_OR_START, /* if running, reload, otherwise start */ _JOB_TYPE_MAX, - _JOB_TYPE_INVALID = -1 + _JOB_TYPE_INVALID = -EINVAL, }; enum JobState { JOB_WAITING, JOB_RUNNING, _JOB_STATE_MAX, - _JOB_STATE_INVALID = -1 + _JOB_STATE_INVALID = -EINVAL, }; enum JobMode { @@ -77,7 +77,7 @@ enum JobMode { JOB_IGNORE_REQUIREMENTS, /* Ignore requirement dependencies */ JOB_TRIGGERING, /* Adds TRIGGERED_BY dependencies to the same transaction */ _JOB_MODE_MAX, - _JOB_MODE_INVALID = -1 + _JOB_MODE_INVALID = -EINVAL, }; enum JobResult { @@ -93,7 +93,7 @@ enum JobResult { JOB_COLLECTED, /* Job was garbage collected, since nothing needed it anymore */ JOB_ONCE, /* Unit was started before, and hence can't be started again */ _JOB_RESULT_MAX, - _JOB_RESULT_INVALID = -1 + _JOB_RESULT_INVALID = -EINVAL, }; #include "unit.h" diff --git a/src/core/kill.h b/src/core/kill.h index 012e433b61..dbf884d152 100644 --- a/src/core/kill.h +++ b/src/core/kill.h @@ -15,7 +15,7 @@ typedef enum KillMode { KILL_MIXED, KILL_NONE, _KILL_MODE_MAX, - _KILL_MODE_INVALID = -1 + _KILL_MODE_INVALID = -EINVAL, } KillMode; struct KillContext { @@ -37,7 +37,7 @@ typedef enum KillWho { KILL_CONTROL_FAIL, KILL_ALL_FAIL, _KILL_WHO_MAX, - _KILL_WHO_INVALID = -1 + _KILL_WHO_INVALID = -EINVAL, } KillWho; void kill_context_init(KillContext *c); diff --git a/src/core/manager.h b/src/core/manager.h index e56d297908..cbd8018f04 100644 --- a/src/core/manager.h +++ b/src/core/manager.h @@ -36,7 +36,7 @@ typedef enum ManagerState { MANAGER_MAINTENANCE, MANAGER_STOPPING, _MANAGER_STATE_MAX, - _MANAGER_STATE_INVALID = -1 + _MANAGER_STATE_INVALID = -EINVAL, } ManagerState; typedef enum ManagerObjective { @@ -50,7 +50,7 @@ typedef enum ManagerObjective { MANAGER_KEXEC, MANAGER_SWITCH_ROOT, _MANAGER_OBJECTIVE_MAX, - _MANAGER_OBJECTIVE_INVALID = -1 + _MANAGER_OBJECTIVE_INVALID = -EINVAL, } ManagerObjective; typedef enum StatusType { @@ -65,7 +65,7 @@ typedef enum OOMPolicy { OOM_STOP, /* The kernel kills the process it wants to kill, and we stop the unit */ OOM_KILL, /* The kernel kills the process it wants to kill, and all others in the unit, and we stop the unit */ _OOM_POLICY_MAX, - _OOM_POLICY_INVALID = -1 + _OOM_POLICY_INVALID = -EINVAL, } OOMPolicy; /* Notes: @@ -111,7 +111,7 @@ typedef enum ManagerTimestamp { MANAGER_TIMESTAMP_INITRD_UNITS_LOAD_START, MANAGER_TIMESTAMP_INITRD_UNITS_LOAD_FINISH, _MANAGER_TIMESTAMP_MAX, - _MANAGER_TIMESTAMP_INVALID = -1, + _MANAGER_TIMESTAMP_INVALID = -EINVAL, } ManagerTimestamp; typedef enum WatchdogType { diff --git a/src/core/mount.h b/src/core/mount.h index ad0e016083..1a0d9fc5e5 100644 --- a/src/core/mount.h +++ b/src/core/mount.h @@ -12,7 +12,7 @@ typedef enum MountExecCommand { MOUNT_EXEC_UNMOUNT, MOUNT_EXEC_REMOUNT, _MOUNT_EXEC_COMMAND_MAX, - _MOUNT_EXEC_COMMAND_INVALID = -1 + _MOUNT_EXEC_COMMAND_INVALID = -EINVAL, } MountExecCommand; typedef enum MountResult { @@ -25,7 +25,7 @@ typedef enum MountResult { MOUNT_FAILURE_START_LIMIT_HIT, MOUNT_FAILURE_PROTOCOL, _MOUNT_RESULT_MAX, - _MOUNT_RESULT_INVALID = -1 + _MOUNT_RESULT_INVALID = -EINVAL, } MountResult; typedef struct MountParameters { diff --git a/src/core/namespace.h b/src/core/namespace.h index b2ea4bd76b..a4287869f7 100644 --- a/src/core/namespace.h +++ b/src/core/namespace.h @@ -23,7 +23,7 @@ typedef enum ProtectHome { PROTECT_HOME_READ_ONLY, PROTECT_HOME_TMPFS, _PROTECT_HOME_MAX, - _PROTECT_HOME_INVALID = -1 + _PROTECT_HOME_INVALID = -EINVAL, } ProtectHome; typedef enum NamespaceType { @@ -35,7 +35,7 @@ typedef enum NamespaceType { NAMESPACE_PID, NAMESPACE_NET, _NAMESPACE_TYPE_MAX, - _NAMESPACE_TYPE_INVALID = -1, + _NAMESPACE_TYPE_INVALID = -EINVAL, } NamespaceType; typedef enum ProtectSystem { @@ -44,7 +44,7 @@ typedef enum ProtectSystem { PROTECT_SYSTEM_FULL, PROTECT_SYSTEM_STRICT, _PROTECT_SYSTEM_MAX, - _PROTECT_SYSTEM_INVALID = -1 + _PROTECT_SYSTEM_INVALID = -EINVAL, } ProtectSystem; typedef enum ProtectProc { @@ -53,14 +53,14 @@ typedef enum ProtectProc { PROTECT_PROC_INVISIBLE, /* hidepid=invisible */ PROTECT_PROC_PTRACEABLE, /* hidepid=ptraceable */ _PROTECT_PROC_MAX, - _PROTECT_PROC_INVALID = -1, + _PROTECT_PROC_INVALID = -EINVAL, } ProtectProc; typedef enum ProcSubset { PROC_SUBSET_ALL, PROC_SUBSET_PID, /* subset=pid */ _PROC_SUBSET_MAX, - _PROC_SUBSET_INVALID = -1, + _PROC_SUBSET_INVALID = -EINVAL, } ProcSubset; struct NamespaceInfo { diff --git a/src/core/path.h b/src/core/path.h index fb33b12ab1..66ae857dc4 100644 --- a/src/core/path.h +++ b/src/core/path.h @@ -13,7 +13,7 @@ typedef enum PathType { PATH_CHANGED, PATH_MODIFIED, _PATH_TYPE_MAX, - _PATH_TYPE_INVALID = -1 + _PATH_TYPE_INVALID = -EINVAL, } PathType; typedef struct PathSpec { @@ -47,7 +47,7 @@ typedef enum PathResult { PATH_FAILURE_START_LIMIT_HIT, PATH_FAILURE_UNIT_START_LIMIT_HIT, _PATH_RESULT_MAX, - _PATH_RESULT_INVALID = -1 + _PATH_RESULT_INVALID = -EINVAL, } PathResult; struct Path { diff --git a/src/core/scope.h b/src/core/scope.h index 5f791b7d19..0b0e1f8730 100644 --- a/src/core/scope.h +++ b/src/core/scope.h @@ -12,7 +12,7 @@ typedef enum ScopeResult { SCOPE_FAILURE_RESOURCES, SCOPE_FAILURE_TIMEOUT, _SCOPE_RESULT_MAX, - _SCOPE_RESULT_INVALID = -1 + _SCOPE_RESULT_INVALID = -EINVAL, } ScopeResult; struct Scope { diff --git a/src/core/service.c b/src/core/service.c index d15ea18ecc..da4b8d7259 100644 --- a/src/core/service.c +++ b/src/core/service.c @@ -2738,7 +2738,7 @@ static int service_deserialize_exec_command( STATE_EXEC_COMMAND_PATH, STATE_EXEC_COMMAND_ARGS, _STATE_EXEC_COMMAND_MAX, - _STATE_EXEC_COMMAND_INVALID = -1, + _STATE_EXEC_COMMAND_INVALID = -EINVAL, } state; assert(s); diff --git a/src/core/service.h b/src/core/service.h index 11c3d3f370..af474aa40e 100644 --- a/src/core/service.h +++ b/src/core/service.h @@ -20,7 +20,7 @@ typedef enum ServiceRestart { SERVICE_RESTART_ON_ABORT, SERVICE_RESTART_ALWAYS, _SERVICE_RESTART_MAX, - _SERVICE_RESTART_INVALID = -1 + _SERVICE_RESTART_INVALID = -EINVAL, } ServiceRestart; typedef enum ServiceType { @@ -32,7 +32,7 @@ typedef enum ServiceType { SERVICE_IDLE, /* much like simple, but delay exec() until all jobs are dispatched. */ SERVICE_EXEC, /* we fork and wait until we execute exec() (this means our own setup is waited for) */ _SERVICE_TYPE_MAX, - _SERVICE_TYPE_INVALID = -1 + _SERVICE_TYPE_INVALID = -EINVAL, } ServiceType; typedef enum ServiceExecCommand { @@ -44,7 +44,7 @@ typedef enum ServiceExecCommand { SERVICE_EXEC_STOP, SERVICE_EXEC_STOP_POST, _SERVICE_EXEC_COMMAND_MAX, - _SERVICE_EXEC_COMMAND_INVALID = -1 + _SERVICE_EXEC_COMMAND_INVALID = -EINVAL, } ServiceExecCommand; typedef enum NotifyState { @@ -53,7 +53,7 @@ typedef enum NotifyState { NOTIFY_RELOADING, NOTIFY_STOPPING, _NOTIFY_STATE_MAX, - _NOTIFY_STATE_INVALID = -1 + _NOTIFY_STATE_INVALID = -EINVAL, } NotifyState; /* The values of this enum are referenced in man/systemd.exec.xml and src/shared/bus-unit-util.c. @@ -71,7 +71,7 @@ typedef enum ServiceResult { SERVICE_FAILURE_OOM_KILL, SERVICE_SKIP_CONDITION, _SERVICE_RESULT_MAX, - _SERVICE_RESULT_INVALID = -1 + _SERVICE_RESULT_INVALID = -EINVAL, } ServiceResult; typedef enum ServiceTimeoutFailureMode { @@ -79,7 +79,7 @@ typedef enum ServiceTimeoutFailureMode { SERVICE_TIMEOUT_ABORT, SERVICE_TIMEOUT_KILL, _SERVICE_TIMEOUT_FAILURE_MODE_MAX, - _SERVICE_TIMEOUT_FAILURE_MODE_INVALID = -1 + _SERVICE_TIMEOUT_FAILURE_MODE_INVALID = -EINVAL, } ServiceTimeoutFailureMode; struct ServiceFDStore { diff --git a/src/core/show-status.h b/src/core/show-status.h index c37ccd9087..dfcf5f4103 100644 --- a/src/core/show-status.h +++ b/src/core/show-status.h @@ -14,7 +14,7 @@ typedef enum ShowStatus { SHOW_STATUS_TEMPORARY, /* enabled temporarily, may flip back to _AUTO */ SHOW_STATUS_YES, /* printing of status is enabled */ _SHOW_STATUS_MAX, - _SHOW_STATUS_INVALID = -1, + _SHOW_STATUS_INVALID = -EINVAL, } ShowStatus; typedef enum ShowStatusFlags { @@ -26,7 +26,7 @@ typedef enum StatusUnitFormat { STATUS_UNIT_FORMAT_NAME, STATUS_UNIT_FORMAT_DESCRIPTION, _STATUS_UNIT_FORMAT_MAX, - _STATUS_UNIT_FORMAT_INVALID = -1, + _STATUS_UNIT_FORMAT_INVALID = -EINVAL, } StatusUnitFormat; static inline bool show_status_on(ShowStatus s) { diff --git a/src/core/socket.h b/src/core/socket.h index ebe85c2aa4..a65195f2aa 100644 --- a/src/core/socket.h +++ b/src/core/socket.h @@ -16,7 +16,7 @@ typedef enum SocketExecCommand { SOCKET_EXEC_STOP_PRE, SOCKET_EXEC_STOP_POST, _SOCKET_EXEC_COMMAND_MAX, - _SOCKET_EXEC_COMMAND_INVALID = -1 + _SOCKET_EXEC_COMMAND_INVALID = -EINVAL, } SocketExecCommand; typedef enum SocketType { @@ -26,7 +26,7 @@ typedef enum SocketType { SOCKET_MQUEUE, SOCKET_USB_FUNCTION, _SOCKET_TYPE_MAX, - _SOCKET_TYPE_INVALID = -1 + _SOCKET_TYPE_INVALID = -EINVAL, } SocketType; typedef enum SocketResult { @@ -40,7 +40,7 @@ typedef enum SocketResult { SOCKET_FAILURE_TRIGGER_LIMIT_HIT, SOCKET_FAILURE_SERVICE_START_LIMIT_HIT, _SOCKET_RESULT_MAX, - _SOCKET_RESULT_INVALID = -1 + _SOCKET_RESULT_INVALID = -EINVAL, } SocketResult; typedef struct SocketPort { @@ -63,7 +63,7 @@ typedef enum SocketTimestamping { SOCKET_TIMESTAMPING_US, /* SO_TIMESTAMP */ SOCKET_TIMESTAMPING_NS, /* SO_TIMESTAMPNS */ _SOCKET_TIMESTAMPING_MAX, - _SOCKET_TIMESTAMPING_INVALID = -1, + _SOCKET_TIMESTAMPING_INVALID = -EINVAL, } SocketTimestamping; struct Socket { diff --git a/src/core/swap.h b/src/core/swap.h index 6ce9bfd9b4..c0e3f118e1 100644 --- a/src/core/swap.h +++ b/src/core/swap.h @@ -14,7 +14,7 @@ typedef enum SwapExecCommand { SWAP_EXEC_ACTIVATE, SWAP_EXEC_DEACTIVATE, _SWAP_EXEC_COMMAND_MAX, - _SWAP_EXEC_COMMAND_INVALID = -1 + _SWAP_EXEC_COMMAND_INVALID = -EINVAL, } SwapExecCommand; typedef enum SwapResult { @@ -26,7 +26,7 @@ typedef enum SwapResult { SWAP_FAILURE_CORE_DUMP, SWAP_FAILURE_START_LIMIT_HIT, _SWAP_RESULT_MAX, - _SWAP_RESULT_INVALID = -1 + _SWAP_RESULT_INVALID = -EINVAL, } SwapResult; typedef struct SwapParameters { diff --git a/src/core/timer.h b/src/core/timer.h index 14fa317064..a51fbf56f3 100644 --- a/src/core/timer.h +++ b/src/core/timer.h @@ -14,7 +14,7 @@ typedef enum TimerBase { TIMER_UNIT_INACTIVE, TIMER_CALENDAR, _TIMER_BASE_MAX, - _TIMER_BASE_INVALID = -1 + _TIMER_BASE_INVALID = -EINVAL, } TimerBase; typedef struct TimerValue { @@ -33,7 +33,7 @@ typedef enum TimerResult { TIMER_FAILURE_RESOURCES, TIMER_FAILURE_START_LIMIT_HIT, _TIMER_RESULT_MAX, - _TIMER_RESULT_INVALID = -1 + _TIMER_RESULT_INVALID = -EINVAL, } TimerResult; struct Timer { diff --git a/src/core/unit.h b/src/core/unit.h index f040e9dfe6..1b3b146369 100644 --- a/src/core/unit.h +++ b/src/core/unit.h @@ -23,14 +23,14 @@ typedef enum KillOperation { KILL_KILL, KILL_WATCHDOG, _KILL_OPERATION_MAX, - _KILL_OPERATION_INVALID = -1 + _KILL_OPERATION_INVALID = -EINVAL, } KillOperation; typedef enum CollectMode { COLLECT_INACTIVE, COLLECT_INACTIVE_OR_FAILED, _COLLECT_MODE_MAX, - _COLLECT_MODE_INVALID = -1, + _COLLECT_MODE_INVALID = -EINVAL, } CollectMode; static inline bool UNIT_IS_ACTIVE_OR_RELOADING(UnitActiveState t) { diff --git a/src/coredump/coredump.c b/src/coredump/coredump.c index bc8d34952b..ed8d4b8ac6 100644 --- a/src/coredump/coredump.c +++ b/src/coredump/coredump.c @@ -124,7 +124,7 @@ typedef enum CoredumpStorage { COREDUMP_STORAGE_EXTERNAL, COREDUMP_STORAGE_JOURNAL, _COREDUMP_STORAGE_MAX, - _COREDUMP_STORAGE_INVALID = -1 + _COREDUMP_STORAGE_INVALID = -EINVAL, } CoredumpStorage; static const char* const coredump_storage_table[_COREDUMP_STORAGE_MAX] = { diff --git a/src/cryptenroll/cryptenroll.h b/src/cryptenroll/cryptenroll.h index f8b81f17a5..b28d9db990 100644 --- a/src/cryptenroll/cryptenroll.h +++ b/src/cryptenroll/cryptenroll.h @@ -1,6 +1,8 @@ /* SPDX-License-Identifier: LGPL-2.1-or-later */ #pragma once +#include + typedef enum EnrollType { ENROLL_PASSWORD, ENROLL_RECOVERY, @@ -8,7 +10,7 @@ typedef enum EnrollType { ENROLL_FIDO2, ENROLL_TPM2, _ENROLL_TYPE_MAX, - _ENROLL_TYPE_INVALID = -1, + _ENROLL_TYPE_INVALID = -EINVAL, } EnrollType; typedef enum WipeScope { @@ -16,7 +18,7 @@ typedef enum WipeScope { WIPE_ALL, /* wipe all slots */ WIPE_EMPTY_PASSPHRASE, /* wipe slots with empty passphrases plus listed slots */ _WIPE_SCOPE_MAX, - _WIPE_SCOPE_INVALID = -1, + _WIPE_SCOPE_INVALID = -EINVAL, } WipeScope; const char* enroll_type_to_string(EnrollType t); diff --git a/src/home/homed-home.h b/src/home/homed-home.h index 4c24ee72a7..2afff0c023 100644 --- a/src/home/homed-home.h +++ b/src/home/homed-home.h @@ -37,7 +37,7 @@ typedef enum HomeState { HOME_AUTHENTICATING_WHILE_ACTIVE, HOME_AUTHENTICATING_FOR_ACQUIRE, /* authenticating because Acquire() was called */ _HOME_STATE_MAX, - _HOME_STATE_INVALID = -1 + _HOME_STATE_INVALID = -EINVAL, } HomeState; static inline bool HOME_STATE_IS_ACTIVE(HomeState state) { diff --git a/src/home/homed-operation.h b/src/home/homed-operation.h index 6721363b2a..004246a4e6 100644 --- a/src/home/homed-operation.h +++ b/src/home/homed-operation.h @@ -14,7 +14,7 @@ typedef enum OperationType { OPERATION_DEACTIVATE_FORCE, /* enqueued on hard $HOME unplug */ OPERATION_IMMEDIATE, /* this is never enqueued, it's just a marker we immediately started executing an operation without enqueuing anything first. */ _OPERATION_MAX, - _OPERATION_INVALID = -1, + _OPERATION_INVALID = -EINVAL, } OperationType; /* Encapsulates an operation on one or more home directories. This has two uses: diff --git a/src/home/user-record-util.h b/src/home/user-record-util.h index 302e7a5dff..f7cc4e04eb 100644 --- a/src/home/user-record-util.h +++ b/src/home/user-record-util.h @@ -14,7 +14,7 @@ typedef enum UserReconcileMode { USER_RECONCILE_REQUIRE_NEWER, /* host version must be newer than embedded version */ USER_RECONCILE_REQUIRE_NEWER_OR_EQUAL, /* similar, but may also be equal */ _USER_RECONCILE_MODE_MAX, - _USER_RECONCILE_MODE_INVALID = -1, + _USER_RECONCILE_MODE_INVALID = -EINVAL, } UserReconcileMode; enum { /* return values */ diff --git a/src/hostname/hostnamed.c b/src/hostname/hostnamed.c index 840e657141..3b2350ed0d 100644 --- a/src/hostname/hostnamed.c +++ b/src/hostname/hostnamed.c @@ -59,7 +59,7 @@ enum { PROP_OS_CPE_NAME, PROP_OS_HOME_URL, _PROP_MAX, - _PROP_INVALID = -1, + _PROP_INVALID = -EINVAL, }; typedef struct Context { diff --git a/src/import/import-compress.h b/src/import/import-compress.h index 3c35b59104..0a4210378a 100644 --- a/src/import/import-compress.h +++ b/src/import/import-compress.h @@ -17,7 +17,7 @@ typedef enum ImportCompressType { IMPORT_COMPRESS_GZIP, IMPORT_COMPRESS_BZIP2, _IMPORT_COMPRESS_TYPE_MAX, - _IMPORT_COMPRESS_TYPE_INVALID = -1, + _IMPORT_COMPRESS_TYPE_INVALID = -EINVAL, } ImportCompressType; typedef struct ImportCompress { diff --git a/src/import/importd.c b/src/import/importd.c index 65fe3701c6..9ac2f8dcfe 100644 --- a/src/import/importd.c +++ b/src/import/importd.c @@ -46,7 +46,7 @@ typedef enum TransferType { TRANSFER_PULL_TAR, TRANSFER_PULL_RAW, _TRANSFER_TYPE_MAX, - _TRANSFER_TYPE_INVALID = -1, + _TRANSFER_TYPE_INVALID = -EINVAL, } TransferType; struct Transfer { diff --git a/src/import/pull-common.h b/src/import/pull-common.h index d420025fab..3902e29f2b 100644 --- a/src/import/pull-common.h +++ b/src/import/pull-common.h @@ -33,7 +33,7 @@ typedef enum VerificationStyle { VERIFICATION_PER_FILE, /* SuSE-style ".sha256" files with inline gpg signature */ VERIFICATION_PER_DIRECTORY, /* Ubuntu-style SHA256SUM files with detached SHA256SUM.gpg signatures */ _VERIFICATION_STYLE_MAX, - _VERIFICATION_STYLE_INVALID = -1, + _VERIFICATION_STYLE_INVALID = -EINVAL, } VerificationStyle; int verification_style_from_url(const char *url, VerificationStyle *style); diff --git a/src/import/pull-job.h b/src/import/pull-job.h index 48cc773beb..8e416d51ba 100644 --- a/src/import/pull-job.h +++ b/src/import/pull-job.h @@ -22,7 +22,7 @@ typedef enum PullJobState { PULL_JOB_DONE, PULL_JOB_FAILED, _PULL_JOB_STATE_MAX, - _PULL_JOB_STATE_INVALID = -1, + _PULL_JOB_STATE_INVALID = -EINVAL, } PullJobState; #define PULL_JOB_IS_COMPLETE(j) (IN_SET((j)->state, PULL_JOB_DONE, PULL_JOB_FAILED)) diff --git a/src/journal-remote/journal-remote-write.h b/src/journal-remote/journal-remote-write.h index 46b55219d7..123015b844 100644 --- a/src/journal-remote/journal-remote-write.h +++ b/src/journal-remote/journal-remote-write.h @@ -36,5 +36,5 @@ typedef enum JournalWriteSplitMode { JOURNAL_WRITE_SPLIT_NONE, JOURNAL_WRITE_SPLIT_HOST, _JOURNAL_WRITE_SPLIT_MAX, - _JOURNAL_WRITE_SPLIT_INVALID = -1 + _JOURNAL_WRITE_SPLIT_INVALID = -EINVAL, } JournalWriteSplitMode; diff --git a/src/journal/journald-server.h b/src/journal/journald-server.h index 5fb145e254..09f80475a7 100644 --- a/src/journal/journald-server.h +++ b/src/journal/journald-server.h @@ -25,7 +25,7 @@ typedef enum Storage { STORAGE_PERSISTENT, STORAGE_NONE, _STORAGE_MAX, - _STORAGE_INVALID = -1 + _STORAGE_INVALID = -EINVAL, } Storage; typedef enum SplitMode { @@ -33,7 +33,7 @@ typedef enum SplitMode { SPLIT_LOGIN, /* deprecated */ SPLIT_NONE, _SPLIT_MAX, - _SPLIT_INVALID = -1 + _SPLIT_INVALID = -EINVAL, } SplitMode; typedef struct JournalCompressOptions { diff --git a/src/journal/journald-stream.c b/src/journal/journald-stream.c index 3241ef2bf7..1c3652bf5b 100644 --- a/src/journal/journald-stream.c +++ b/src/journal/journald-stream.c @@ -60,7 +60,7 @@ typedef enum LineBreak { LINE_BREAK_EOF, LINE_BREAK_PID_CHANGE, _LINE_BREAK_MAX, - _LINE_BREAK_INVALID = -1, + _LINE_BREAK_INVALID = -EINVAL, } LineBreak; struct StdoutStream { diff --git a/src/libsystemd-network/sd-ipv4acd.c b/src/libsystemd-network/sd-ipv4acd.c index 9426b65324..defd23d85a 100644 --- a/src/libsystemd-network/sd-ipv4acd.c +++ b/src/libsystemd-network/sd-ipv4acd.c @@ -46,7 +46,7 @@ typedef enum IPv4ACDState { IPV4ACD_STATE_ANNOUNCING, IPV4ACD_STATE_RUNNING, _IPV4ACD_STATE_MAX, - _IPV4ACD_STATE_INVALID = -1 + _IPV4ACD_STATE_INVALID = -EINVAL, } IPv4ACDState; struct sd_ipv4acd { diff --git a/src/libsystemd/sd-bus/bus-internal.h b/src/libsystemd/sd-bus/bus-internal.h index b9cebf2a02..a331ee3f3e 100644 --- a/src/libsystemd/sd-bus/bus-internal.h +++ b/src/libsystemd/sd-bus/bus-internal.h @@ -122,7 +122,7 @@ typedef enum BusSlotType { BUS_NODE_ENUMERATOR, BUS_NODE_VTABLE, BUS_NODE_OBJECT_MANAGER, - _BUS_SLOT_INVALID = -1, + _BUS_SLOT_INVALID = -EINVAL, } BusSlotType; struct sd_bus_slot { diff --git a/src/libsystemd/sd-bus/bus-match.h b/src/libsystemd/sd-bus/bus-match.h index e44e40644e..577100081d 100644 --- a/src/libsystemd/sd-bus/bus-match.h +++ b/src/libsystemd/sd-bus/bus-match.h @@ -27,7 +27,7 @@ enum bus_match_node_type { BUS_MATCH_ARG_HAS, BUS_MATCH_ARG_HAS_LAST = BUS_MATCH_ARG_HAS + 63, _BUS_MATCH_NODE_TYPE_MAX, - _BUS_MATCH_NODE_TYPE_INVALID = -1 + _BUS_MATCH_NODE_TYPE_INVALID = -EINVAL, }; struct bus_match_node { diff --git a/src/libsystemd/sd-device/device-enumerator.c b/src/libsystemd/sd-device/device-enumerator.c index a6606cff2f..e3c0af3429 100644 --- a/src/libsystemd/sd-device/device-enumerator.c +++ b/src/libsystemd/sd-device/device-enumerator.c @@ -21,7 +21,7 @@ typedef enum DeviceEnumerationType { DEVICE_ENUMERATION_TYPE_DEVICES, DEVICE_ENUMERATION_TYPE_SUBSYSTEMS, _DEVICE_ENUMERATION_TYPE_MAX, - _DEVICE_ENUMERATION_TYPE_INVALID = -1, + _DEVICE_ENUMERATION_TYPE_INVALID = -EINVAL, } DeviceEnumerationType; struct sd_device_enumerator { diff --git a/src/libsystemd/sd-device/device-monitor-private.h b/src/libsystemd/sd-device/device-monitor-private.h index 2ca3a313b6..33e2714605 100644 --- a/src/libsystemd/sd-device/device-monitor-private.h +++ b/src/libsystemd/sd-device/device-monitor-private.h @@ -1,6 +1,8 @@ /* SPDX-License-Identifier: LGPL-2.1-or-later */ #pragma once +#include + #include "sd-device.h" typedef enum MonitorNetlinkGroup { @@ -8,7 +10,7 @@ typedef enum MonitorNetlinkGroup { MONITOR_GROUP_KERNEL, MONITOR_GROUP_UDEV, _MONITOR_NETLINK_GROUP_MAX, - _MONITOR_NETLINK_GROUP_INVALID = -1, + _MONITOR_NETLINK_GROUP_INVALID = -EINVAL, } MonitorNetlinkGroup; int device_monitor_new_full(sd_device_monitor **ret, MonitorNetlinkGroup group, int fd); diff --git a/src/libsystemd/sd-device/device-private.h b/src/libsystemd/sd-device/device-private.h index db81934f32..e8bf2f547e 100644 --- a/src/libsystemd/sd-device/device-private.h +++ b/src/libsystemd/sd-device/device-private.h @@ -20,7 +20,7 @@ typedef enum DeviceAction { DEVICE_ACTION_BIND, DEVICE_ACTION_UNBIND, _DEVICE_ACTION_MAX, - _DEVICE_ACTION_INVALID = -1, + _DEVICE_ACTION_INVALID = -EINVAL, } DeviceAction; int device_new_from_nulstr(sd_device **ret, uint8_t *nulstr, size_t len); diff --git a/src/libsystemd/sd-event/event-source.h b/src/libsystemd/sd-event/event-source.h index 9f6a8d5e16..d2dc21470e 100644 --- a/src/libsystemd/sd-event/event-source.h +++ b/src/libsystemd/sd-event/event-source.h @@ -28,7 +28,7 @@ typedef enum EventSourceType { SOURCE_WATCHDOG, SOURCE_INOTIFY, _SOURCE_EVENT_SOURCE_TYPE_MAX, - _SOURCE_EVENT_SOURCE_TYPE_INVALID = -1 + _SOURCE_EVENT_SOURCE_TYPE_INVALID = -EINVAL, } EventSourceType; /* All objects we use in epoll events start with this value, so that @@ -40,7 +40,7 @@ typedef enum WakeupType { WAKEUP_SIGNAL_DATA, WAKEUP_INOTIFY_DATA, _WAKEUP_TYPE_MAX, - _WAKEUP_TYPE_INVALID = -1, + _WAKEUP_TYPE_INVALID = -EINVAL, } WakeupType; struct inode_data; diff --git a/src/libsystemd/sd-netlink/netlink-internal.h b/src/libsystemd/sd-netlink/netlink-internal.h index 9159f94dd9..b433bd21dc 100644 --- a/src/libsystemd/sd-netlink/netlink-internal.h +++ b/src/libsystemd/sd-netlink/netlink-internal.h @@ -33,7 +33,7 @@ struct match_callback { typedef enum NetlinkSlotType { NETLINK_REPLY_CALLBACK, NETLINK_MATCH_CALLBACK, - _NETLINK_SLOT_INVALID = -1, + _NETLINK_SLOT_INVALID = -EINVAL, } NetlinkSlotType; struct sd_netlink_slot { diff --git a/src/libsystemd/sd-netlink/netlink-types.h b/src/libsystemd/sd-netlink/netlink-types.h index d1f20810e7..a4cd4ab56c 100644 --- a/src/libsystemd/sd-netlink/netlink-types.h +++ b/src/libsystemd/sd-netlink/netlink-types.h @@ -93,7 +93,7 @@ typedef enum NLUnionLinkInfoData { NL_UNION_LINK_INFO_DATA_IFB, NL_UNION_LINK_INFO_DATA_BAREUDP, _NL_UNION_LINK_INFO_DATA_MAX, - _NL_UNION_LINK_INFO_DATA_INVALID = -1 + _NL_UNION_LINK_INFO_DATA_INVALID = -EINVAL, } NLUnionLinkInfoData; const char *nl_union_link_info_data_to_string(NLUnionLinkInfoData p) _const_; @@ -115,7 +115,7 @@ typedef enum NLUnionTCAOptionData { NL_UNION_TCA_OPTION_DATA_SFB, NL_UNION_TCA_OPTION_DATA_TBF, _NL_UNION_TCA_OPTION_DATA_MAX, - _NL_UNION_TCA_OPTION_DATA_INVALID = -1, + _NL_UNION_TCA_OPTION_DATA_INVALID = -EINVAL, } NLUnionTCAOptionData; const char *nl_union_tca_option_data_to_string(NLUnionTCAOptionData p) _const_; @@ -131,7 +131,7 @@ typedef enum NLUnionNFTExprData { NL_UNION_NFT_EXPR_DATA_META, NL_UNION_NFT_EXPR_DATA_NAT, _NL_UNION_NFT_EXPR_DATA_MAX, - _NL_UNION_NFT_EXPR_DATA_INVALID = -1, + _NL_UNION_NFT_EXPR_DATA_INVALID = -EINVAL, } NLUnionNFTExprData; const char *nl_union_nft_expr_data_to_string(NLUnionNFTExprData p) _const_; diff --git a/src/libsystemd/sd-network/network-util.h b/src/libsystemd/sd-network/network-util.h index 762b15746f..dd6a7dbe88 100644 --- a/src/libsystemd/sd-network/network-util.h +++ b/src/libsystemd/sd-network/network-util.h @@ -22,7 +22,7 @@ typedef enum LinkOperationalState { LINK_OPERSTATE_ENSLAVED, LINK_OPERSTATE_ROUTABLE, _LINK_OPERSTATE_MAX, - _LINK_OPERSTATE_INVALID = -1 + _LINK_OPERSTATE_INVALID = -EINVAL, } LinkOperationalState; typedef enum LinkCarrierState { @@ -33,7 +33,7 @@ typedef enum LinkCarrierState { LINK_CARRIER_STATE_CARRIER = LINK_OPERSTATE_CARRIER, LINK_CARRIER_STATE_ENSLAVED = LINK_OPERSTATE_ENSLAVED, _LINK_CARRIER_STATE_MAX, - _LINK_CARRIER_STATE_INVALID = -1 + _LINK_CARRIER_STATE_INVALID = -EINVAL, } LinkCarrierState; typedef enum LinkAddressState { @@ -41,7 +41,7 @@ typedef enum LinkAddressState { LINK_ADDRESS_STATE_DEGRADED, LINK_ADDRESS_STATE_ROUTABLE, _LINK_ADDRESS_STATE_MAX, - _LINK_ADDRESS_STATE_INVALID = -1 + _LINK_ADDRESS_STATE_INVALID = -EINVAL, } LinkAddressState; const char* link_operstate_to_string(LinkOperationalState s) _const_; diff --git a/src/login/logind-action.h b/src/login/logind-action.h index 73aa20bbb4..0baad37a84 100644 --- a/src/login/logind-action.h +++ b/src/login/logind-action.h @@ -15,7 +15,7 @@ typedef enum HandleAction { HANDLE_SUSPEND_THEN_HIBERNATE, HANDLE_LOCK, _HANDLE_ACTION_MAX, - _HANDLE_ACTION_INVALID = -1 + _HANDLE_ACTION_INVALID = -EINVAL, } HandleAction; #include "logind-inhibit.h" diff --git a/src/login/logind-inhibit.h b/src/login/logind-inhibit.h index 124bdb662f..871e69a03a 100644 --- a/src/login/logind-inhibit.h +++ b/src/login/logind-inhibit.h @@ -13,14 +13,14 @@ typedef enum InhibitWhat { INHIBIT_HANDLE_LID_SWITCH = 1 << 6, INHIBIT_HANDLE_REBOOT_KEY = 1 << 7, _INHIBIT_WHAT_MAX = 1 << 8, - _INHIBIT_WHAT_INVALID = -1 + _INHIBIT_WHAT_INVALID = -EINVAL, } InhibitWhat; typedef enum InhibitMode { INHIBIT_BLOCK, INHIBIT_DELAY, _INHIBIT_MODE_MAX, - _INHIBIT_MODE_INVALID = -1 + _INHIBIT_MODE_INVALID = -EINVAL, } InhibitMode; #include "logind.h" diff --git a/src/login/logind-session.h b/src/login/logind-session.h index 1b59bdbe74..5c35071dc5 100644 --- a/src/login/logind-session.h +++ b/src/login/logind-session.h @@ -15,7 +15,7 @@ typedef enum SessionState { SESSION_ACTIVE, /* Logged in and in the fg */ SESSION_CLOSING, /* Logged out, but scope is still there */ _SESSION_STATE_MAX, - _SESSION_STATE_INVALID = -1 + _SESSION_STATE_INVALID = -EINVAL, } SessionState; typedef enum SessionClass { @@ -24,7 +24,7 @@ typedef enum SessionClass { SESSION_LOCK_SCREEN, SESSION_BACKGROUND, _SESSION_CLASS_MAX, - _SESSION_CLASS_INVALID = -1 + _SESSION_CLASS_INVALID = -EINVAL, } SessionClass; typedef enum SessionType { @@ -35,7 +35,7 @@ typedef enum SessionType { SESSION_MIR, SESSION_WEB, _SESSION_TYPE_MAX, - _SESSION_TYPE_INVALID = -1 + _SESSION_TYPE_INVALID = -EINVAL, } SessionType; #define SESSION_TYPE_IS_GRAPHICAL(type) IN_SET(type, SESSION_X11, SESSION_WAYLAND, SESSION_MIR) @@ -44,7 +44,7 @@ enum KillWho { KILL_LEADER, KILL_ALL, _KILL_WHO_MAX, - _KILL_WHO_INVALID = -1 + _KILL_WHO_INVALID = -EINVAL, }; typedef enum TTYValidity { @@ -52,7 +52,7 @@ typedef enum TTYValidity { TTY_FROM_UTMP, TTY_UTMP_INCONSISTENT, /* may happen on ssh sessions with multiplexed TTYs */ _TTY_VALIDITY_MAX, - _TTY_VALIDITY_INVALID = -1, + _TTY_VALIDITY_INVALID = -EINVAL, } TTYValidity; struct Session { diff --git a/src/login/logind-user.h b/src/login/logind-user.h index 2c5f993faa..21b9f8f348 100644 --- a/src/login/logind-user.h +++ b/src/login/logind-user.h @@ -16,7 +16,7 @@ typedef enum UserState { USER_ACTIVE, /* User logged in and has a session in the fg */ USER_CLOSING, /* User logged out, but processes still remain and lingering is not enabled */ _USER_STATE_MAX, - _USER_STATE_INVALID = -1 + _USER_STATE_INVALID = -EINVAL, } UserState; struct User { diff --git a/src/machine/machine.h b/src/machine/machine.h index 2f627157a3..5e0e529567 100644 --- a/src/machine/machine.h +++ b/src/machine/machine.h @@ -14,7 +14,7 @@ typedef enum MachineState { MACHINE_RUNNING, /* Machine is running */ MACHINE_CLOSING, /* Machine is terminating */ _MACHINE_STATE_MAX, - _MACHINE_STATE_INVALID = -1 + _MACHINE_STATE_INVALID = -EINVAL, } MachineState; typedef enum MachineClass { @@ -22,14 +22,14 @@ typedef enum MachineClass { MACHINE_VM, MACHINE_HOST, _MACHINE_CLASS_MAX, - _MACHINE_CLASS_INVALID = -1 + _MACHINE_CLASS_INVALID = -EINVAL, } MachineClass; enum KillWho { KILL_LEADER, KILL_ALL, _KILL_WHO_MAX, - _KILL_WHO_INVALID = -1 + _KILL_WHO_INVALID = -EINVAL, }; struct Machine { diff --git a/src/network/generator/network-generator.h b/src/network/generator/network-generator.h index 86bcaec119..5131b20bcc 100644 --- a/src/network/generator/network-generator.h +++ b/src/network/generator/network-generator.h @@ -19,7 +19,7 @@ typedef enum DHCPType { DHCP_TYPE_EITHER6, DHCP_TYPE_IBFT, _DHCP_TYPE_MAX, - _DHCP_TYPE_INVALID = -1, + _DHCP_TYPE_INVALID = -EINVAL, } DHCPType; typedef struct Address Address; diff --git a/src/network/netdev/bareudp.h b/src/network/netdev/bareudp.h index ea80bbf800..8d8863cccc 100644 --- a/src/network/netdev/bareudp.h +++ b/src/network/netdev/bareudp.h @@ -15,7 +15,7 @@ typedef enum BareUDPProtocol { BARE_UDP_PROTOCOL_MPLS_UC = ETH_P_MPLS_UC, BARE_UDP_PROTOCOL_MPLS_MC = ETH_P_MPLS_MC, _BARE_UDP_PROTOCOL_MAX, - _BARE_UDP_PROTOCOL_INVALID = -1 + _BARE_UDP_PROTOCOL_INVALID = -EINVAL, } BareUDPProtocol; struct BareUDP { diff --git a/src/network/netdev/bridge.h b/src/network/netdev/bridge.h index f3276c5c41..459a5eed68 100644 --- a/src/network/netdev/bridge.h +++ b/src/network/netdev/bridge.h @@ -35,7 +35,7 @@ typedef enum MulticastRouter { MULTICAST_ROUTER_PERMANENT = MDB_RTR_TYPE_PERM, MULTICAST_ROUTER_TEMPORARY = MDB_RTR_TYPE_TEMP, _MULTICAST_ROUTER_MAX, - _MULTICAST_ROUTER_INVALID = -1, + _MULTICAST_ROUTER_INVALID = -EINVAL, } MulticastRouter; DEFINE_NETDEV_CAST(BRIDGE, Bridge); diff --git a/src/network/netdev/fou-tunnel.h b/src/network/netdev/fou-tunnel.h index a6f10dfca4..576d82ed6c 100644 --- a/src/network/netdev/fou-tunnel.h +++ b/src/network/netdev/fou-tunnel.h @@ -12,7 +12,7 @@ typedef enum FooOverUDPEncapType { NETDEV_FOO_OVER_UDP_ENCAP_DIRECT = FOU_ENCAP_DIRECT, NETDEV_FOO_OVER_UDP_ENCAP_GUE = FOU_ENCAP_GUE, _NETDEV_FOO_OVER_UDP_ENCAP_MAX, - _NETDEV_FOO_OVER_UDP_ENCAP_INVALID = -1, + _NETDEV_FOO_OVER_UDP_ENCAP_INVALID = -EINVAL, } FooOverUDPEncapType; typedef struct FouTunnel { diff --git a/src/network/netdev/geneve.h b/src/network/netdev/geneve.h index b62eb7b76d..1f0f15c2ad 100644 --- a/src/network/netdev/geneve.h +++ b/src/network/netdev/geneve.h @@ -14,7 +14,7 @@ typedef enum GeneveDF { NETDEV_GENEVE_DF_YES = GENEVE_DF_SET, NETDEV_GENEVE_DF_INHERIT = GENEVE_DF_INHERIT, _NETDEV_GENEVE_DF_MAX, - _NETDEV_GENEVE_DF_INVALID = -1 + _NETDEV_GENEVE_DF_INVALID = -EINVAL, } GeneveDF; struct Geneve { diff --git a/src/network/netdev/l2tp-tunnel.h b/src/network/netdev/l2tp-tunnel.h index 048318d6df..a884d2100f 100644 --- a/src/network/netdev/l2tp-tunnel.h +++ b/src/network/netdev/l2tp-tunnel.h @@ -12,14 +12,14 @@ typedef enum L2tpL2specType { NETDEV_L2TP_L2SPECTYPE_NONE = L2TP_L2SPECTYPE_NONE, NETDEV_L2TP_L2SPECTYPE_DEFAULT = L2TP_L2SPECTYPE_DEFAULT, _NETDEV_L2TP_L2SPECTYPE_MAX, - _NETDEV_L2TP_L2SPECTYPE_INVALID = -1, + _NETDEV_L2TP_L2SPECTYPE_INVALID = -EINVAL, } L2tpL2specType; typedef enum L2tpEncapType { NETDEV_L2TP_ENCAPTYPE_UDP = L2TP_ENCAPTYPE_UDP, NETDEV_L2TP_ENCAPTYPE_IP = L2TP_ENCAPTYPE_IP, _NETDEV_L2TP_ENCAPTYPE_MAX, - _NETDEV_L2TP_ENCAPTYPE_INVALID = -1, + _NETDEV_L2TP_ENCAPTYPE_INVALID = -EINVAL, } L2tpEncapType; typedef enum L2tpLocalAddressType { @@ -27,7 +27,7 @@ typedef enum L2tpLocalAddressType { NETDEV_L2TP_LOCAL_ADDRESS_STATIC, NETDEV_L2TP_LOCAL_ADDRESS_DYNAMIC, _NETDEV_L2TP_LOCAL_ADDRESS_MAX, - _NETDEV_L2TP_LOCAL_ADDRESS_INVALID = -1, + _NETDEV_L2TP_LOCAL_ADDRESS_INVALID = -EINVAL, } L2tpLocalAddressType; typedef struct L2tpTunnel L2tpTunnel; diff --git a/src/network/netdev/netdev.h b/src/network/netdev/netdev.h index 468fae591c..c13542ae80 100644 --- a/src/network/netdev/netdev.h +++ b/src/network/netdev/netdev.h @@ -85,7 +85,7 @@ typedef enum NetDevKind { NETDEV_KIND_BAREUDP, _NETDEV_KIND_MAX, _NETDEV_KIND_TUNNEL, /* Used by config_parse_stacked_netdev() */ - _NETDEV_KIND_INVALID = -1 + _NETDEV_KIND_INVALID = -EINVAL, } NetDevKind; typedef enum NetDevState { @@ -95,7 +95,7 @@ typedef enum NetDevState { NETDEV_STATE_READY, NETDEV_STATE_LINGER, _NETDEV_STATE_MAX, - _NETDEV_STATE_INVALID = -1, + _NETDEV_STATE_INVALID = -EINVAL, } NetDevState; typedef enum NetDevCreateType { @@ -104,7 +104,7 @@ typedef enum NetDevCreateType { NETDEV_CREATE_STACKED, NETDEV_CREATE_AFTER_CONFIGURED, _NETDEV_CREATE_MAX, - _NETDEV_CREATE_INVALID = -1, + _NETDEV_CREATE_INVALID = -EINVAL, } NetDevCreateType; typedef struct Manager Manager; diff --git a/src/network/netdev/tunnel.h b/src/network/netdev/tunnel.h index d58ded757d..35021e9409 100644 --- a/src/network/netdev/tunnel.h +++ b/src/network/netdev/tunnel.h @@ -12,13 +12,13 @@ typedef enum Ip6TnlMode { NETDEV_IP6_TNL_MODE_IPIP6, NETDEV_IP6_TNL_MODE_ANYIP6, _NETDEV_IP6_TNL_MODE_MAX, - _NETDEV_IP6_TNL_MODE_INVALID = -1, + _NETDEV_IP6_TNL_MODE_INVALID = -EINVAL, } Ip6TnlMode; typedef enum IPv6FlowLabel { NETDEV_IPV6_FLOWLABEL_INHERIT = 0xFFFFF + 1, _NETDEV_IPV6_FLOWLABEL_MAX, - _NETDEV_IPV6_FLOWLABEL_INVALID = -1, + _NETDEV_IPV6_FLOWLABEL_INVALID = -EINVAL, } IPv6FlowLabel; typedef struct Tunnel { diff --git a/src/network/netdev/vxlan.h b/src/network/netdev/vxlan.h index 371653cade..12ef46ef9a 100644 --- a/src/network/netdev/vxlan.h +++ b/src/network/netdev/vxlan.h @@ -16,7 +16,7 @@ typedef enum VxLanDF { NETDEV_VXLAN_DF_YES = VXLAN_DF_SET, NETDEV_VXLAN_DF_INHERIT = VXLAN_DF_INHERIT, _NETDEV_VXLAN_DF_MAX, - _NETDEV_VXLAN_DF_INVALID = -1 + _NETDEV_VXLAN_DF_INVALID = -EINVAL, } VxLanDF; struct VxLan { diff --git a/src/network/networkd-dhcp-common.h b/src/network/networkd-dhcp-common.h index aa100d0de4..acf80e6255 100644 --- a/src/network/networkd-dhcp-common.h +++ b/src/network/networkd-dhcp-common.h @@ -16,7 +16,7 @@ typedef enum DHCPUseDomains { DHCP_USE_DOMAINS_YES, DHCP_USE_DOMAINS_ROUTE, _DHCP_USE_DOMAINS_MAX, - _DHCP_USE_DOMAINS_INVALID = -1, + _DHCP_USE_DOMAINS_INVALID = -EINVAL, } DHCPUseDomains; typedef enum DHCPOptionDataType { diff --git a/src/network/networkd-dhcp4.h b/src/network/networkd-dhcp4.h index 7500a23c3b..5ec2f88b7e 100644 --- a/src/network/networkd-dhcp4.h +++ b/src/network/networkd-dhcp4.h @@ -14,7 +14,7 @@ typedef enum DHCPClientIdentifier { * https://github.com/systemd/systemd/issues/7828 */ DHCP_CLIENT_ID_DUID_ONLY, _DHCP_CLIENT_ID_MAX, - _DHCP_CLIENT_ID_INVALID = -1, + _DHCP_CLIENT_ID_INVALID = -EINVAL, } DHCPClientIdentifier; int dhcp4_configure(Link *link); diff --git a/src/network/networkd-dhcp6.h b/src/network/networkd-dhcp6.h index 65b35fd1e8..f74476d575 100644 --- a/src/network/networkd-dhcp6.h +++ b/src/network/networkd-dhcp6.h @@ -11,7 +11,7 @@ typedef enum DHCP6ClientStartMode { DHCP6_CLIENT_START_MODE_INFORMATION_REQUEST, DHCP6_CLIENT_START_MODE_SOLICIT, _DHCP6_CLIENT_START_MODE_MAX, - _DHCP6_CLIENT_START_MODE_INVALID = -1, + _DHCP6_CLIENT_START_MODE_INVALID = -EINVAL, } DHCP6ClientStartMode; typedef struct Link Link; diff --git a/src/network/networkd-fdb.h b/src/network/networkd-fdb.h index 48f4e40b37..dc85a70f8c 100644 --- a/src/network/networkd-fdb.h +++ b/src/network/networkd-fdb.h @@ -22,7 +22,7 @@ typedef enum NeighborCacheEntryFlags { NEIGHBOR_CACHE_ENTRY_FLAGS_MASTER = NTF_MASTER, NEIGHBOR_CACHE_ENTRY_FLAGS_ROUTER = NTF_ROUTER, _NEIGHBOR_CACHE_ENTRY_FLAGS_MAX, - _NEIGHBOR_CACHE_ENTRY_FLAGS_INVALID = -1, + _NEIGHBOR_CACHE_ENTRY_FLAGS_INVALID = -EINVAL, } NeighborCacheEntryFlags; typedef struct FdbEntry { diff --git a/src/network/networkd-link.h b/src/network/networkd-link.h index 3623b1a00d..8129fd2554 100644 --- a/src/network/networkd-link.h +++ b/src/network/networkd-link.h @@ -33,7 +33,7 @@ typedef enum LinkState { LINK_STATE_FAILED, /* at least one configuration process failed */ LINK_STATE_LINGER, /* RTM_DELLINK for the link has been received */ _LINK_STATE_MAX, - _LINK_STATE_INVALID = -1 + _LINK_STATE_INVALID = -EINVAL, } LinkState; typedef struct Manager Manager; diff --git a/src/network/networkd-lldp-rx.h b/src/network/networkd-lldp-rx.h index 78c522893b..49306eafd0 100644 --- a/src/network/networkd-lldp-rx.h +++ b/src/network/networkd-lldp-rx.h @@ -10,7 +10,7 @@ typedef enum LLDPMode { LLDP_MODE_YES = 1, LLDP_MODE_ROUTERS_ONLY = 2, _LLDP_MODE_MAX, - _LLDP_MODE_INVALID = -1, + _LLDP_MODE_INVALID = -EINVAL, } LLDPMode; int link_lldp_rx_configure(Link *link); diff --git a/src/network/networkd-ndisc.h b/src/network/networkd-ndisc.h index e2cb82b346..20884ce56b 100644 --- a/src/network/networkd-ndisc.h +++ b/src/network/networkd-ndisc.h @@ -14,7 +14,7 @@ typedef enum IPv6TokenAddressGeneration { IPV6_TOKEN_ADDRESS_GENERATION_STATIC, IPV6_TOKEN_ADDRESS_GENERATION_PREFIXSTABLE, _IPV6_TOKEN_ADDRESS_GENERATION_MAX, - _IPV6_TOKEN_ADDRESS_GENERATION_INVALID = -1, + _IPV6_TOKEN_ADDRESS_GENERATION_INVALID = -EINVAL, } IPv6TokenAddressGeneration; typedef enum IPv6AcceptRAStartDHCP6Client { @@ -22,7 +22,7 @@ typedef enum IPv6AcceptRAStartDHCP6Client { IPV6_ACCEPT_RA_START_DHCP6_CLIENT_ALWAYS, IPV6_ACCEPT_RA_START_DHCP6_CLIENT_YES, _IPV6_ACCEPT_RA_START_DHCP6_CLIENT_MAX, - _IPV6_ACCEPT_RA_START_DHCP6_CLIENT_INVALID = -1, + _IPV6_ACCEPT_RA_START_DHCP6_CLIENT_INVALID = -EINVAL, } IPv6AcceptRAStartDHCP6Client; typedef struct NDiscAddress { diff --git a/src/network/networkd-network.h b/src/network/networkd-network.h index baa806fca6..288248dfa6 100644 --- a/src/network/networkd-network.h +++ b/src/network/networkd-network.h @@ -35,7 +35,7 @@ typedef enum KeepConfiguration { KEEP_CONFIGURATION_STATIC = 1 << 2, KEEP_CONFIGURATION_YES = KEEP_CONFIGURATION_DHCP | KEEP_CONFIGURATION_STATIC, _KEEP_CONFIGURATION_MAX, - _KEEP_CONFIGURATION_INVALID = -1, + _KEEP_CONFIGURATION_INVALID = -EINVAL, } KeepConfiguration; typedef enum IPv6LinkLocalAddressGenMode { @@ -44,7 +44,7 @@ typedef enum IPv6LinkLocalAddressGenMode { IPV6_LINK_LOCAL_ADDRESSS_GEN_MODE_STABLE_PRIVACY = IN6_ADDR_GEN_MODE_STABLE_PRIVACY, IPV6_LINK_LOCAL_ADDRESSS_GEN_MODE_RANDOM = IN6_ADDR_GEN_MODE_RANDOM, _IPV6_LINK_LOCAL_ADDRESS_GEN_MODE_MAX, - _IPV6_LINK_LOCAL_ADDRESS_GEN_MODE_INVALID = -1 + _IPV6_LINK_LOCAL_ADDRESS_GEN_MODE_INVALID = -EINVAL, } IPv6LinkLocalAddressGenMode; typedef enum ActivationPolicy { @@ -55,7 +55,7 @@ typedef enum ActivationPolicy { ACTIVATION_POLICY_DOWN, ACTIVATION_POLICY_BOUND, _ACTIVATION_POLICY_MAX, - _ACTIVATION_POLICY_INVALID = -1 + _ACTIVATION_POLICY_INVALID = -EINVAL, } ActivationPolicy; typedef struct Manager Manager; diff --git a/src/network/networkd-radv.h b/src/network/networkd-radv.h index 4dfbefef95..73d2f24545 100644 --- a/src/network/networkd-radv.h +++ b/src/network/networkd-radv.h @@ -23,7 +23,7 @@ typedef enum RADVPrefixDelegation { RADV_PREFIX_DELEGATION_DHCP6 = 1 << 1, RADV_PREFIX_DELEGATION_BOTH = RADV_PREFIX_DELEGATION_STATIC | RADV_PREFIX_DELEGATION_DHCP6, _RADV_PREFIX_DELEGATION_MAX, - _RADV_PREFIX_DELEGATION_INVALID = -1, + _RADV_PREFIX_DELEGATION_INVALID = -EINVAL, } RADVPrefixDelegation; typedef struct Prefix { diff --git a/src/network/networkd-sriov.h b/src/network/networkd-sriov.h index dae5ff0306..950d1f9c59 100644 --- a/src/network/networkd-sriov.h +++ b/src/network/networkd-sriov.h @@ -15,7 +15,7 @@ typedef enum SRIOVLinkState { SR_IOV_LINK_STATE_ENABLE = IFLA_VF_LINK_STATE_ENABLE, SR_IOV_LINK_STATE_DISABLE = IFLA_VF_LINK_STATE_DISABLE, _SR_IOV_LINK_STATE_MAX, - _SR_IOV_LINK_STATE_INVALID = -1, + _SR_IOV_LINK_STATE_INVALID = -EINVAL, } SRIOVLinkState; typedef struct SRIOV { diff --git a/src/network/networkd-sysctl.h b/src/network/networkd-sysctl.h index 3568900a1f..cb1db10fe8 100644 --- a/src/network/networkd-sysctl.h +++ b/src/network/networkd-sysctl.h @@ -13,7 +13,7 @@ typedef enum IPv6PrivacyExtensions { IPV6_PRIVACY_EXTENSIONS_PREFER_PUBLIC, IPV6_PRIVACY_EXTENSIONS_YES, /* aka prefer-temporary */ _IPV6_PRIVACY_EXTENSIONS_MAX, - _IPV6_PRIVACY_EXTENSIONS_INVALID = -1, + _IPV6_PRIVACY_EXTENSIONS_INVALID = -EINVAL, } IPv6PrivacyExtensions; int link_set_sysctl(Link *link); diff --git a/src/network/networkd-util.h b/src/network/networkd-util.h index 7b48046c35..cc5ee35558 100644 --- a/src/network/networkd-util.h +++ b/src/network/networkd-util.h @@ -17,7 +17,7 @@ typedef enum AddressFamily { ADDRESS_FAMILY_IPV6 = 1 << 1, ADDRESS_FAMILY_YES = ADDRESS_FAMILY_IPV4 | ADDRESS_FAMILY_IPV6, _ADDRESS_FAMILY_MAX, - _ADDRESS_FAMILY_INVALID = -1, + _ADDRESS_FAMILY_INVALID = -EINVAL, } AddressFamily; typedef struct NetworkConfigSection { diff --git a/src/network/tc/qdisc.h b/src/network/tc/qdisc.h index f9a9954861..2232189f4f 100644 --- a/src/network/tc/qdisc.h +++ b/src/network/tc/qdisc.h @@ -31,7 +31,7 @@ typedef enum QDiscKind { QDISC_KIND_TBF, QDISC_KIND_TEQL, _QDISC_KIND_MAX, - _QDISC_KIND_INVALID = -1, + _QDISC_KIND_INVALID = -EINVAL, } QDiscKind; typedef struct QDisc { diff --git a/src/network/tc/tc.h b/src/network/tc/tc.h index 7fbd744142..badd5227c6 100644 --- a/src/network/tc/tc.h +++ b/src/network/tc/tc.h @@ -8,7 +8,7 @@ typedef enum TrafficControlKind { TC_KIND_TCLASS, TC_KIND_FILTER, _TC_KIND_MAX, - _TC_KIND_INVALID = -1, + _TC_KIND_INVALID = -EINVAL, } TrafficControlKind; typedef struct TrafficControl { diff --git a/src/network/tc/tclass.h b/src/network/tc/tclass.h index f02a6a734a..8e5e52c401 100644 --- a/src/network/tc/tclass.h +++ b/src/network/tc/tclass.h @@ -13,7 +13,7 @@ typedef enum TClassKind { TCLASS_KIND_HTB, TCLASS_KIND_QFQ, _TCLASS_KIND_MAX, - _TCLASS_KIND_INVALID = -1, + _TCLASS_KIND_INVALID = -EINVAL, } TClassKind; typedef struct TClass { diff --git a/src/nspawn/nspawn-mount.h b/src/nspawn/nspawn-mount.h index e8b75fba60..e19b2cc4e1 100644 --- a/src/nspawn/nspawn-mount.h +++ b/src/nspawn/nspawn-mount.h @@ -29,7 +29,7 @@ typedef enum CustomMountType { CUSTOM_MOUNT_INACCESSIBLE, CUSTOM_MOUNT_ARBITRARY, _CUSTOM_MOUNT_TYPE_MAX, - _CUSTOM_MOUNT_TYPE_INVALID = -1 + _CUSTOM_MOUNT_TYPE_INVALID = -EINVAL, } CustomMountType; typedef struct CustomMount { diff --git a/src/nspawn/nspawn-settings.h b/src/nspawn/nspawn-settings.h index 66ee0cc979..d0c708a8a0 100644 --- a/src/nspawn/nspawn-settings.h +++ b/src/nspawn/nspawn-settings.h @@ -25,7 +25,7 @@ typedef enum StartMode { START_PID2, /* Use stub init process as PID 1, run parameters as command line as process 2 */ START_BOOT, /* Search for init system, pass arguments as parameters */ _START_MODE_MAX, - _START_MODE_INVALID = -1 + _START_MODE_INVALID = -EINVAL, } StartMode; typedef enum UserNamespaceMode { @@ -33,7 +33,7 @@ typedef enum UserNamespaceMode { USER_NAMESPACE_FIXED, USER_NAMESPACE_PICK, _USER_NAMESPACE_MODE_MAX, - _USER_NAMESPACE_MODE_INVALID = -1, + _USER_NAMESPACE_MODE_INVALID = -EINVAL, } UserNamespaceMode; typedef enum ResolvConfMode { @@ -53,7 +53,7 @@ typedef enum ResolvConfMode { RESOLV_CONF_DELETE, RESOLV_CONF_AUTO, _RESOLV_CONF_MODE_MAX, - _RESOLV_CONF_MODE_INVALID = -1 + _RESOLV_CONF_MODE_INVALID = -EINVAL, } ResolvConfMode; typedef enum LinkJournal { @@ -62,7 +62,7 @@ typedef enum LinkJournal { LINK_HOST, LINK_GUEST, _LINK_JOURNAL_MAX, - _LINK_JOURNAL_INVALID = -1 + _LINK_JOURNAL_INVALID = -EINVAL, } LinkJournal; typedef enum TimezoneMode { @@ -73,7 +73,7 @@ typedef enum TimezoneMode { TIMEZONE_DELETE, TIMEZONE_AUTO, _TIMEZONE_MODE_MAX, - _TIMEZONE_MODE_INVALID = -1 + _TIMEZONE_MODE_INVALID = -EINVAL, } TimezoneMode; typedef enum ConsoleMode { @@ -82,7 +82,7 @@ typedef enum ConsoleMode { CONSOLE_PASSIVE, CONSOLE_PIPE, _CONSOLE_MODE_MAX, - _CONSOLE_MODE_INVALID = -1, + _CONSOLE_MODE_INVALID = -EINVAL, } ConsoleMode; typedef enum SettingsMask { diff --git a/src/partition/repart.c b/src/partition/repart.c index 3004e59f9c..2236c6927f 100644 --- a/src/partition/repart.c +++ b/src/partition/repart.c @@ -129,7 +129,7 @@ typedef enum EncryptMode { ENCRYPT_TPM2, ENCRYPT_KEY_FILE_TPM2, _ENCRYPT_MODE_MAX, - _ENCRYPT_MODE_INVALID = -1, + _ENCRYPT_MODE_INVALID = -EINVAL, } EncryptMode; struct Partition { diff --git a/src/portable/portable.h b/src/portable/portable.h index fd9605ed84..00ff80c38a 100644 --- a/src/portable/portable.h +++ b/src/portable/portable.h @@ -42,7 +42,7 @@ typedef enum PortableState { PORTABLE_RUNNING, PORTABLE_RUNNING_RUNTIME, _PORTABLE_STATE_MAX, - _PORTABLE_STATE_INVALID = -1 + _PORTABLE_STATE_INVALID = -EINVAL, } PortableState; typedef struct PortableChange { diff --git a/src/portable/portabled-image-bus.h b/src/portable/portabled-image-bus.h index 8442baf232..50f1d935b1 100644 --- a/src/portable/portabled-image-bus.h +++ b/src/portable/portabled-image-bus.h @@ -32,7 +32,7 @@ typedef enum ImageAcquireMode { BUS_IMAGE_AUTHENTICATE_BY_PATH, /* allow by name + polkit by path */ BUS_IMAGE_AUTHENTICATE_ALL, /* polkit by name + polkit by path */ _BUS_IMAGE_ACQUIRE_MODE_MAX, - _BUS_IMAGE_ACQUIRE_MODE_INVALID = -1 + _BUS_IMAGE_ACQUIRE_MODE_INVALID = -EINVAL, } ImageAcquireMode; int bus_image_acquire(Manager *m, sd_bus_message *message, const char *name_or_path, Image *image, ImageAcquireMode mode, const char *polkit_action, Image **ret, sd_bus_error *error); diff --git a/src/pstore/pstore.c b/src/pstore/pstore.c index c642a3252c..9d59c608c1 100644 --- a/src/pstore/pstore.c +++ b/src/pstore/pstore.c @@ -53,7 +53,7 @@ typedef enum PStoreStorage { PSTORE_STORAGE_EXTERNAL, PSTORE_STORAGE_JOURNAL, _PSTORE_STORAGE_MAX, - _PSTORE_STORAGE_INVALID = -1 + _PSTORE_STORAGE_INVALID = -EINVAL, } PStoreStorage; static const char* const pstore_storage_table[_PSTORE_STORAGE_MAX] = { diff --git a/src/resolve/dns-type.h b/src/resolve/dns-type.h index 4370db9cff..f0bb3be7be 100644 --- a/src/resolve/dns-type.h +++ b/src/resolve/dns-type.h @@ -90,7 +90,7 @@ enum { DNS_TYPE_DLV, _DNS_TYPE_MAX, - _DNS_TYPE_INVALID = -1 + _DNS_TYPE_INVALID = -EINVAL, }; assert_cc(DNS_TYPE_SSHFP == 44); @@ -103,7 +103,7 @@ enum { DNS_CLASS_ANY = 0xFF, _DNS_CLASS_MAX, - _DNS_CLASS_INVALID = -1 + _DNS_CLASS_INVALID = -EINVAL, }; #define _DNS_CLASS_STRING_MAX (sizeof "CLASS" + DECIMAL_STR_MAX(uint16_t)) diff --git a/src/resolve/resolvectl.h b/src/resolve/resolvectl.h index 830c81d692..468a87957d 100644 --- a/src/resolve/resolvectl.h +++ b/src/resolve/resolvectl.h @@ -18,7 +18,7 @@ typedef enum ExecutionMode { MODE_STATUS, MODE_SET_LINK, MODE_REVERT_LINK, - _MODE_INVALID = -1, + _MODE_INVALID = -EINVAL, } ExecutionMode; extern ExecutionMode arg_mode; diff --git a/src/resolve/resolved-dns-dnssec.h b/src/resolve/resolved-dns-dnssec.h index 9c3c0dcfc9..954bb3ef9d 100644 --- a/src/resolve/resolved-dns-dnssec.h +++ b/src/resolve/resolved-dns-dnssec.h @@ -27,7 +27,7 @@ enum DnssecResult { DNSSEC_INCOMPATIBLE_SERVER, _DNSSEC_RESULT_MAX, - _DNSSEC_RESULT_INVALID = -1 + _DNSSEC_RESULT_INVALID = -EINVAL, }; enum DnssecVerdict { @@ -37,7 +37,7 @@ enum DnssecVerdict { DNSSEC_INDETERMINATE, _DNSSEC_VERDICT_MAX, - _DNSSEC_VERDICT_INVALID = -1 + _DNSSEC_VERDICT_INVALID = -EINVAL, }; #define DNSSEC_CANONICAL_HOSTNAME_MAX (DNS_HOSTNAME_MAX + 2) diff --git a/src/resolve/resolved-dns-packet.h b/src/resolve/resolved-dns-packet.h index 4dba96b3b8..e7d6cb1904 100644 --- a/src/resolve/resolved-dns-packet.h +++ b/src/resolve/resolved-dns-packet.h @@ -22,7 +22,7 @@ typedef enum DnsProtocol { DNS_PROTOCOL_MDNS, DNS_PROTOCOL_LLMNR, _DNS_PROTOCOL_MAX, - _DNS_PROTOCOL_INVALID = -1 + _DNS_PROTOCOL_INVALID = -EINVAL, } DnsProtocol; struct DnsPacketHeader { diff --git a/src/resolve/resolved-dns-scope.h b/src/resolve/resolved-dns-scope.h index de05c0838f..82cd0becab 100644 --- a/src/resolve/resolved-dns-scope.h +++ b/src/resolve/resolved-dns-scope.h @@ -22,7 +22,7 @@ typedef enum DnsScopeMatch { DNS_SCOPE_YES_BASE, /* Add the number of matching labels to this */ DNS_SCOPE_YES_END = DNS_SCOPE_YES_BASE + DNS_N_LABELS_MAX, _DNS_SCOPE_MATCH_MAX, - _DNS_SCOPE_MATCH_INVALID = -1 + _DNS_SCOPE_MATCH_INVALID = -EINVAL, } DnsScopeMatch; struct DnsScope { diff --git a/src/resolve/resolved-dns-server.h b/src/resolve/resolved-dns-server.h index 20afee74ac..e4664c883a 100644 --- a/src/resolve/resolved-dns-server.h +++ b/src/resolve/resolved-dns-server.h @@ -20,7 +20,7 @@ typedef enum DnsServerType { DNS_SERVER_FALLBACK, DNS_SERVER_LINK, _DNS_SERVER_TYPE_MAX, - _DNS_SERVER_TYPE_INVALID = -1 + _DNS_SERVER_TYPE_INVALID = -EINVAL, } DnsServerType; const char* dns_server_type_to_string(DnsServerType i) _const_; @@ -35,7 +35,7 @@ typedef enum DnsServerFeatureLevel { DNS_SERVER_FEATURE_LEVEL_LARGE, DNS_SERVER_FEATURE_LEVEL_TLS_DO, _DNS_SERVER_FEATURE_LEVEL_MAX, - _DNS_SERVER_FEATURE_LEVEL_INVALID = -1 + _DNS_SERVER_FEATURE_LEVEL_INVALID = -EINVAL, } DnsServerFeatureLevel; #define DNS_SERVER_FEATURE_LEVEL_WORST 0 diff --git a/src/resolve/resolved-dns-stream.h b/src/resolve/resolved-dns-stream.h index dba06447cf..470d446ddb 100644 --- a/src/resolve/resolved-dns-stream.h +++ b/src/resolve/resolved-dns-stream.h @@ -21,7 +21,7 @@ typedef enum DnsStreamType { DNS_STREAM_LLMNR_RECV, /* Incoming LLMNR TCP lookup */ DNS_STREAM_STUB, /* Incoming DNS stub connection */ _DNS_STREAM_TYPE_MAX, - _DNS_STREAM_TYPE_INVALID = -1, + _DNS_STREAM_TYPE_INVALID = -EINVAL, } DnsStreamType; #define DNS_STREAM_WRITE_TLS_DATA 1 diff --git a/src/resolve/resolved-dns-stub.h b/src/resolve/resolved-dns-stub.h index 072f2130e5..5911ccdc34 100644 --- a/src/resolve/resolved-dns-stub.h +++ b/src/resolve/resolved-dns-stub.h @@ -11,7 +11,7 @@ typedef enum DnsStubListenerMode { DNS_STUB_LISTENER_TCP = 1 << 1, DNS_STUB_LISTENER_YES = DNS_STUB_LISTENER_UDP | DNS_STUB_LISTENER_TCP, _DNS_STUB_LISTENER_MODE_MAX, - _DNS_STUB_LISTENER_MODE_INVALID = -1 + _DNS_STUB_LISTENER_MODE_INVALID = -EINVAL, } DnsStubListenerMode; #include "resolved-manager.h" diff --git a/src/resolve/resolved-dns-transaction.h b/src/resolve/resolved-dns-transaction.h index 7f0b8e7847..3cad567a8c 100644 --- a/src/resolve/resolved-dns-transaction.h +++ b/src/resolve/resolved-dns-transaction.h @@ -32,7 +32,7 @@ enum DnsTransactionState { DNS_TRANSACTION_NETWORK_DOWN, DNS_TRANSACTION_NOT_FOUND, /* like NXDOMAIN, but when LLMNR/TCP connections fail */ _DNS_TRANSACTION_STATE_MAX, - _DNS_TRANSACTION_STATE_INVALID = -1 + _DNS_TRANSACTION_STATE_INVALID = -EINVAL, }; #define DNS_TRANSACTION_IS_LIVE(state) IN_SET((state), DNS_TRANSACTION_NULL, DNS_TRANSACTION_PENDING, DNS_TRANSACTION_VALIDATING) @@ -43,7 +43,7 @@ enum DnsTransactionSource { DNS_TRANSACTION_ZONE, DNS_TRANSACTION_TRUST_ANCHOR, _DNS_TRANSACTION_SOURCE_MAX, - _DNS_TRANSACTION_SOURCE_INVALID = -1 + _DNS_TRANSACTION_SOURCE_INVALID = -EINVAL, }; struct DnsTransaction { diff --git a/src/resolve/resolved-resolv-conf.h b/src/resolve/resolved-resolv-conf.h index 3734e28a99..8c0dee876b 100644 --- a/src/resolve/resolved-resolv-conf.h +++ b/src/resolve/resolved-resolv-conf.h @@ -14,7 +14,7 @@ typedef enum ResolvConfMode { RESOLV_CONF_FOREIGN, RESOLV_CONF_MISSING, _RESOLV_CONF_MODE_MAX, - _RESOLV_CONF_MODE_INVALID = -1, + _RESOLV_CONF_MODE_INVALID = -EINVAL, } ResolvConfMode; int resolv_conf_mode(void); diff --git a/src/shared/bond-util.h b/src/shared/bond-util.h index a8f9ecb454..9e693b16ad 100644 --- a/src/shared/bond-util.h +++ b/src/shared/bond-util.h @@ -21,7 +21,7 @@ typedef enum BondMode { NETDEV_BOND_MODE_BALANCE_TLB = BOND_MODE_TLB, NETDEV_BOND_MODE_BALANCE_ALB = BOND_MODE_ALB, _NETDEV_BOND_MODE_MAX, - _NETDEV_BOND_MODE_INVALID = -1 + _NETDEV_BOND_MODE_INVALID = -EINVAL, } BondMode; typedef enum BondXmitHashPolicy { @@ -31,14 +31,14 @@ typedef enum BondXmitHashPolicy { NETDEV_BOND_XMIT_HASH_POLICY_ENCAP23 = BOND_XMIT_POLICY_ENCAP23, NETDEV_BOND_XMIT_HASH_POLICY_ENCAP34 = BOND_XMIT_POLICY_ENCAP34, _NETDEV_BOND_XMIT_HASH_POLICY_MAX, - _NETDEV_BOND_XMIT_HASH_POLICY_INVALID = -1 + _NETDEV_BOND_XMIT_HASH_POLICY_INVALID = -EINVAL, } BondXmitHashPolicy; typedef enum BondLacpRate { NETDEV_BOND_LACP_RATE_SLOW, NETDEV_BOND_LACP_RATE_FAST, _NETDEV_BOND_LACP_RATE_MAX, - _NETDEV_BOND_LACP_RATE_INVALID = -1, + _NETDEV_BOND_LACP_RATE_INVALID = -EINVAL, } BondLacpRate; typedef enum BondAdSelect { @@ -46,7 +46,7 @@ typedef enum BondAdSelect { NETDEV_BOND_AD_SELECT_BANDWIDTH, NETDEV_BOND_AD_SELECT_COUNT, _NETDEV_BOND_AD_SELECT_MAX, - _NETDEV_BOND_AD_SELECT_INVALID = -1, + _NETDEV_BOND_AD_SELECT_INVALID = -EINVAL, } BondAdSelect; typedef enum BondFailOverMac { @@ -54,7 +54,7 @@ typedef enum BondFailOverMac { NETDEV_BOND_FAIL_OVER_MAC_ACTIVE, NETDEV_BOND_FAIL_OVER_MAC_FOLLOW, _NETDEV_BOND_FAIL_OVER_MAC_MAX, - _NETDEV_BOND_FAIL_OVER_MAC_INVALID = -1, + _NETDEV_BOND_FAIL_OVER_MAC_INVALID = -EINVAL, } BondFailOverMac; typedef enum BondArpValidate { @@ -63,14 +63,14 @@ typedef enum BondArpValidate { NETDEV_BOND_ARP_VALIDATE_BACKUP, NETDEV_BOND_ARP_VALIDATE_ALL, _NETDEV_BOND_ARP_VALIDATE_MAX, - _NETDEV_BOND_ARP_VALIDATE_INVALID = -1, + _NETDEV_BOND_ARP_VALIDATE_INVALID = -EINVAL, } BondArpValidate; typedef enum BondArpAllTargets { NETDEV_BOND_ARP_ALL_TARGETS_ANY, NETDEV_BOND_ARP_ALL_TARGETS_ALL, _NETDEV_BOND_ARP_ALL_TARGETS_MAX, - _NETDEV_BOND_ARP_ALL_TARGETS_INVALID = -1, + _NETDEV_BOND_ARP_ALL_TARGETS_INVALID = -EINVAL, } BondArpAllTargets; typedef enum BondPrimaryReselect { @@ -78,7 +78,7 @@ typedef enum BondPrimaryReselect { NETDEV_BOND_PRIMARY_RESELECT_BETTER, NETDEV_BOND_PRIMARY_RESELECT_FAILURE, _NETDEV_BOND_PRIMARY_RESELECT_MAX, - _NETDEV_BOND_PRIMARY_RESELECT_INVALID = -1, + _NETDEV_BOND_PRIMARY_RESELECT_INVALID = -EINVAL, } BondPrimaryReselect; const char *bond_mode_to_string(BondMode d) _const_; diff --git a/src/shared/bootspec.h b/src/shared/bootspec.h index 1557bd0680..c7b4a2ee02 100644 --- a/src/shared/bootspec.h +++ b/src/shared/bootspec.h @@ -15,7 +15,7 @@ typedef enum BootEntryType { BOOT_ENTRY_UNIFIED, /* Type #2 entries: *.efi files */ BOOT_ENTRY_LOADER, /* Additional entries augmented from LoaderEntries EFI var */ _BOOT_ENTRY_MAX, - _BOOT_ENTRY_INVALID = -1, + _BOOT_ENTRY_INVALID = -EINVAL, } BootEntryType; typedef struct BootEntry { diff --git a/src/shared/bus-util.h b/src/shared/bus-util.h index 27dd6c19c0..e0d4d5d915 100644 --- a/src/shared/bus-util.h +++ b/src/shared/bus-util.h @@ -19,7 +19,7 @@ typedef enum BusTransport { BUS_TRANSPORT_REMOTE, BUS_TRANSPORT_MACHINE, _BUS_TRANSPORT_MAX, - _BUS_TRANSPORT_INVALID = -1 + _BUS_TRANSPORT_INVALID = -EINVAL, } BusTransport; int bus_async_unregister_and_exit(sd_event *e, sd_bus *bus, const char *name); diff --git a/src/shared/bus-wait-for-units.h b/src/shared/bus-wait-for-units.h index f7ab666f15..2623e72ced 100644 --- a/src/shared/bus-wait-for-units.h +++ b/src/shared/bus-wait-for-units.h @@ -11,7 +11,7 @@ typedef enum BusWaitForUnitsState { BUS_WAIT_FAILURE, /* dito, but something failed */ BUS_WAIT_RUNNING, /* Still something to wait for */ _BUS_WAIT_FOR_UNITS_STATE_MAX, - _BUS_WAIT_FOR_UNITS_STATE_INVALID = -1, + _BUS_WAIT_FOR_UNITS_STATE_INVALID = -EINVAL, } BusWaitForUnitsState; typedef enum BusWaitForUnitsFlags { diff --git a/src/shared/condition.c b/src/shared/condition.c index 616e77994d..8b00697762 100644 --- a/src/shared/condition.c +++ b/src/shared/condition.c @@ -146,7 +146,7 @@ typedef enum { ORDER_EQUAL, ORDER_UNEQUAL, _ORDER_MAX, - _ORDER_INVALID = -1 + _ORDER_INVALID = -EINVAL, } OrderOperator; static OrderOperator parse_order(const char **s) { diff --git a/src/shared/condition.h b/src/shared/condition.h index 0d9754eb85..7853490290 100644 --- a/src/shared/condition.h +++ b/src/shared/condition.h @@ -40,7 +40,7 @@ typedef enum ConditionType { CONDITION_CONTROL_GROUP_CONTROLLER, _CONDITION_TYPE_MAX, - _CONDITION_TYPE_INVALID = -1 + _CONDITION_TYPE_INVALID = -EINVAL, } ConditionType; typedef enum ConditionResult { @@ -49,7 +49,7 @@ typedef enum ConditionResult { CONDITION_FAILED, CONDITION_ERROR, _CONDITION_RESULT_MAX, - _CONDITION_RESULT_INVALID = -1 + _CONDITION_RESULT_INVALID = -EINVAL, } ConditionResult; typedef struct Condition { diff --git a/src/shared/coredump-util.h b/src/shared/coredump-util.h index a7f3c0e86c..09e7ed443f 100644 --- a/src/shared/coredump-util.h +++ b/src/shared/coredump-util.h @@ -14,7 +14,7 @@ typedef enum CoredumpFilter { COREDUMP_FILTER_PRIVATE_DAX, COREDUMP_FILTER_SHARED_DAX, _COREDUMP_FILTER_MAX, - _COREDUMP_FILTER_INVALID = -1, + _COREDUMP_FILTER_INVALID = -EINVAL, } CoredumpFilter; #define COREDUMP_FILTER_MASK_DEFAULT (1u << COREDUMP_FILTER_PRIVATE_ANONYMOUS | \ diff --git a/src/shared/discover-image.h b/src/shared/discover-image.h index c568fff751..a266d4abdb 100644 --- a/src/shared/discover-image.h +++ b/src/shared/discover-image.h @@ -18,7 +18,7 @@ typedef enum ImageClass { IMAGE_PORTABLE, IMAGE_EXTENSION, _IMAGE_CLASS_MAX, - _IMAGE_CLASS_INVALID = -1 + _IMAGE_CLASS_INVALID = -EINVAL, } ImageClass; typedef enum ImageType { @@ -27,7 +27,7 @@ typedef enum ImageType { IMAGE_RAW, IMAGE_BLOCK, _IMAGE_TYPE_MAX, - _IMAGE_TYPE_INVALID = -1 + _IMAGE_TYPE_INVALID = -EINVAL, } ImageType; typedef struct Image { diff --git a/src/shared/dissect-image.h b/src/shared/dissect-image.h index 5466de5042..70363ded48 100644 --- a/src/shared/dissect-image.h +++ b/src/shared/dissect-image.h @@ -45,7 +45,7 @@ typedef enum PartitionDesignator { PARTITION_TMP, PARTITION_VAR, _PARTITION_DESIGNATOR_MAX, - _PARTITION_DESIGNATOR_INVALID = -1 + _PARTITION_DESIGNATOR_INVALID = -EINVAL, } PartitionDesignator; static inline PartitionDesignator PARTITION_VERITY_OF(PartitionDesignator p) { diff --git a/src/shared/ethtool-util.h b/src/shared/ethtool-util.h index f94b3e15bf..11e2906681 100644 --- a/src/shared/ethtool-util.h +++ b/src/shared/ethtool-util.h @@ -15,7 +15,7 @@ typedef enum Duplex { DUP_HALF = DUPLEX_HALF, DUP_FULL = DUPLEX_FULL, _DUP_MAX, - _DUP_INVALID = -1 + _DUP_INVALID = -EINVAL, } Duplex; typedef enum WakeOnLan { @@ -28,7 +28,7 @@ typedef enum WakeOnLan { WOL_MAGICSECURE, WOL_OFF, _WOL_MAX, - _WOL_INVALID = -1 + _WOL_INVALID = -EINVAL, } WakeOnLan; typedef enum NetDevFeature { @@ -40,7 +40,7 @@ typedef enum NetDevFeature { NET_DEV_FEAT_TSO, NET_DEV_FEAT_TSO6, _NET_DEV_FEAT_MAX, - _NET_DEV_FEAT_INVALID = -1 + _NET_DEV_FEAT_INVALID = -EINVAL, } NetDevFeature; typedef enum NetDevPort { @@ -53,7 +53,7 @@ typedef enum NetDevPort { NET_DEV_PORT_NONE = PORT_NONE, NET_DEV_PORT_OTHER = PORT_OTHER, _NET_DEV_PORT_MAX, - _NET_DEV_PORT_INVALID = -1 + _NET_DEV_PORT_INVALID = -EINVAL, } NetDevPort; #define ETHTOOL_LINK_MODE_MASK_MAX_KERNEL_NU32 (SCHAR_MAX) diff --git a/src/shared/format-table.h b/src/shared/format-table.h index 6627a291f3..7adb245319 100644 --- a/src/shared/format-table.h +++ b/src/shared/format-table.h @@ -54,7 +54,7 @@ typedef enum TableDataType { TABLE_SET_URL, TABLE_SET_UPPERCASE, - _TABLE_DATA_TYPE_INVALID = -1, + _TABLE_DATA_TYPE_INVALID = -EINVAL, } TableDataType; /* PIDs are just 32bit signed integers on Linux */ diff --git a/src/shared/geneve-util.h b/src/shared/geneve-util.h index 3865f805a4..acd0e1a1a2 100644 --- a/src/shared/geneve-util.h +++ b/src/shared/geneve-util.h @@ -10,7 +10,7 @@ typedef enum GeneveDF { NETDEV_GENEVE_DF_SET = GENEVE_DF_SET, NETDEV_GENEVE_DF_INHERIT = GENEVE_DF_INHERIT, _NETDEV_GENEVE_DF_MAX, - _NETDEV_GENEVE_DF_INVALID = -1, + _NETDEV_GENEVE_DF_INVALID = -EINVAL, } GeneveDF; const char *geneve_df_to_string(GeneveDF d) _const_; diff --git a/src/shared/hostname-setup.h b/src/shared/hostname-setup.h index 1c9d08a5df..1fa0b6f333 100644 --- a/src/shared/hostname-setup.h +++ b/src/shared/hostname-setup.h @@ -8,7 +8,7 @@ typedef enum HostnameSource { HOSTNAME_STATIC, /* from /etc/hostname */ HOSTNAME_TRANSIENT, /* a transient hostname set through systemd, hostnamed, the container manager, or otherwise */ HOSTNAME_FALLBACK, /* the compiled-in fallback was used */ - _HOSTNAME_INVALID = -1, + _HOSTNAME_INVALID = -EINVAL, } HostnameSource; const char* hostname_source_to_string(HostnameSource source) _const_; diff --git a/src/shared/id128-print.h b/src/shared/id128-print.h index d69cb9b551..7b2e593f16 100644 --- a/src/shared/id128-print.h +++ b/src/shared/id128-print.h @@ -11,7 +11,7 @@ typedef enum Id128PrettyPrintMode { ID128_PRINT_UUID, ID128_PRINT_PRETTY, _ID128_PRETTY_PRINT_MODE_MAX, - _ID128_PRETTY_PRINT_MODE_INVALID = -1 + _ID128_PRETTY_PRINT_MODE_INVALID = -EINVAL, } Id128PrettyPrintMode; int id128_pretty_print_sample(const char *name, sd_id128_t id); diff --git a/src/shared/import-util.h b/src/shared/import-util.h index 8d017f61d1..c7ec3b4eab 100644 --- a/src/shared/import-util.h +++ b/src/shared/import-util.h @@ -10,7 +10,7 @@ typedef enum ImportVerify { IMPORT_VERIFY_CHECKSUM, IMPORT_VERIFY_SIGNATURE, _IMPORT_VERIFY_MAX, - _IMPORT_VERIFY_INVALID = -1, + _IMPORT_VERIFY_INVALID = -EINVAL, } ImportVerify; int import_url_last_component(const char *url, char **ret); diff --git a/src/shared/install.h b/src/shared/install.h index 84bf1f59d2..7d7a2c9f27 100644 --- a/src/shared/install.h +++ b/src/shared/install.h @@ -22,7 +22,7 @@ enum UnitFilePresetMode { UNIT_FILE_PRESET_ENABLE_ONLY, UNIT_FILE_PRESET_DISABLE_ONLY, _UNIT_FILE_PRESET_MAX, - _UNIT_FILE_PRESET_INVALID = -1 + _UNIT_FILE_PRESET_INVALID = -EINVAL, }; enum UnitFileChangeType { @@ -70,7 +70,7 @@ enum UnitFileType { UNIT_FILE_TYPE_SYMLINK, UNIT_FILE_TYPE_MASKED, _UNIT_FILE_TYPE_MAX, - _UNIT_FILE_TYPE_INVALID = -1, + _UNIT_FILE_TYPE_INVALID = -EINVAL, }; struct UnitFileInstallInfo { diff --git a/src/shared/ipvlan-util.h b/src/shared/ipvlan-util.h index 90f755b472..a475b37572 100644 --- a/src/shared/ipvlan-util.h +++ b/src/shared/ipvlan-util.h @@ -11,7 +11,7 @@ typedef enum IPVlanMode { NETDEV_IPVLAN_MODE_L3 = IPVLAN_MODE_L3, NETDEV_IPVLAN_MODE_L3S = IPVLAN_MODE_L3S, _NETDEV_IPVLAN_MODE_MAX, - _NETDEV_IPVLAN_MODE_INVALID = -1 + _NETDEV_IPVLAN_MODE_INVALID = -EINVAL, } IPVlanMode; typedef enum IPVlanFlags { @@ -19,7 +19,7 @@ typedef enum IPVlanFlags { NETDEV_IPVLAN_FLAGS_PRIVATE = IPVLAN_F_PRIVATE, NETDEV_IPVLAN_FLAGS_VEPA = IPVLAN_F_VEPA, _NETDEV_IPVLAN_FLAGS_MAX, - _NETDEV_IPVLAN_FLAGS_INVALID = -1 + _NETDEV_IPVLAN_FLAGS_INVALID = -EINVAL, } IPVlanFlags; const char *ipvlan_mode_to_string(IPVlanMode d) _const_; diff --git a/src/shared/json-internal.h b/src/shared/json-internal.h index 63afd22417..72a735171c 100644 --- a/src/shared/json-internal.h +++ b/src/shared/json-internal.h @@ -70,7 +70,7 @@ enum { /* JSON tokens */ JSON_TOKEN_BOOLEAN, JSON_TOKEN_NULL, _JSON_TOKEN_MAX, - _JSON_TOKEN_INVALID = -1, + _JSON_TOKEN_INVALID = -EINVAL, }; int json_tokenize(const char **p, char **ret_string, JsonValue *ret_value, unsigned *ret_line, unsigned *ret_column, void **state, unsigned *line, unsigned *column); diff --git a/src/shared/json.h b/src/shared/json.h index aad7326513..a335dd3623 100644 --- a/src/shared/json.h +++ b/src/shared/json.h @@ -53,7 +53,7 @@ typedef enum JsonVariantType { JSON_VARIANT_OBJECT, JSON_VARIANT_NULL, _JSON_VARIANT_TYPE_MAX, - _JSON_VARIANT_TYPE_INVALID = -1 + _JSON_VARIANT_TYPE_INVALID = -EINVAL, } JsonVariantType; int json_variant_new_stringn(JsonVariant **ret, const char *s, size_t n); diff --git a/src/shared/macvlan-util.h b/src/shared/macvlan-util.h index 0d3a5f4050..0705ecb6d8 100644 --- a/src/shared/macvlan-util.h +++ b/src/shared/macvlan-util.h @@ -10,7 +10,7 @@ typedef enum MacVlanMode { NETDEV_MACVLAN_MODE_PASSTHRU = MACVLAN_MODE_PASSTHRU, NETDEV_MACVLAN_MODE_SOURCE = MACVLAN_MODE_SOURCE, _NETDEV_MACVLAN_MODE_MAX, - _NETDEV_MACVLAN_MODE_INVALID = -1 + _NETDEV_MACVLAN_MODE_INVALID = -EINVAL, } MacVlanMode; const char *macvlan_mode_to_string(MacVlanMode d) _const_; diff --git a/src/shared/netif-naming-scheme.h b/src/shared/netif-naming-scheme.h index 503a74ea33..28cd4e41f2 100644 --- a/src/shared/netif-naming-scheme.h +++ b/src/shared/netif-naming-scheme.h @@ -42,7 +42,7 @@ typedef enum NamingSchemeFlags { NAMING_V245 = NAMING_V243 | NAMING_NSPAWN_LONG_HASH, NAMING_V247 = NAMING_V245 | NAMING_BRIDGE_NO_SLOT, - _NAMING_SCHEME_FLAGS_INVALID = -1, + _NAMING_SCHEME_FLAGS_INVALID = -EINVAL, } NamingSchemeFlags; typedef struct NamingScheme { diff --git a/src/shared/output-mode.h b/src/shared/output-mode.h index a879054b67..ba067c9f9c 100644 --- a/src/shared/output-mode.h +++ b/src/shared/output-mode.h @@ -21,7 +21,7 @@ typedef enum OutputMode { OUTPUT_CAT, OUTPUT_WITH_UNIT, _OUTPUT_MODE_MAX, - _OUTPUT_MODE_INVALID = -1 + _OUTPUT_MODE_INVALID = -EINVAL, } OutputMode; static inline bool OUTPUT_MODE_IS_JSON(OutputMode m) { diff --git a/src/shared/resolve-util.h b/src/shared/resolve-util.h index 4ea24a60b3..0f6e88e095 100644 --- a/src/shared/resolve-util.h +++ b/src/shared/resolve-util.h @@ -27,7 +27,7 @@ enum ResolveSupport { RESOLVE_SUPPORT_YES, RESOLVE_SUPPORT_RESOLVE, _RESOLVE_SUPPORT_MAX, - _RESOLVE_SUPPORT_INVALID = -1 + _RESOLVE_SUPPORT_INVALID = -EINVAL, }; enum DnssecMode { @@ -45,7 +45,7 @@ enum DnssecMode { DNSSEC_YES, _DNSSEC_MODE_MAX, - _DNSSEC_MODE_INVALID = -1 + _DNSSEC_MODE_INVALID = -EINVAL, }; enum DnsOverTlsMode { @@ -60,7 +60,7 @@ enum DnsOverTlsMode { DNS_OVER_TLS_YES, _DNS_OVER_TLS_MODE_MAX, - _DNS_OVER_TLS_MODE_INVALID = -1 + _DNS_OVER_TLS_MODE_INVALID = -EINVAL, }; CONFIG_PARSER_PROTOTYPE(config_parse_resolve_support); diff --git a/src/shared/udev-util.h b/src/shared/udev-util.h index 4e6e903ddd..5fce03b25f 100644 --- a/src/shared/udev-util.h +++ b/src/shared/udev-util.h @@ -15,7 +15,7 @@ typedef enum ResolveNameTiming { RESOLVE_NAME_LATE, RESOLVE_NAME_EARLY, _RESOLVE_NAME_TIMING_MAX, - _RESOLVE_NAME_TIMING_INVALID = -1, + _RESOLVE_NAME_TIMING_INVALID = -EINVAL, } ResolveNameTiming; ResolveNameTiming resolve_name_timing_from_string(const char *s) _pure_; diff --git a/src/shared/user-record.h b/src/shared/user-record.h index 542a0dc84a..623f7bc9e4 100644 --- a/src/shared/user-record.h +++ b/src/shared/user-record.h @@ -54,7 +54,7 @@ typedef enum UserDisposition { USER_CONTAINER, /* UID ranges allocated for container uses */ USER_RESERVED, /* Range above 2^31 */ _USER_DISPOSITION_MAX, - _USER_DISPOSITION_INVALID = -1, + _USER_DISPOSITION_INVALID = -EINVAL, } UserDisposition; typedef enum UserHomeStorage { @@ -65,7 +65,7 @@ typedef enum UserHomeStorage { USER_FSCRYPT, USER_CIFS, _USER_STORAGE_MAX, - _USER_STORAGE_INVALID = -1 + _USER_STORAGE_INVALID = -EINVAL, } UserStorage; typedef enum UserRecordMask { diff --git a/src/shared/varlink.c b/src/shared/varlink.c index 24865fa07e..31128e02e0 100644 --- a/src/shared/varlink.c +++ b/src/shared/varlink.c @@ -54,7 +54,7 @@ typedef enum VarlinkState { VARLINK_DISCONNECTED, _VARLINK_STATE_MAX, - _VARLINK_STATE_INVALID = -1 + _VARLINK_STATE_INVALID = -EINVAL, } VarlinkState; /* Tests whether we are not yet disconnected. Note that this is true during all states where the connection diff --git a/src/shared/volatile-util.h b/src/shared/volatile-util.h index 9a1bb384e9..6e0206d3a0 100644 --- a/src/shared/volatile-util.h +++ b/src/shared/volatile-util.h @@ -7,7 +7,7 @@ typedef enum VolatileMode { VOLATILE_STATE, VOLATILE_OVERLAY, _VOLATILE_MODE_MAX, - _VOLATILE_MODE_INVALID = -1 + _VOLATILE_MODE_INVALID = -EINVAL, } VolatileMode; VolatileMode volatile_mode_from_string(const char *s); diff --git a/src/systemctl/systemctl-show.c b/src/systemctl/systemctl-show.c index ab66977a7a..3dde305e13 100644 --- a/src/systemctl/systemctl-show.c +++ b/src/systemctl/systemctl-show.c @@ -1708,7 +1708,7 @@ typedef enum SystemctlShowMode{ SYSTEMCTL_SHOW_STATUS, SYSTEMCTL_SHOW_HELP, _SYSTEMCTL_SHOW_MODE_MAX, - _SYSTEMCTL_SHOW_MODE_INVALID = -1, + _SYSTEMCTL_SHOW_MODE_INVALID = -EINVAL, } SystemctlShowMode; static const char* const systemctl_show_mode_table[_SYSTEMCTL_SHOW_MODE_MAX] = { diff --git a/src/systemctl/systemctl.h b/src/systemctl/systemctl.h index 34650ebb44..dd8da07440 100644 --- a/src/systemctl/systemctl.h +++ b/src/systemctl/systemctl.h @@ -31,7 +31,7 @@ enum action { ACTION_RUNLEVEL, ACTION_CANCEL_SHUTDOWN, _ACTION_MAX, - _ACTION_INVALID = -1 + _ACTION_INVALID = -EINVAL, }; enum dependency { diff --git a/src/systemd/sd-dhcp-lease.h b/src/systemd/sd-dhcp-lease.h index c255a1f912..2c6c0a981d 100644 --- a/src/systemd/sd-dhcp-lease.h +++ b/src/systemd/sd-dhcp-lease.h @@ -18,6 +18,7 @@ along with systemd; If not, see . ***/ +#include #include #include #include @@ -41,7 +42,7 @@ typedef enum sd_dhcp_lease_server_type { SD_DHCP_LEASE_SMTP, SD_DHCP_LEASE_LPR, _SD_DHCP_LEASE_SERVER_TYPE_MAX, - _SD_DHCP_LEASE_SERVER_TYPE_INVALID = -1, + _SD_DHCP_LEASE_SERVER_TYPE_INVALID = -EINVAL, } sd_dhcp_lease_server_type; int sd_dhcp_lease_get_address(sd_dhcp_lease *lease, struct in_addr *addr); diff --git a/src/systemd/sd-lldp.h b/src/systemd/sd-lldp.h index f551f6b4fa..296a8201a2 100644 --- a/src/systemd/sd-lldp.h +++ b/src/systemd/sd-lldp.h @@ -17,6 +17,7 @@ along with systemd; If not, see . ***/ +#include #include #include #include @@ -127,7 +128,7 @@ typedef enum sd_lldp_event { SD_LLDP_EVENT_UPDATED, SD_LLDP_EVENT_REFRESHED, _SD_LLDP_EVENT_MAX, - _SD_LLDP_EVENT_INVALID = -1, + _SD_LLDP_EVENT_INVALID = -EINVAL, } sd_lldp_event; typedef void (*sd_lldp_callback_t)(sd_lldp *lldp, sd_lldp_event event, sd_lldp_neighbor *n, void *userdata); diff --git a/src/systemd/sd-ndisc.h b/src/systemd/sd-ndisc.h index c0e37899a7..f96bfc39ea 100644 --- a/src/systemd/sd-ndisc.h +++ b/src/systemd/sd-ndisc.h @@ -19,6 +19,7 @@ along with systemd; If not, see . ***/ +#include #include #include #include @@ -58,7 +59,7 @@ typedef enum sd_ndisc_event { SD_NDISC_EVENT_TIMEOUT, SD_NDISC_EVENT_ROUTER, _SD_NDISC_EVENT_MAX, - _SD_NDISC_EVENT_INVALID = -1, + _SD_NDISC_EVENT_INVALID = -EINVAL, } sd_ndisc_event; typedef void (*sd_ndisc_callback_t)(sd_ndisc *nd, sd_ndisc_event event, sd_ndisc_router *rt, void *userdata); diff --git a/src/tmpfiles/tmpfiles.c b/src/tmpfiles/tmpfiles.c index 8ad886236d..6bebf234bc 100644 --- a/src/tmpfiles/tmpfiles.c +++ b/src/tmpfiles/tmpfiles.c @@ -1588,7 +1588,7 @@ typedef enum { CREATION_EXISTING, CREATION_FORCE, _CREATION_MODE_MAX, - _CREATION_MODE_INVALID = -1 + _CREATION_MODE_INVALID = -EINVAL, } CreationMode; static const char *const creation_mode_verb_table[_CREATION_MODE_MAX] = { diff --git a/src/udev/cdrom_id/cdrom_id.c b/src/udev/cdrom_id/cdrom_id.c index 9b638092fb..60c7b4922c 100644 --- a/src/udev/cdrom_id/cdrom_id.c +++ b/src/udev/cdrom_id/cdrom_id.c @@ -72,7 +72,7 @@ typedef enum Feature { FEATURE_MRW_W, _FEATURE_MAX, - _FEATURE_INVALID = -1, + _FEATURE_INVALID = -EINVAL, } Feature; typedef enum MediaState { @@ -81,7 +81,7 @@ typedef enum MediaState { MEDIA_STATE_COMPLETE = 2, MEDIA_STATE_OTHER = 3, _MEDIA_STATE_MAX, - _MEDIA_STATE_INVALID = -1, + _MEDIA_STATE_INVALID = -EINVAL, } MediaState; typedef struct Context { diff --git a/src/udev/net/link-config.h b/src/udev/net/link-config.h index 721f822f85..3f899e9879 100644 --- a/src/udev/net/link-config.h +++ b/src/udev/net/link-config.h @@ -17,7 +17,7 @@ typedef enum MACAddressPolicy { MAC_ADDRESS_POLICY_RANDOM, MAC_ADDRESS_POLICY_NONE, _MAC_ADDRESS_POLICY_MAX, - _MAC_ADDRESS_POLICY_INVALID = -1 + _MAC_ADDRESS_POLICY_INVALID = -EINVAL, } MACAddressPolicy; typedef enum NamePolicy { @@ -29,7 +29,7 @@ typedef enum NamePolicy { NAMEPOLICY_PATH, NAMEPOLICY_MAC, _NAMEPOLICY_MAX, - _NAMEPOLICY_INVALID = -1 + _NAMEPOLICY_INVALID = -EINVAL, } NamePolicy; struct link_config { diff --git a/src/udev/udev-builtin.h b/src/udev/udev-builtin.h index b92d74fc9d..849e5d9e8d 100644 --- a/src/udev/udev-builtin.h +++ b/src/udev/udev-builtin.h @@ -24,7 +24,7 @@ typedef enum { UDEV_BUILTIN_UACCESS, #endif _UDEV_BUILTIN_MAX, - _UDEV_BUILTIN_INVALID = -1, + _UDEV_BUILTIN_INVALID = -EINVAL, } UdevBuiltinCommand; typedef struct UdevBuiltin { diff --git a/src/udev/udev-event.c b/src/udev/udev-event.c index f55e65c95b..8aeaf92e41 100644 --- a/src/udev/udev-event.c +++ b/src/udev/udev-event.c @@ -107,7 +107,7 @@ typedef enum { FORMAT_SUBST_ROOT, FORMAT_SUBST_SYS, _FORMAT_SUBST_TYPE_MAX, - _FORMAT_SUBST_TYPE_INVALID = -1 + _FORMAT_SUBST_TYPE_INVALID = -EINVAL, } FormatSubstitutionType; struct subst_map_entry { diff --git a/src/udev/udev-rules.c b/src/udev/udev-rules.c index a87c5d119e..e12225ca39 100644 --- a/src/udev/udev-rules.c +++ b/src/udev/udev-rules.c @@ -41,7 +41,7 @@ typedef enum { OP_ASSIGN, /* = */ OP_ASSIGN_FINAL, /* := */ _OP_TYPE_MAX, - _OP_TYPE_INVALID = -1 + _OP_TYPE_INVALID = -EINVAL, } UdevRuleOperatorType; typedef enum { @@ -52,7 +52,7 @@ typedef enum { MATCH_TYPE_GLOB_WITH_EMPTY, /* shell globs ?,*,[] with empty string, e.g., "|foo*" */ MATCH_TYPE_SUBSYSTEM, /* "subsystem", "bus", or "class" */ _MATCH_TYPE_MAX, - _MATCH_TYPE_INVALID = -1 + _MATCH_TYPE_INVALID = -EINVAL, } UdevRuleMatchType; typedef enum { @@ -60,7 +60,7 @@ typedef enum { SUBST_TYPE_FORMAT, /* % or $ */ SUBST_TYPE_SUBSYS, /* "[/]" format */ _SUBST_TYPE_MAX, - _SUBST_TYPE_INVALID = -1 + _SUBST_TYPE_INVALID = -EINVAL, } UdevRuleSubstituteType; typedef enum { @@ -123,7 +123,7 @@ typedef enum { TK_A_RUN_PROGRAM, /* string */ _TK_TYPE_MAX, - _TK_TYPE_INVALID = -1, + _TK_TYPE_INVALID = -EINVAL, } UdevRuleTokenType; typedef enum { diff --git a/src/udev/udev-rules.h b/src/udev/udev-rules.h index 3f40a5395e..d11297da85 100644 --- a/src/udev/udev-rules.h +++ b/src/udev/udev-rules.h @@ -13,7 +13,7 @@ typedef enum { ESCAPE_NONE, /* OPTIONS="string_escape=none" */ ESCAPE_REPLACE, /* OPTIONS="string_escape=replace" */ _ESCAPE_TYPE_MAX, - _ESCAPE_TYPE_INVALID = -1 + _ESCAPE_TYPE_INVALID = -EINVAL, } UdevRuleEscapeType; int udev_rules_parse_file(UdevRules *rules, const char *filename); diff --git a/src/userdb/userdbctl.c b/src/userdb/userdbctl.c index 5dc1cf8140..f4204759db 100644 --- a/src/userdb/userdbctl.c +++ b/src/userdb/userdbctl.c @@ -25,7 +25,7 @@ static enum { OUTPUT_TABLE, OUTPUT_FRIENDLY, OUTPUT_JSON, - _OUTPUT_INVALID = -1 + _OUTPUT_INVALID = -EINVAL, } arg_output = _OUTPUT_INVALID; static PagerFlags arg_pager_flags = 0; From 751db3b4cd09ba7f9352444b93600992493cbf28 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Fri, 18 Jan 2019 16:26:31 +0100 Subject: [PATCH 12/16] Return -EINVAL from _from_string() functions We'd return -1 (-EPERM), even though we have a general rule to use real errno values. The particular case that caught my attention was: $ sudo udevadm control -l asdf Failed to parse log priority 'asdf': Operation not permitted ... but "git grep 'r =.*_from_string' src/" return 110 hits. Confusingly, some of the _from_string functions already return a proper errno value, so not all of those are broken, but probably quite a few. --- src/basic/string-table.c | 4 ++-- src/basic/string-table.h | 14 ++++++++------ src/shared/test-tables.h | 4 ++-- src/test/test-process-util.c | 4 ++-- src/test/test-rlimit-util.c | 12 ++++++------ 5 files changed, 20 insertions(+), 18 deletions(-) diff --git a/src/basic/string-table.c b/src/basic/string-table.c index 116021df82..3a6376714a 100644 --- a/src/basic/string-table.c +++ b/src/basic/string-table.c @@ -5,11 +5,11 @@ ssize_t string_table_lookup(const char * const *table, size_t len, const char *key) { if (!key) - return -1; + return -EINVAL; for (size_t i = 0; i < len; ++i) if (streq_ptr(table[i], key)) return (ssize_t) i; - return -1; + return -EINVAL; } diff --git a/src/basic/string-table.h b/src/basic/string-table.h index ae4ea145d3..5caedacb01 100644 --- a/src/basic/string-table.h +++ b/src/basic/string-table.h @@ -29,7 +29,7 @@ ssize_t string_table_lookup(const char * const *table, size_t len, const char *k #define _DEFINE_STRING_TABLE_LOOKUP_FROM_STRING_WITH_BOOLEAN(name,type,yes,scope) \ scope type name##_from_string(const char *s) { \ if (!s) \ - return -1; \ + return -EINVAL; \ int b = parse_boolean(s); \ if (b == 0) \ return (type) 0; \ @@ -60,14 +60,16 @@ ssize_t string_table_lookup(const char * const *table, size_t len, const char *k unsigned u = 0; \ type i; \ if (!s) \ - return (type) -1; \ + return -EINVAL; \ i = (type) string_table_lookup(name##_table, ELEMENTSOF(name##_table), s); \ if (i >= 0) \ return i; \ - if (safe_atou(s, &u) >= 0 && u <= max) \ - return (type) u; \ - return (type) -1; \ - } \ + if (safe_atou(s, &u) < 0) \ + return -EINVAL; \ + if (u > max) \ + return -EINVAL; \ + return (type) u; \ + } #define _DEFINE_STRING_TABLE_LOOKUP(name,type,scope) \ _DEFINE_STRING_TABLE_LOOKUP_TO_STRING(name,type,scope) \ diff --git a/src/shared/test-tables.h b/src/shared/test-tables.h index e68ec60497..90210b9b59 100644 --- a/src/shared/test-tables.h +++ b/src/shared/test-tables.h @@ -33,11 +33,11 @@ static inline void _test_table(const char *name, if (i >= 0 && i < size) { if (sparse) - assert_se(rev == i || rev == -1); + assert_se(rev == i || rev == -EINVAL); else assert_se(val != NULL && rev == i); } else - assert_se(val == NULL && rev == -1); + assert_se(val == NULL && rev == -EINVAL); } } diff --git a/src/test/test-process-util.c b/src/test/test-process-util.c index a87cdf8747..0ebef530a0 100644 --- a/src/test/test-process-util.c +++ b/src/test/test-process-util.c @@ -598,8 +598,8 @@ static void test_ioprio_class_from_to_string(void) { test_ioprio_class_from_to_string_one("1", 1); test_ioprio_class_from_to_string_one("7", 7); test_ioprio_class_from_to_string_one("8", 8); - test_ioprio_class_from_to_string_one("9", -1); - test_ioprio_class_from_to_string_one("-1", -1); + test_ioprio_class_from_to_string_one("9", -EINVAL); + test_ioprio_class_from_to_string_one("-1", -EINVAL); } static void test_setpriority_closest(void) { diff --git a/src/test/test-rlimit-util.c b/src/test/test-rlimit-util.c index 057ae6b2bc..2ebe81df41 100644 --- a/src/test/test-rlimit-util.c +++ b/src/test/test-rlimit-util.c @@ -53,16 +53,16 @@ int main(int argc, char *argv[]) { assert_se(setrlimit(RLIMIT_NOFILE, &new) >= 0); assert_se(rlimit_from_string("NOFILE") == RLIMIT_NOFILE); - assert_se(rlimit_from_string("LimitNOFILE") == -1); - assert_se(rlimit_from_string("RLIMIT_NOFILE") == -1); - assert_se(rlimit_from_string("xxxNOFILE") == -1); - assert_se(rlimit_from_string("DefaultLimitNOFILE") == -1); + assert_se(rlimit_from_string("LimitNOFILE") == -EINVAL); + assert_se(rlimit_from_string("RLIMIT_NOFILE") == -EINVAL); + assert_se(rlimit_from_string("xxxNOFILE") == -EINVAL); + assert_se(rlimit_from_string("DefaultLimitNOFILE") == -EINVAL); assert_se(rlimit_from_string_harder("NOFILE") == RLIMIT_NOFILE); assert_se(rlimit_from_string_harder("LimitNOFILE") == RLIMIT_NOFILE); assert_se(rlimit_from_string_harder("RLIMIT_NOFILE") == RLIMIT_NOFILE); - assert_se(rlimit_from_string_harder("xxxNOFILE") == -1); - assert_se(rlimit_from_string_harder("DefaultLimitNOFILE") == -1); + assert_se(rlimit_from_string_harder("xxxNOFILE") == -EINVAL); + assert_se(rlimit_from_string_harder("DefaultLimitNOFILE") == -EINVAL); for (i = 0; i < _RLIMIT_MAX; i++) { _cleanup_free_ char *prefixed = NULL; From 7211c853c26554ad1f58c2cfa1d5a0bfc059bf15 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Tue, 9 Feb 2021 16:06:36 +0100 Subject: [PATCH 13/16] tree-wide: propagate error code from _from_string() functions Now that we know we have something useful, no need to make an answer up. --- src/analyze/analyze.c | 2 +- src/basic/log.c | 4 +-- src/basic/unit-name.c | 2 +- src/core/dbus-cgroup.c | 2 +- src/core/service.c | 4 +-- src/escape/escape.c | 11 ++++---- src/fstab-generator/fstab-generator.c | 2 +- src/home/homectl.c | 2 +- src/journal-remote/journal-remote-main.c | 6 ++-- src/journal/journalctl.c | 10 +++---- src/journal/journald-context.c | 2 +- src/libsystemd/sd-device/device-private.c | 2 +- src/login/loginctl.c | 6 ++-- src/network/generator/network-generator.c | 2 +- src/network/networkd-address.c | 7 ++--- src/network/networkd-fdb.c | 5 ++-- src/network/wait-online/link.c | 3 +- src/nspawn/nspawn-oci.c | 2 +- src/nspawn/nspawn.c | 10 +++---- src/oom/oomd-manager.c | 2 +- src/resolve/resolvectl.c | 34 ++++++++++------------- src/shared/user-record.c | 8 +++--- src/shared/volatile-util.c | 2 +- src/systemctl/systemctl-log-setting.c | 6 ++-- src/systemctl/systemctl-show.c | 3 +- src/systemctl/systemctl-util.c | 2 +- src/volatile-root/volatile-root.c | 2 +- 27 files changed, 62 insertions(+), 81 deletions(-) diff --git a/src/analyze/analyze.c b/src/analyze/analyze.c index 3b953ac472..c25d11e0de 100644 --- a/src/analyze/analyze.c +++ b/src/analyze/analyze.c @@ -1574,7 +1574,7 @@ static int dump_exit_status(int argc, char *argv[], void *userdata) { status = exit_status_from_string(argv[i]); if (status < 0) - return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "Invalid exit status \"%s\".", argv[i]); + return log_error_errno(status, "Invalid exit status \"%s\".", argv[i]); assert(status >= 0 && (size_t) status < ELEMENTSOF(exit_status_mappings)); r = table_add_many(table, diff --git a/src/basic/log.c b/src/basic/log.c index ff501af569..b9817419ad 100644 --- a/src/basic/log.c +++ b/src/basic/log.c @@ -1085,7 +1085,7 @@ int log_set_target_from_string(const char *e) { t = log_target_from_string(e); if (t < 0) - return -EINVAL; + return t; log_set_target(t); return 0; @@ -1096,7 +1096,7 @@ int log_set_max_level_from_string(const char *e) { t = log_level_from_string(e); if (t < 0) - return -EINVAL; + return t; log_set_max_level(t); return 0; diff --git a/src/basic/unit-name.c b/src/basic/unit-name.c index c1529bbeed..532f8fa048 100644 --- a/src/basic/unit-name.c +++ b/src/basic/unit-name.c @@ -252,7 +252,7 @@ int unit_name_build(const char *prefix, const char *instance, const char *suffix type = unit_type_from_string(suffix + 1); if (type < 0) - return -EINVAL; + return type; return unit_name_build_from_type(prefix, instance, type, ret); } diff --git a/src/core/dbus-cgroup.c b/src/core/dbus-cgroup.c index 6f309feb23..a8b438cc82 100644 --- a/src/core/dbus-cgroup.c +++ b/src/core/dbus-cgroup.c @@ -1452,7 +1452,7 @@ int bus_cgroup_set_property( p = cgroup_device_policy_from_string(policy); if (p < 0) - return -EINVAL; + return p; if (!UNIT_WRITE_FLAGS_NOOP(flags)) { c->device_policy = p; diff --git a/src/core/service.c b/src/core/service.c index da4b8d7259..df3ed05cfc 100644 --- a/src/core/service.c +++ b/src/core/service.c @@ -2762,14 +2762,14 @@ static int service_deserialize_exec_command( case STATE_EXEC_COMMAND_TYPE: id = service_exec_command_from_string(arg); if (id < 0) - return -EINVAL; + return id; state = STATE_EXEC_COMMAND_INDEX; break; case STATE_EXEC_COMMAND_INDEX: r = safe_atou(arg, &idx); if (r < 0) - return -EINVAL; + return r; state = STATE_EXEC_COMMAND_PATH; break; diff --git a/src/escape/escape.c b/src/escape/escape.c index a2fdce790e..3178f9b172 100644 --- a/src/escape/escape.c +++ b/src/escape/escape.c @@ -82,17 +82,16 @@ static int parse_argv(int argc, char *argv[]) { case ARG_VERSION: return version(); - case ARG_SUFFIX: - - if (unit_type_from_string(optarg) < 0) - return log_error_errno(SYNTHETIC_ERRNO(EINVAL), - "Invalid unit suffix type %s.", optarg); + case ARG_SUFFIX: { + UnitType t = unit_type_from_string(optarg); + if (t < 0) + return log_error_errno(t, "Invalid unit suffix type \"%s\".", optarg); arg_suffix = optarg; break; + } case ARG_TEMPLATE: - if (!unit_name_is_valid(optarg, UNIT_NAME_TEMPLATE)) return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "Template name %s is not valid.", optarg); diff --git a/src/fstab-generator/fstab-generator.c b/src/fstab-generator/fstab-generator.c index 2318b65b0e..b8862f0793 100644 --- a/src/fstab-generator/fstab-generator.c +++ b/src/fstab-generator/fstab-generator.c @@ -888,7 +888,7 @@ static int parse_proc_cmdline_item(const char *key, const char *value, void *dat if (value) { m = volatile_mode_from_string(value); if (m < 0) - log_warning("Failed to parse systemd.volatile= argument: %s", value); + log_warning_errno(m, "Failed to parse systemd.volatile= argument: %s", value); else arg_volatile_mode = m; } else diff --git a/src/home/homectl.c b/src/home/homectl.c index 176f041114..bf35fa03f0 100644 --- a/src/home/homectl.c +++ b/src/home/homectl.c @@ -2393,7 +2393,7 @@ static int parse_argv(int argc, char *argv[]) { l = rlimit_from_string_harder(field); if (l < 0) - return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "Unknown resource limit type: %s", field); + return log_error_errno(l, "Unknown resource limit type: %s", field); if (isempty(eq + 1)) { /* Remove only the specific rlimit */ diff --git a/src/journal-remote/journal-remote-main.c b/src/journal-remote/journal-remote-main.c index 972c13566f..b9e793c08c 100644 --- a/src/journal-remote/journal-remote-main.c +++ b/src/journal-remote/journal-remote-main.c @@ -961,16 +961,14 @@ static int parse_argv(int argc, char *argv[]) { case ARG_SPLIT_MODE: arg_split_mode = journal_write_split_mode_from_string(optarg); if (arg_split_mode == _JOURNAL_WRITE_SPLIT_INVALID) - return log_error_errno(SYNTHETIC_ERRNO(EINVAL), - "Invalid split mode: %s", optarg); + return log_error_errno(arg_split_mode, "Invalid split mode: %s", optarg); break; case ARG_COMPRESS: if (optarg) { r = parse_boolean(optarg); if (r < 0) - return log_error_errno(SYNTHETIC_ERRNO(EINVAL), - "Failed to parse --compress= parameter."); + return log_error_errno(r, "Failed to parse --compress= parameter."); arg_compress = !!r; } else diff --git a/src/journal/journalctl.c b/src/journal/journalctl.c index 94fc3472be..20b7584643 100644 --- a/src/journal/journalctl.c +++ b/src/journal/journalctl.c @@ -565,7 +565,7 @@ static int parse_argv(int argc, char *argv[]) { arg_output = output_mode_from_string(optarg); if (arg_output < 0) - return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "Unknown output format '%s'.", optarg); + return log_error_errno(arg_output, "Unknown output format '%s'.", optarg); if (IN_SET(arg_output, OUTPUT_EXPORT, OUTPUT_JSON, OUTPUT_JSON_PRETTY, OUTPUT_JSON_SSE, OUTPUT_JSON_SEQ, OUTPUT_CAT)) arg_quiet = true; @@ -835,7 +835,7 @@ static int parse_argv(int argc, char *argv[]) { to = log_level_from_string(dots + 2); if (from < 0 || to < 0) - return log_error_errno(SYNTHETIC_ERRNO(EINVAL), + return log_error_errno(from < 0 ? from : to, "Failed to parse log level range %s", optarg); arg_priorities = 0; @@ -853,8 +853,7 @@ static int parse_argv(int argc, char *argv[]) { p = log_level_from_string(optarg); if (p < 0) - return log_error_errno(SYNTHETIC_ERRNO(EINVAL), - "Unknown log level %s", optarg); + return log_error_errno(p, "Unknown log level %s", optarg); arg_priorities = 0; @@ -885,8 +884,7 @@ static int parse_argv(int argc, char *argv[]) { num = log_facility_unshifted_from_string(fac); if (num < 0) - return log_error_errno(SYNTHETIC_ERRNO(EINVAL), - "Bad --facility= argument \"%s\".", fac); + return log_error_errno(num, "Bad --facility= argument \"%s\".", fac); if (set_ensure_put(&arg_facilities, NULL, INT_TO_PTR(num)) < 0) return log_oom(); diff --git a/src/journal/journald-context.c b/src/journal/journald-context.c index f67013e80c..58151aa03d 100644 --- a/src/journal/journald-context.c +++ b/src/journal/journald-context.c @@ -368,7 +368,7 @@ static int client_context_read_log_level_max( ll = log_level_from_string(value); if (ll < 0) - return -EINVAL; + return ll; c->log_level_max = ll; return 0; diff --git a/src/libsystemd/sd-device/device-private.c b/src/libsystemd/sd-device/device-private.c index 47ea04921e..e37575d3b9 100644 --- a/src/libsystemd/sd-device/device-private.c +++ b/src/libsystemd/sd-device/device-private.c @@ -204,7 +204,7 @@ static int device_set_action(sd_device *device, const char *action) { a = device_action_from_string(action); if (a < 0) - return -EINVAL; + return a; r = device_add_property_internal(device, "ACTION", action); if (r < 0) diff --git a/src/login/loginctl.c b/src/login/loginctl.c index f61f9eca04..918e05e1cd 100644 --- a/src/login/loginctl.c +++ b/src/login/loginctl.c @@ -1371,8 +1371,7 @@ static int parse_argv(int argc, char *argv[]) { arg_output = output_mode_from_string(optarg); if (arg_output < 0) - return log_error_errno(SYNTHETIC_ERRNO(EINVAL), - "Unknown output '%s'.", optarg); + return log_error_errno(arg_output, "Unknown output '%s'.", optarg); if (OUTPUT_MODE_IS_JSON(arg_output)) arg_legend = false; @@ -1403,8 +1402,7 @@ static int parse_argv(int argc, char *argv[]) { arg_signal = signal_from_string(optarg); if (arg_signal < 0) - return log_error_errno(SYNTHETIC_ERRNO(EINVAL), - "Failed to parse signal string %s.", optarg); + return log_error_errno(arg_signal, "Failed to parse signal string %s.", optarg); break; case 'H': diff --git a/src/network/generator/network-generator.c b/src/network/generator/network-generator.c index 940a718d20..492bb68e32 100644 --- a/src/network/generator/network-generator.c +++ b/src/network/generator/network-generator.c @@ -313,7 +313,7 @@ static int network_set_dhcp_type(Context *context, const char *ifname, const cha t = dracut_dhcp_type_from_string(dhcp_type); if (t < 0) - return -EINVAL; + return t; network = network_get(context, ifname); if (!network) { diff --git a/src/network/networkd-address.c b/src/network/networkd-address.c index c188320872..b52a5f2e26 100644 --- a/src/network/networkd-address.c +++ b/src/network/networkd-address.c @@ -1754,7 +1754,6 @@ int config_parse_duplicate_address_detection( Network *network = userdata; _cleanup_(address_free_or_set_invalidp) Address *n = NULL; - AddressFamily a; int r; assert(filename); @@ -1783,14 +1782,14 @@ int config_parse_duplicate_address_detection( return 0; } - a = duplicate_address_detection_address_family_from_string(rvalue); + AddressFamily a = duplicate_address_detection_address_family_from_string(rvalue); if (a < 0) { - log_syntax(unit, LOG_WARNING, filename, line, SYNTHETIC_ERRNO(EINVAL), + log_syntax(unit, LOG_WARNING, filename, line, a, "Failed to parse %s=, ignoring: %s", lvalue, rvalue); return 0; } - n->duplicate_address_detection = a; + TAKE_PTR(n); return 0; } diff --git a/src/network/networkd-fdb.c b/src/network/networkd-fdb.c index c18e4d81d9..4cd430e8ae 100644 --- a/src/network/networkd-fdb.c +++ b/src/network/networkd-fdb.c @@ -377,7 +377,6 @@ int config_parse_fdb_ntf_flags( _cleanup_(fdb_entry_free_or_set_invalidp) FdbEntry *fdb_entry = NULL; Network *network = userdata; - NeighborCacheEntryFlags f; int r; assert(filename); @@ -390,9 +389,9 @@ int config_parse_fdb_ntf_flags( if (r < 0) return log_oom(); - f = fdb_ntf_flags_from_string(rvalue); + NeighborCacheEntryFlags f = fdb_ntf_flags_from_string(rvalue); if (f < 0) { - log_syntax(unit, LOG_WARNING, filename, line, SYNTHETIC_ERRNO(EINVAL), + log_syntax(unit, LOG_WARNING, filename, line, f, "FDB failed to parse AssociatedWith=, ignoring assignment: %s", rvalue); return 0; diff --git a/src/network/wait-online/link.c b/src/network/wait-online/link.c index e820a7a20f..f2d556f099 100644 --- a/src/network/wait-online/link.c +++ b/src/network/wait-online/link.c @@ -130,8 +130,7 @@ int link_update_monitor(Link *l) { s = link_operstate_from_string(operstate); if (s < 0) - ret = log_link_debug_errno(l, SYNTHETIC_ERRNO(EINVAL), - "Failed to parse operational state, ignoring: %m"); + ret = log_link_debug_errno(l, s, "Failed to parse operational state, ignoring: %m"); else l->operational_state = s; } diff --git a/src/nspawn/nspawn-oci.c b/src/nspawn/nspawn-oci.c index fe5768b022..dfa5c833c5 100644 --- a/src/nspawn/nspawn-oci.c +++ b/src/nspawn/nspawn-oci.c @@ -205,7 +205,7 @@ static int oci_rlimit_type(const char *name, JsonVariant *v, JsonDispatchFlags f t = rlimit_from_string(z); if (t < 0) - return json_log(v, flags, SYNTHETIC_ERRNO(EINVAL), + return json_log(v, flags, t, "rlimit name unknown: %s", json_variant_string(v)); *type = t; diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c index a702af8e3b..e1c55d0542 100644 --- a/src/nspawn/nspawn.c +++ b/src/nspawn/nspawn.c @@ -1280,8 +1280,7 @@ static int parse_argv(int argc, char *argv[]) { arg_kill_signal = signal_from_string(optarg); if (arg_kill_signal < 0) - return log_error_errno(SYNTHETIC_ERRNO(EINVAL), - "Cannot parse signal: %s", optarg); + return log_error_errno(arg_kill_signal, "Cannot parse signal: %s", optarg); arg_settings_mask |= SETTING_KILL_SIGNAL; break; @@ -1443,8 +1442,7 @@ static int parse_argv(int argc, char *argv[]) { rl = rlimit_from_string_harder(name); if (rl < 0) - return log_error_errno(SYNTHETIC_ERRNO(EINVAL), - "Unknown resource limit: %s", name); + return log_error_errno(rl, "Unknown resource limit: %s", name); if (!arg_rlimit[rl]) { arg_rlimit[rl] = new0(struct rlimit, 1); @@ -1490,7 +1488,7 @@ static int parse_argv(int argc, char *argv[]) { arg_resolv_conf = resolv_conf_mode_from_string(optarg); if (arg_resolv_conf < 0) - return log_error_errno(SYNTHETIC_ERRNO(EINVAL), + return log_error_errno(arg_resolv_conf, "Failed to parse /etc/resolv.conf mode: %s", optarg); arg_settings_mask |= SETTING_RESOLV_CONF; @@ -1504,7 +1502,7 @@ static int parse_argv(int argc, char *argv[]) { arg_timezone = timezone_mode_from_string(optarg); if (arg_timezone < 0) - return log_error_errno(SYNTHETIC_ERRNO(EINVAL), + return log_error_errno(arg_timezone, "Failed to parse /etc/localtime mode: %s", optarg); arg_settings_mask |= SETTING_TIMEZONE; diff --git a/src/oom/oomd-manager.c b/src/oom/oomd-manager.c index 338935b3ec..52158a66e5 100644 --- a/src/oom/oomd-manager.c +++ b/src/oom/oomd-manager.c @@ -33,7 +33,7 @@ static int managed_oom_mode(const char *name, JsonVariant *v, JsonDispatchFlags m = managed_oom_mode_from_string(s); if (m < 0) - return json_log(v, flags, SYNTHETIC_ERRNO(EINVAL), "%s is not a valid ManagedOOMMode", s); + return json_log(v, flags, m, "%s is not a valid ManagedOOMMode", s); *mode = m; return 0; diff --git a/src/resolve/resolvectl.c b/src/resolve/resolvectl.c index 318528b419..7185424502 100644 --- a/src/resolve/resolvectl.c +++ b/src/resolve/resolvectl.c @@ -566,8 +566,7 @@ static int resolve_rfc4501(sd_bus *bus, const char *name) { r = dns_class_from_string(t); if (r < 0) - return log_error_errno(SYNTHETIC_ERRNO(EINVAL), - "Unknown DNS class %s.", t); + return log_error_errno(r, "Unknown DNS class %s.", t); class = r; @@ -595,8 +594,7 @@ static int resolve_rfc4501(sd_bus *bus, const char *name) { r = dns_type_from_string(t); if (r < 0) - return log_error_errno(SYNTHETIC_ERRNO(EINVAL), - "Unknown DNS type %s.", t); + return log_error_errno(r, "Unknown DNS type %s: %m", t); type = r; @@ -2737,10 +2735,9 @@ static int compat_parse_argv(int argc, char *argv[]) { } r = dns_type_from_string(optarg); - if (r < 0) { - log_error("Failed to parse RR record type %s", optarg); - return r; - } + if (r < 0) + return log_error_errno(r, "Failed to parse RR record type %s: %m", optarg); + arg_type = (uint16_t) r; assert((int) arg_type == r); @@ -2754,10 +2751,9 @@ static int compat_parse_argv(int argc, char *argv[]) { } r = dns_class_from_string(optarg); - if (r < 0) { - log_error("Failed to parse RR record class %s", optarg); - return r; - } + if (r < 0) + return log_error_errno(r, "Failed to parse RR record class %s: %m", optarg); + arg_class = (uint16_t) r; assert((int) arg_class == r); @@ -3024,10 +3020,9 @@ static int native_parse_argv(int argc, char *argv[]) { } r = dns_type_from_string(optarg); - if (r < 0) { - log_error("Failed to parse RR record type %s", optarg); - return r; - } + if (r < 0) + return log_error_errno(r, "Failed to parse RR record type %s: %m", optarg); + arg_type = (uint16_t) r; assert((int) arg_type == r); @@ -3040,10 +3035,9 @@ static int native_parse_argv(int argc, char *argv[]) { } r = dns_class_from_string(optarg); - if (r < 0) { - log_error("Failed to parse RR record class %s", optarg); - return r; - } + if (r < 0) + return log_error_errno(r, "Failed to parse RR record class %s: %m", optarg); + arg_class = (uint16_t) r; assert((int) arg_class == r); diff --git a/src/shared/user-record.c b/src/shared/user-record.c index 6c48c56a2a..0b07e4427e 100644 --- a/src/shared/user-record.c +++ b/src/shared/user-record.c @@ -427,11 +427,11 @@ static int json_dispatch_rlimits(const char *name, JsonVariant *variant, JsonDis p = startswith(key, "RLIMIT_"); if (!p) - l = -1; + l = -SYNTHETIC_ERRNO(EINVAL); else l = rlimit_from_string(p); if (l < 0) - return json_log(variant, flags, SYNTHETIC_ERRNO(EINVAL), "Resource limit '%s' not known.", key); + return json_log(variant, flags, l, "Resource limit '%s' not known.", key); if (!json_variant_is_object(value)) return json_log(value, flags, SYNTHETIC_ERRNO(EINVAL), "Resource limit '%s' has invalid value.", key); @@ -661,7 +661,7 @@ int json_dispatch_user_disposition(const char *name, JsonVariant *variant, JsonD k = user_disposition_from_string(json_variant_string(variant)); if (k < 0) - return json_log(variant, flags, SYNTHETIC_ERRNO(EINVAL), "Disposition type '%s' not known.", json_variant_string(variant)); + return json_log(variant, flags, k, "Disposition type '%s' not known.", json_variant_string(variant)); *disposition = k; return 0; @@ -680,7 +680,7 @@ static int json_dispatch_storage(const char *name, JsonVariant *variant, JsonDis k = user_storage_from_string(json_variant_string(variant)); if (k < 0) - return json_log(variant, flags, SYNTHETIC_ERRNO(EINVAL), "Storage type '%s' not known.", json_variant_string(variant)); + return json_log(variant, flags, k, "Storage type '%s' not known.", json_variant_string(variant)); *storage = k; return 0; diff --git a/src/shared/volatile-util.c b/src/shared/volatile-util.c index 3323897a4c..5138edbd10 100644 --- a/src/shared/volatile-util.c +++ b/src/shared/volatile-util.c @@ -27,7 +27,7 @@ int query_volatile_mode(VolatileMode *ret) { m = volatile_mode_from_string(mode); if (m < 0) - return -EINVAL; + return m; *ret = m; } else diff --git a/src/systemctl/systemctl-log-setting.c b/src/systemctl/systemctl-log-setting.c index 64984e4a81..9a95c7dab4 100644 --- a/src/systemctl/systemctl-log-setting.c +++ b/src/systemctl/systemctl-log-setting.c @@ -30,9 +30,9 @@ static int log_setting_internal(sd_bus *bus, const BusLocator* bloc, const char if (value) { if (level) { - if (log_level_from_string(value) < 0) - return log_error_errno(SYNTHETIC_ERRNO(EINVAL), - "\"%s\" is not a valid log level.", value); + r = log_level_from_string(value); + if (r < 0) + return log_error_errno(r, "\"%s\" is not a valid log level.", value); } r = bus_set_property(bus, bloc, diff --git a/src/systemctl/systemctl-show.c b/src/systemctl/systemctl-show.c index 3dde305e13..9b04b698be 100644 --- a/src/systemctl/systemctl-show.c +++ b/src/systemctl/systemctl-show.c @@ -2040,8 +2040,7 @@ int show(int argc, char *argv[], void *userdata) { show_mode = systemctl_show_mode_from_string(argv[0]); if (show_mode < 0) - return log_error_errno(SYNTHETIC_ERRNO(EINVAL), - "Invalid argument."); + return log_error_errno(show_mode, "Invalid argument."); if (show_mode == SYSTEMCTL_SHOW_HELP && argc <= 1) return log_error_errno(SYNTHETIC_ERRNO(EINVAL), diff --git a/src/systemctl/systemctl-util.c b/src/systemctl/systemctl-util.c index a854107cc8..89c342a0b1 100644 --- a/src/systemctl/systemctl-util.c +++ b/src/systemctl/systemctl-util.c @@ -143,7 +143,7 @@ int get_state_one_unit(sd_bus *bus, const char *unit, UnitActiveState *ret_activ state = unit_active_state_from_string(buf); if (state < 0) - return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "Invalid unit state '%s' for: %s", buf, unit); + return log_error_errno(state, "Invalid unit state '%s' for: %s", buf, unit); *ret_active_state = state; return 0; diff --git a/src/volatile-root/volatile-root.c b/src/volatile-root/volatile-root.c index 242ef81ecf..1a6593f9c4 100644 --- a/src/volatile-root/volatile-root.c +++ b/src/volatile-root/volatile-root.c @@ -132,7 +132,7 @@ static int run(int argc, char *argv[]) { /* The kernel command line always wins. However if nothing was set there, the argument passed here wins instead. */ m = volatile_mode_from_string(argv[1]); if (m < 0) - return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "Couldn't parse volatile mode: %s", argv[1]); + return log_error_errno(m, "Couldn't parse volatile mode: %s", argv[1]); } if (argc < 3) From c706a52ac5f6b6e3d20d0a9e965b557dddbe0401 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Tue, 9 Feb 2021 16:07:19 +0100 Subject: [PATCH 14/16] machinectl: write arg_* only after verifying the value --- src/machine/machinectl.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/machine/machinectl.c b/src/machine/machinectl.c index 1771abc077..3d6048eaff 100644 --- a/src/machine/machinectl.c +++ b/src/machine/machinectl.c @@ -2693,10 +2693,10 @@ static int parse_argv(int argc, char *argv[]) { return 0; } - arg_output = output_mode_from_string(optarg); - if (arg_output < 0) - return log_error_errno(SYNTHETIC_ERRNO(EINVAL), - "Unknown output '%s'.", optarg); + r = output_mode_from_string(optarg); + if (r < 0) + return log_error_errno(r, "Unknown output '%s'.", optarg); + arg_output = r; if (OUTPUT_MODE_IS_JSON(arg_output)) arg_legend = false; @@ -2720,10 +2720,10 @@ static int parse_argv(int argc, char *argv[]) { return 0; } - arg_signal = signal_from_string(optarg); - if (arg_signal < 0) - return log_error_errno(SYNTHETIC_ERRNO(EINVAL), - "Failed to parse signal string %s.", optarg); + r = signal_from_string(optarg); + if (r < 0) + return log_error_errno(r, "Failed to parse signal string %s.", optarg); + arg_signal = r; break; case ARG_NO_ASK_PASSWORD: @@ -2758,10 +2758,10 @@ static int parse_argv(int argc, char *argv[]) { return 0; } - arg_verify = import_verify_from_string(optarg); - if (arg_verify < 0) - return log_error_errno(SYNTHETIC_ERRNO(EINVAL), - "Failed to parse --verify= setting: %s", optarg); + r = import_verify_from_string(optarg); + if (r < 0) + return log_error_errno(r, "Failed to parse --verify= setting: %s", optarg); + arg_verify = r; break; case ARG_FORCE: From 419076978c140c86cea02ce41cfec95abba68090 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Wed, 8 May 2019 10:55:39 +0200 Subject: [PATCH 15/16] resolved: rework a few functions to return early on error The implementation is a bit ugly because we set the output variable twice. But we were already doing this on error, so this is not significantly worse. Doing this allows us to avoid goto's, and the compiler should be able to figure this out and only set once. --- src/resolve/resolved-link.c | 122 ++++++++++++++---------------------- 1 file changed, 47 insertions(+), 75 deletions(-) diff --git a/src/resolve/resolved-link.c b/src/resolve/resolved-link.c index 06c2432c0a..3a549691c8 100644 --- a/src/resolve/resolved-link.c +++ b/src/resolve/resolved-link.c @@ -337,25 +337,20 @@ static int link_update_llmnr_support(Link *l) { assert(l); + l->llmnr_support = RESOLVE_SUPPORT_YES; /* yes, yes, we set it twice which is ugly */ + r = sd_network_link_get_llmnr(l->ifindex, &b); - if (r == -ENODATA) { - r = 0; - goto clear; - } + if (r == -ENODATA) + return 0; if (r < 0) - goto clear; + return r; - l->llmnr_support = resolve_support_from_string(b); - if (l->llmnr_support < 0) { - r = -EINVAL; - goto clear; - } + r = resolve_support_from_string(b); + if (r < 0) + return r; + l->llmnr_support = r; return 0; - -clear: - l->llmnr_support = RESOLVE_SUPPORT_YES; - return r; } static int link_update_mdns_support(Link *l) { @@ -364,25 +359,20 @@ static int link_update_mdns_support(Link *l) { assert(l); - r = sd_network_link_get_mdns(l->ifindex, &b); - if (r == -ENODATA) { - r = 0; - goto clear; - } - if (r < 0) - goto clear; - - l->mdns_support = resolve_support_from_string(b); - if (l->mdns_support < 0) { - r = -EINVAL; - goto clear; - } - - return 0; - -clear: l->mdns_support = RESOLVE_SUPPORT_NO; - return r; + + r = sd_network_link_get_mdns(l->ifindex, &b); + if (r == -ENODATA) + return 0; + if (r < 0) + return r; + + r = resolve_support_from_string(b); + if (r < 0) + return r; + + l->mdns_support = r; + return 0; } void link_set_dns_over_tls_mode(Link *l, DnsOverTlsMode mode) { @@ -404,25 +394,20 @@ static int link_update_dns_over_tls_mode(Link *l) { assert(l); - r = sd_network_link_get_dns_over_tls(l->ifindex, &b); - if (r == -ENODATA) { - r = 0; - goto clear; - } - if (r < 0) - goto clear; - - l->dns_over_tls_mode = dns_over_tls_mode_from_string(b); - if (l->dns_over_tls_mode < 0) { - r = -EINVAL; - goto clear; - } - - return 0; - -clear: l->dns_over_tls_mode = _DNS_OVER_TLS_MODE_INVALID; - return r; + + r = sd_network_link_get_dns_over_tls(l->ifindex, &b); + if (r == -ENODATA) + return 0; + if (r < 0) + return r; + + r = dns_over_tls_mode_from_string(b); + if (r < 0) + return r; + + l->dns_over_tls_mode = r; + return 0; } void link_set_dnssec_mode(Link *l, DnssecMode mode) { @@ -458,27 +443,20 @@ static int link_update_dnssec_mode(Link *l) { assert(l); + l->dnssec_mode = _DNSSEC_MODE_INVALID; + r = sd_network_link_get_dnssec(l->ifindex, &m); - if (r == -ENODATA) { - r = 0; - goto clear; - } + if (r == -ENODATA) + return 0; if (r < 0) - goto clear; + return r; mode = dnssec_mode_from_string(m); - if (mode < 0) { - r = -EINVAL; - goto clear; - } + if (mode < 0) + return mode; link_set_dnssec_mode(l, mode); - return 0; - -clear: - l->dnssec_mode = _DNSSEC_MODE_INVALID; - return r; } static int link_update_dnssec_negative_trust_anchors(Link *l) { @@ -488,13 +466,13 @@ static int link_update_dnssec_negative_trust_anchors(Link *l) { assert(l); + l->dnssec_negative_trust_anchors = set_free_free(l->dnssec_negative_trust_anchors); + r = sd_network_link_get_dnssec_negative_trust_anchors(l->ifindex, &ntas); - if (r == -ENODATA) { - r = 0; - goto clear; - } + if (r == -ENODATA) + return r; if (r < 0) - goto clear; + return r; ns = set_new(&dns_name_hash_ops); if (!ns) @@ -504,14 +482,8 @@ static int link_update_dnssec_negative_trust_anchors(Link *l) { if (r < 0) return r; - set_free_free(l->dnssec_negative_trust_anchors); l->dnssec_negative_trust_anchors = TAKE_PTR(ns); - return 0; - -clear: - l->dnssec_negative_trust_anchors = set_free_free(l->dnssec_negative_trust_anchors); - return r; } static int link_update_search_domain_one(Link *l, const char *name, bool route_only) { From 23ece765cc771f1fe0d4798843edb0ec24ae179c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Wed, 10 Feb 2021 08:00:33 +0100 Subject: [PATCH 16/16] test-string-util: add missing comma Coverity CID#1446368. --- src/test/test-string-util.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/test-string-util.c b/src/test/test-string-util.c index 12eafaaf22..fec9577d1f 100644 --- a/src/test/test-string-util.c +++ b/src/test/test-string-util.c @@ -917,7 +917,7 @@ static void test_strverscmp_improved(void) { "123-3.1", "123^patch1", "123^1", - "123.a-1" + "123.a-1", "123.1-1", "123a-1", "124",