1 Star 0 Fork 100

chenjiayi/systemd

forked from src-openEuler/systemd 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
backport-list-introduce-LIST_FOREACH_BACKWARDS-macro-and-drop.patch 4.03 KB
一键复制 编辑 原始数据 按行查看 历史
From bd335c961fed6982e5ad8c2322414ff33a46e92e Mon Sep 17 00:00:00 2001
From: Yu Watanabe <[email protected]>
Date: Thu, 17 Jun 2021 16:12:06 +0900
Subject: [PATCH] list: introduce LIST_FOREACH_BACKWARDS() macro and drop
LIST_FOREACH_AFTER/BEFORE()
Reference:https://github.com/systemd/systemd/commit/bd335c961fed6982e5ad8c2322414ff33a46e92e
Conflict:NA
---
src/basic/list.h | 7 ++-----
src/core/device.c | 8 ++++----
src/core/swap.c | 4 ++--
src/udev/udev-rules.c | 2 +-
4 files changed, 9 insertions(+), 12 deletions(-)
diff --git a/src/basic/list.h b/src/basic/list.h
index 256b718..e488fff 100644
--- a/src/basic/list.h
+++ b/src/basic/list.h
@@ -142,11 +142,8 @@
#define LIST_FOREACH_SAFE(name,i,n,head) \
for ((i) = (head); (i) && (((n) = (i)->name##_next), 1); (i) = (n))
-#define LIST_FOREACH_BEFORE(name,i,p) \
- for ((i) = (p)->name##_prev; (i); (i) = (i)->name##_prev)
-
-#define LIST_FOREACH_AFTER(name,i,p) \
- for ((i) = (p)->name##_next; (i); (i) = (i)->name##_next)
+#define LIST_FOREACH_BACKWARDS(name,i,p) \
+ for ((i) = (p); (i); (i) = (i)->name##_prev)
/* Iterate through all the members of the list p is included in, but skip over p */
#define LIST_FOREACH_OTHERS(name,i,p) \
diff --git a/src/core/device.c b/src/core/device.c
index c24bc12..06270e7 100644
--- a/src/core/device.c
+++ b/src/core/device.c
@@ -785,11 +785,11 @@ static Unit *device_following(Unit *u) {
return NULL;
/* Make everybody follow the unit that's named after the sysfs path */
- LIST_FOREACH_AFTER(same_sysfs, other, d)
+ LIST_FOREACH(same_sysfs, other, d->same_sysfs_next)
if (startswith(UNIT(other)->id, "sys-"))
return UNIT(other);
- LIST_FOREACH_BEFORE(same_sysfs, other, d) {
+ LIST_FOREACH_BACKWARDS(same_sysfs, other, d->same_sysfs_prev) {
if (startswith(UNIT(other)->id, "sys-"))
return UNIT(other);
@@ -816,13 +816,13 @@ static int device_following_set(Unit *u, Set **_set) {
if (!set)
return -ENOMEM;
- LIST_FOREACH_AFTER(same_sysfs, other, d) {
+ LIST_FOREACH(same_sysfs, other, d->same_sysfs_next) {
r = set_put(set, other);
if (r < 0)
return r;
}
- LIST_FOREACH_BEFORE(same_sysfs, other, d) {
+ LIST_FOREACH_BACKWARDS(same_sysfs, other, d->same_sysfs_prev) {
r = set_put(set, other);
if (r < 0)
return r;
diff --git a/src/core/swap.c b/src/core/swap.c
index 83e77d2..7a9628e 100644
--- a/src/core/swap.c
+++ b/src/core/swap.c
@@ -1323,11 +1323,11 @@ static Unit *swap_following(Unit *u) {
if (streq_ptr(s->what, s->devnode))
return NULL;
- LIST_FOREACH_AFTER(same_devnode, other, s)
+ LIST_FOREACH(same_devnode, other, s->same_devnode_next)
if (streq_ptr(other->what, other->devnode))
return UNIT(other);
- LIST_FOREACH_BEFORE(same_devnode, other, s) {
+ LIST_FOREACH_BACKWARDS(same_devnode, other, s->same_devnode_prev) {
if (streq_ptr(other->what, other->devnode))
return UNIT(other);
diff --git a/src/udev/udev-rules.c b/src/udev/udev-rules.c
index bf997fc..5e8dad2 100644
--- a/src/udev/udev-rules.c
+++ b/src/udev/udev-rules.c
@@ -1154,7 +1154,7 @@ static void rule_resolve_goto(UdevRuleFile *rule_file) {
if (!FLAGS_SET(line->type, LINE_HAS_GOTO))
continue;
- LIST_FOREACH_AFTER(rule_lines, i, line)
+ LIST_FOREACH(rule_lines, i, line->rule_lines_next)
if (streq_ptr(i->label, line->goto_label)) {
line->goto_line = i;
break;
--
2.33.0
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/jiayi0118/systemd.git
[email protected]:jiayi0118/systemd.git
jiayi0118
systemd
systemd
master

搜索帮助