Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
fbf4d7e3
K
Kernel
项目概览
openeuler
/
Kernel
大约 1 年 前同步成功
通知
6
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
Kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
fbf4d7e3
编写于
6月 11, 2010
作者:
A
Andy Grover
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
RDS: Remove unused XLIST_PTR_TAIL and xlist_protect()
Not used. Signed-off-by:
N
Andy Grover
<
andy.grover@oracle.com
>
上级
c9455d99
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
12 addition
and
42 deletion
+12
-42
net/rds/xlist.h
net/rds/xlist.h
+12
-42
未找到文件。
net/rds/xlist.h
浏览文件 @
fbf4d7e3
...
...
@@ -10,13 +10,18 @@ struct xlist_head {
struct
xlist_head
*
next
;
};
/*
* XLIST_PTR_TAIL can be used to prevent double insertion. See
* xlist_protect()
*/
#define XLIST_PTR_TAIL ((struct xlist_head *)0x1)
static
inline
void
INIT_XLIST_HEAD
(
struct
xlist_head
*
list
)
{
list
->
next
=
NULL
;
}
static
inline
int
xlist_empty
(
struct
xlist_head
*
head
)
{
return
head
->
next
==
NULL
;
}
static
inline
void
xlist_add
(
struct
xlist_head
*
new
,
struct
xlist_head
*
tail
,
struct
xlist_head
*
head
)
static
inline
void
xlist_add
(
struct
xlist_head
*
new
,
struct
xlist_head
*
tail
,
struct
xlist_head
*
head
)
{
struct
xlist_head
*
cur
;
struct
xlist_head
*
check
;
...
...
@@ -30,26 +35,6 @@ static inline void xlist_add(struct xlist_head *new, struct xlist_head *tail, st
}
}
/*
* To avoid duplicate insertion by two CPUs of the same xlist item
* you can call xlist_protect. It will stuff XLIST_PTR_TAIL
* into the entry->next pointer with xchg, and only return 1
* if there was a NULL there before.
*
* if xlist_protect returns zero, someone else is busy working
* on this entry. Getting a NULL into the entry in a race
* free manner is the caller's job.
*/
static
inline
int
xlist_protect
(
struct
xlist_head
*
entry
)
{
struct
xlist_head
*
val
;
val
=
xchg
(
&
entry
->
next
,
XLIST_PTR_TAIL
);
if
(
val
==
NULL
)
return
1
;
return
0
;
}
static
inline
struct
xlist_head
*
xlist_del_head
(
struct
xlist_head
*
head
)
{
struct
xlist_head
*
cur
;
...
...
@@ -61,11 +46,6 @@ static inline struct xlist_head *xlist_del_head(struct xlist_head *head)
if
(
!
cur
)
goto
out
;
if
(
cur
==
XLIST_PTR_TAIL
)
{
cur
=
NULL
;
goto
out
;
}
next
=
cur
->
next
;
check
=
cmpxchg
(
&
head
->
next
,
cur
,
next
);
if
(
check
==
cur
)
...
...
@@ -80,7 +60,7 @@ static inline struct xlist_head *xlist_del_head_fast(struct xlist_head *head)
struct
xlist_head
*
cur
;
cur
=
head
->
next
;
if
(
!
cur
||
cur
==
XLIST_PTR_TAIL
)
if
(
!
cur
)
return
NULL
;
head
->
next
=
cur
->
next
;
...
...
@@ -97,14 +77,4 @@ static inline void xlist_splice(struct xlist_head *list,
head
->
next
=
cur
;
}
static
inline
void
INIT_XLIST_HEAD
(
struct
xlist_head
*
list
)
{
list
->
next
=
NULL
;
}
static
inline
int
xlist_empty
(
struct
xlist_head
*
head
)
{
return
head
->
next
==
NULL
||
head
->
next
==
XLIST_PTR_TAIL
;
}
#endif
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录