Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
ab348681
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看板
提交
ab348681
编写于
9月 28, 2012
作者:
A
Al Viro
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
sparc32: switch to generic kernel_execve()
Signed-off-by:
N
Al Viro
<
viro@zeniv.linux.org.uk
>
上级
c78e0643
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
13 addition
and
27 deletion
+13
-27
arch/sparc/Kconfig
arch/sparc/Kconfig
+1
-1
arch/sparc/include/asm/ptrace.h
arch/sparc/include/asm/ptrace.h
+3
-0
arch/sparc/kernel/entry.S
arch/sparc/kernel/entry.S
+9
-2
arch/sparc/kernel/sys_sparc_32.c
arch/sparc/kernel/sys_sparc_32.c
+0
-24
未找到文件。
arch/sparc/Kconfig
浏览文件 @
ab348681
...
...
@@ -41,6 +41,7 @@ config SPARC
select GENERIC_STRNLEN_USER
select MODULES_USE_ELF_RELA
select GENERIC_KERNEL_THREAD
select GENERIC_KERNEL_EXECVE
config SPARC32
def_bool !64BIT
...
...
@@ -75,7 +76,6 @@ config SPARC64
select ARCH_HAVE_NMI_SAFE_CMPXCHG
select HAVE_C_RECORDMCOUNT
select NO_BOOTMEM
select GENERIC_KERNEL_EXECVE
config ARCH_DEFCONFIG
string
...
...
arch/sparc/include/asm/ptrace.h
浏览文件 @
ab348681
...
...
@@ -90,6 +90,9 @@ static inline bool pt_regs_clear_syscall(struct pt_regs *regs)
#define arch_ptrace_stop(exit_code, info) \
synchronize_user_stack()
#define current_pt_regs() \
((struct pt_regs *)((unsigned long)current_thread_info() + THREAD_SIZE) - 1)
#define user_mode(regs) (!((regs)->psr & PSR_PS))
#define instruction_pointer(regs) ((regs)->pc)
#define user_stack_pointer(regs) ((regs)->u_regs[UREG_FP])
...
...
arch/sparc/kernel/entry.S
浏览文件 @
ab348681
...
...
@@ -990,8 +990,15 @@ ret_from_kernel_thread:
ld
[%
sp
+
STACKFRAME_SZ
+
PT_G1
],
%
l0
call
%
l0
ld
[%
sp
+
STACKFRAME_SZ
+
PT_G2
],
%
o0
call
do_exit
/*
won
't return */
clr
%
o0
rd
%
psr
,
%
l1
ld
[%
sp
+
STACKFRAME_SZ
+
PT_PSR
],
%
l0
andn
%
l0
,
PSR_CWP
,
%
l0
nop
and
%
l1
,
PSR_CWP
,
%
l1
or
%
l0
,
%
l1
,
%
l0
st
%
l0
,
[%
sp
+
STACKFRAME_SZ
+
PT_PSR
]
b
ret_sys_call
mov
0
,
%
o0
/
*
Linux
native
system
calls
enter
here
...
*/
.
align
4
...
...
arch/sparc/kernel/sys_sparc_32.c
浏览文件 @
ab348681
...
...
@@ -258,27 +258,3 @@ asmlinkage int sys_getdomainname(char __user *name, int len)
up_read
(
&
uts_sem
);
return
err
;
}
/*
* Do a system call from kernel instead of calling sys_execve so we
* end up with proper pt_regs.
*/
int
kernel_execve
(
const
char
*
filename
,
const
char
*
const
argv
[],
const
char
*
const
envp
[])
{
long
__res
;
register
long
__g1
__asm__
(
"g1"
)
=
__NR_execve
;
register
long
__o0
__asm__
(
"o0"
)
=
(
long
)(
filename
);
register
long
__o1
__asm__
(
"o1"
)
=
(
long
)(
argv
);
register
long
__o2
__asm__
(
"o2"
)
=
(
long
)(
envp
);
asm
volatile
(
"t 0x10
\n\t
"
"bcc 1f
\n\t
"
"mov %%o0, %0
\n\t
"
"sub %%g0, %%o0, %0
\n\t
"
"1:
\n\t
"
:
"=r"
(
__res
),
"=&r"
(
__o0
)
:
"1"
(
__o0
),
"r"
(
__o1
),
"r"
(
__o2
),
"r"
(
__g1
)
:
"cc"
);
return
__res
;
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录