mirror of
https://github.com/systemd/systemd.git
synced 2024-12-22 17:35:35 +03:00
Add macro for checking if some flags are set
This way we don't need to repeat the argument twice. I didn't replace all instances. I think it's better to leave out: - asserts - comparisons like x & y == x, which are mathematically equivalent, but here we aren't checking if flags are set, but if the argument fits in the flags.
This commit is contained in:
parent
00bfe67f6b
commit
d94a24ca2e
15
coccinelle/flags-set.cocci
Normal file
15
coccinelle/flags-set.cocci
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
@@
|
||||||
|
expression x, y;
|
||||||
|
@@
|
||||||
|
- ((x) & (y)) == (y)
|
||||||
|
+ FLAGS_SET(x, y)
|
||||||
|
@@
|
||||||
|
expression x, y;
|
||||||
|
@@
|
||||||
|
- (x & (y)) == (y)
|
||||||
|
+ FLAGS_SET(x, y)
|
||||||
|
@@
|
||||||
|
expression x, y;
|
||||||
|
@@
|
||||||
|
- ((x) & y) == y
|
||||||
|
+ FLAGS_SET(x, y)
|
@ -41,7 +41,7 @@ static inline void cap_free_charpp(char **p) {
|
|||||||
static inline bool cap_test_all(uint64_t caps) {
|
static inline bool cap_test_all(uint64_t caps) {
|
||||||
uint64_t m;
|
uint64_t m;
|
||||||
m = (UINT64_C(1) << (cap_last_cap() + 1)) - 1;
|
m = (UINT64_C(1) << (cap_last_cap() + 1)) - 1;
|
||||||
return (caps & m) == m;
|
return FLAGS_SET(caps, m);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ambient_capabilities_supported(void);
|
bool ambient_capabilities_supported(void);
|
||||||
|
@ -81,7 +81,7 @@ static int fd_is_nonblock_pipe(int fd) {
|
|||||||
if (flags < 0)
|
if (flags < 0)
|
||||||
return -errno;
|
return -errno;
|
||||||
|
|
||||||
return (flags & O_NONBLOCK) == O_NONBLOCK ? FD_IS_NONBLOCKING_PIPE : FD_IS_BLOCKING_PIPE;
|
return FLAGS_SET(flags, O_NONBLOCK) ? FD_IS_NONBLOCKING_PIPE : FD_IS_BLOCKING_PIPE;
|
||||||
}
|
}
|
||||||
|
|
||||||
int copy_bytes_full(
|
int copy_bytes_full(
|
||||||
|
@ -602,10 +602,10 @@ int chase_symlinks(const char *path, const char *original_root, unsigned flags,
|
|||||||
assert(path);
|
assert(path);
|
||||||
|
|
||||||
/* Either the file may be missing, or we return an fd to the final object, but both make no sense */
|
/* Either the file may be missing, or we return an fd to the final object, but both make no sense */
|
||||||
if ((flags & (CHASE_NONEXISTENT|CHASE_OPEN)) == (CHASE_NONEXISTENT|CHASE_OPEN))
|
if (FLAGS_SET(flags, CHASE_NONEXISTENT | CHASE_OPEN))
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
if ((flags & (CHASE_STEP|CHASE_OPEN)) == (CHASE_STEP|CHASE_OPEN))
|
if (FLAGS_SET(flags, CHASE_STEP | CHASE_OPEN))
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
if (isempty(path))
|
if (isempty(path))
|
||||||
|
@ -357,6 +357,8 @@ static inline unsigned long ALIGN_POWER2(unsigned long u) {
|
|||||||
|
|
||||||
#define SET_FLAG(v, flag, b) \
|
#define SET_FLAG(v, flag, b) \
|
||||||
(v) = (b) ? ((v) | (flag)) : ((v) & ~(flag))
|
(v) = (b) ? ((v) | (flag)) : ((v) & ~(flag))
|
||||||
|
#define FLAGS_SET(v, flags) \
|
||||||
|
(((v) & (flags)) == (flags))
|
||||||
|
|
||||||
#define CASE_F(X) case X:
|
#define CASE_F(X) case X:
|
||||||
#define CASE_F_1(CASE, X) CASE_F(X)
|
#define CASE_F_1(CASE, X) CASE_F(X)
|
||||||
|
@ -1359,7 +1359,7 @@ int safe_fork_full(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((flags & (FORK_NEW_MOUNTNS|FORK_MOUNTNS_SLAVE)) == (FORK_NEW_MOUNTNS|FORK_MOUNTNS_SLAVE)) {
|
if (FLAGS_SET(flags, FORK_NEW_MOUNTNS | FORK_MOUNTNS_SLAVE)) {
|
||||||
|
|
||||||
/* Optionally, make sure we never propagate mounts to the host. */
|
/* Optionally, make sure we never propagate mounts to the host. */
|
||||||
|
|
||||||
|
@ -178,7 +178,7 @@ int rm_rf(const char *path, RemoveFlags flags) {
|
|||||||
return -EPERM;
|
return -EPERM;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((flags & (REMOVE_SUBVOLUME|REMOVE_ROOT|REMOVE_PHYSICAL)) == (REMOVE_SUBVOLUME|REMOVE_ROOT|REMOVE_PHYSICAL)) {
|
if (FLAGS_SET(flags, REMOVE_SUBVOLUME | REMOVE_ROOT | REMOVE_PHYSICAL)) {
|
||||||
/* Try to remove as subvolume first */
|
/* Try to remove as subvolume first */
|
||||||
r = btrfs_subvol_remove(path, BTRFS_REMOVE_RECURSIVE|BTRFS_REMOVE_QUOTA);
|
r = btrfs_subvol_remove(path, BTRFS_REMOVE_RECURSIVE|BTRFS_REMOVE_QUOTA);
|
||||||
if (r >= 0)
|
if (r >= 0)
|
||||||
|
@ -1303,7 +1303,7 @@ const char *unit_get_realized_cgroup_path(Unit *u, CGroupMask mask) {
|
|||||||
|
|
||||||
if (u->cgroup_path &&
|
if (u->cgroup_path &&
|
||||||
u->cgroup_realized &&
|
u->cgroup_realized &&
|
||||||
(u->cgroup_realized_mask & mask) == mask)
|
FLAGS_SET(u->cgroup_realized_mask, mask))
|
||||||
return u->cgroup_path;
|
return u->cgroup_path;
|
||||||
|
|
||||||
u = UNIT_DEREF(u->slice);
|
u = UNIT_DEREF(u->slice);
|
||||||
|
@ -1053,7 +1053,7 @@ static void print_unit_dependency_mask(FILE *f, const char *kind, UnitDependency
|
|||||||
if (mask == 0)
|
if (mask == 0)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
if ((mask & table[i].mask) == table[i].mask) {
|
if (FLAGS_SET(mask, table[i].mask)) {
|
||||||
if (*space)
|
if (*space)
|
||||||
fputc(' ', f);
|
fputc(' ', f);
|
||||||
else
|
else
|
||||||
@ -2695,8 +2695,8 @@ static int unit_add_dependency_hashmap(
|
|||||||
if (info.data) {
|
if (info.data) {
|
||||||
/* Entry already exists. Add in our mask. */
|
/* Entry already exists. Add in our mask. */
|
||||||
|
|
||||||
if ((info.origin_mask & origin_mask) == info.origin_mask &&
|
if (FLAGS_SET(origin_mask, info.origin_mask) &&
|
||||||
(info.destination_mask & destination_mask) == info.destination_mask)
|
FLAGS_SET(destination_mask, info.destination_mask))
|
||||||
return 0; /* NOP */
|
return 0; /* NOP */
|
||||||
|
|
||||||
info.origin_mask |= origin_mask;
|
info.origin_mask |= origin_mask;
|
||||||
|
@ -37,7 +37,7 @@ static int curl_glue_on_io(sd_event_source *s, int fd, uint32_t revents, void *u
|
|||||||
|
|
||||||
translated_fd = PTR_TO_FD(hashmap_get(g->translate_fds, FD_TO_PTR(fd)));
|
translated_fd = PTR_TO_FD(hashmap_get(g->translate_fds, FD_TO_PTR(fd)));
|
||||||
|
|
||||||
if ((revents & (EPOLLIN|EPOLLOUT)) == (EPOLLIN|EPOLLOUT))
|
if (FLAGS_SET(revents, EPOLLIN | EPOLLOUT))
|
||||||
action = CURL_POLL_INOUT;
|
action = CURL_POLL_INOUT;
|
||||||
else if (revents & EPOLLIN)
|
else if (revents & EPOLLIN)
|
||||||
action = CURL_POLL_IN;
|
action = CURL_POLL_IN;
|
||||||
|
@ -251,7 +251,7 @@ static int condition_test_control_group_controller(Condition *c) {
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
return (system_mask & wanted_mask) == wanted_mask;
|
return FLAGS_SET(system_mask, wanted_mask);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int condition_test_group(Condition *c) {
|
static int condition_test_group(Condition *c) {
|
||||||
|
@ -307,7 +307,7 @@ static bool test_key(struct udev_device *dev,
|
|||||||
/* the first 32 bits are ESC, numbers, and Q to D; if we have all of
|
/* the first 32 bits are ESC, numbers, and Q to D; if we have all of
|
||||||
* those, consider it a full keyboard; do not test KEY_RESERVED, though */
|
* those, consider it a full keyboard; do not test KEY_RESERVED, though */
|
||||||
mask = 0xFFFFFFFE;
|
mask = 0xFFFFFFFE;
|
||||||
if ((bitmask_key[0] & mask) == mask) {
|
if (FLAGS_SET(bitmask_key[0], mask)) {
|
||||||
udev_builtin_add_property(dev, test, "ID_INPUT_KEYBOARD", "1");
|
udev_builtin_add_property(dev, test, "ID_INPUT_KEYBOARD", "1");
|
||||||
ret = true;
|
ret = true;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user