Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
ca2406ed
K
Kernel
项目概览
openeuler
/
Kernel
1 年多 前同步成功
通知
8
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看板
提交
ca2406ed
编写于
5月 31, 2017
作者:
A
Al Viro
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
times(2): move compat to native
Signed-off-by:
N
Al Viro
<
viro@zeniv.linux.org.uk
>
上级
1e1fc133
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
27 addition
and
28 deletion
+27
-28
include/linux/time.h
include/linux/time.h
+0
-3
kernel/compat.c
kernel/compat.c
+0
-24
kernel/sys.c
kernel/sys.c
+27
-1
未找到文件。
include/linux/time.h
浏览文件 @
ca2406ed
...
...
@@ -171,9 +171,6 @@ extern int do_getitimer(int which, struct itimerval *value);
extern
long
do_utimes
(
int
dfd
,
const
char
__user
*
filename
,
struct
timespec
*
times
,
int
flags
);
struct
tms
;
extern
void
do_sys_times
(
struct
tms
*
);
/*
* Similar to the struct tm in userspace <time.h>, but it needs to be here so
* that the kernel source is self contained.
...
...
kernel/compat.c
浏览文件 @
ca2406ed
...
...
@@ -350,30 +350,6 @@ COMPAT_SYSCALL_DEFINE3(setitimer, int, which,
return
0
;
}
static
compat_clock_t
clock_t_to_compat_clock_t
(
clock_t
x
)
{
return
compat_jiffies_to_clock_t
(
clock_t_to_jiffies
(
x
));
}
COMPAT_SYSCALL_DEFINE1
(
times
,
struct
compat_tms
__user
*
,
tbuf
)
{
if
(
tbuf
)
{
struct
tms
tms
;
struct
compat_tms
tmp
;
do_sys_times
(
&
tms
);
/* Convert our struct tms to the compat version. */
tmp
.
tms_utime
=
clock_t_to_compat_clock_t
(
tms
.
tms_utime
);
tmp
.
tms_stime
=
clock_t_to_compat_clock_t
(
tms
.
tms_stime
);
tmp
.
tms_cutime
=
clock_t_to_compat_clock_t
(
tms
.
tms_cutime
);
tmp
.
tms_cstime
=
clock_t_to_compat_clock_t
(
tms
.
tms_cstime
);
if
(
copy_to_user
(
tbuf
,
&
tmp
,
sizeof
(
tmp
)))
return
-
EFAULT
;
}
force_successful_syscall_return
();
return
compat_jiffies_to_clock_t
(
jiffies
);
}
#ifdef __ARCH_WANT_SYS_SIGPENDING
/*
...
...
kernel/sys.c
浏览文件 @
ca2406ed
...
...
@@ -886,7 +886,7 @@ SYSCALL_DEFINE0(getegid)
return
from_kgid_munged
(
current_user_ns
(),
current_egid
());
}
void
do_sys_times
(
struct
tms
*
tms
)
static
void
do_sys_times
(
struct
tms
*
tms
)
{
u64
tgutime
,
tgstime
,
cutime
,
cstime
;
...
...
@@ -912,6 +912,32 @@ SYSCALL_DEFINE1(times, struct tms __user *, tbuf)
return
(
long
)
jiffies_64_to_clock_t
(
get_jiffies_64
());
}
#ifdef CONFIG_COMPAT
static
compat_clock_t
clock_t_to_compat_clock_t
(
clock_t
x
)
{
return
compat_jiffies_to_clock_t
(
clock_t_to_jiffies
(
x
));
}
COMPAT_SYSCALL_DEFINE1
(
times
,
struct
compat_tms
__user
*
,
tbuf
)
{
if
(
tbuf
)
{
struct
tms
tms
;
struct
compat_tms
tmp
;
do_sys_times
(
&
tms
);
/* Convert our struct tms to the compat version. */
tmp
.
tms_utime
=
clock_t_to_compat_clock_t
(
tms
.
tms_utime
);
tmp
.
tms_stime
=
clock_t_to_compat_clock_t
(
tms
.
tms_stime
);
tmp
.
tms_cutime
=
clock_t_to_compat_clock_t
(
tms
.
tms_cutime
);
tmp
.
tms_cstime
=
clock_t_to_compat_clock_t
(
tms
.
tms_cstime
);
if
(
copy_to_user
(
tbuf
,
&
tmp
,
sizeof
(
tmp
)))
return
-
EFAULT
;
}
force_successful_syscall_return
();
return
compat_jiffies_to_clock_t
(
jiffies
);
}
#endif
/*
* This needs some heavy checking ...
* I just haven't the stomach for it. I also don't fully
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录