Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
gsplhtlxg
clone-Linux
提交
6e754210
C
clone-Linux
项目概览
gsplhtlxg
/
clone-Linux
通知
2
Star
0
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
clone-Linux
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
6e754210
编写于
9月 19, 2012
作者:
A
Al Viro
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
mn10300: switch to generic kernel_execve()
Signed-off-by:
N
Al Viro
<
viro@zeniv.linux.org.uk
>
上级
8f1597e9
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
13 addition
and
49 deletion
+13
-49
arch/mn10300/include/asm/frame.inc
arch/mn10300/include/asm/frame.inc
+1
-1
arch/mn10300/include/asm/processor.h
arch/mn10300/include/asm/processor.h
+3
-10
arch/mn10300/include/asm/unistd.h
arch/mn10300/include/asm/unistd.h
+1
-0
arch/mn10300/kernel/Makefile
arch/mn10300/kernel/Makefile
+1
-1
arch/mn10300/kernel/entry.S
arch/mn10300/kernel/entry.S
+7
-0
arch/mn10300/kernel/kernel_execve.S
arch/mn10300/kernel/kernel_execve.S
+0
-37
未找到文件。
arch/mn10300/include/asm/frame.inc
浏览文件 @
6e754210
...
@@ -61,7 +61,7 @@
...
@@ -61,7 +61,7 @@
###############################################################################
###############################################################################
.
macro
RESTORE_ALL
.
macro
RESTORE_ALL
# peel back the stack to the calling frame
# peel back the stack to the calling frame
# -
this permits execve() to discard extra frames due to kernel syscalls
# -
we need that when returning from interrupts to kernel mode
GET_THREAD_INFO
a0
GET_THREAD_INFO
a0
mov
(
TI_frame
,
a0
),
fp
mov
(
TI_frame
,
a0
),
fp
mov
fp
,
sp
mov
fp
,
sp
...
...
arch/mn10300/include/asm/processor.h
浏览文件 @
6e754210
...
@@ -119,20 +119,13 @@ struct thread_struct {
...
@@ -119,20 +119,13 @@ struct thread_struct {
/*
/*
* do necessary setup to start up a newly executed thread
* do necessary setup to start up a newly executed thread
* - need to discard the frame stacked by the kernel thread invoking the execve
* syscall (see RESTORE_ALL macro)
*/
*/
static
inline
void
start_thread
(
struct
pt_regs
*
regs
,
static
inline
void
start_thread
(
struct
pt_regs
*
regs
,
unsigned
long
new_pc
,
unsigned
long
new_sp
)
unsigned
long
new_pc
,
unsigned
long
new_sp
)
{
{
struct
thread_info
*
ti
=
current_thread_info
();
regs
->
epsw
=
EPSW_nSL
|
EPSW_IE
|
EPSW_IM
;
struct
pt_regs
*
frame0
;
regs
->
pc
=
new_pc
;
regs
->
sp
=
new_sp
;
frame0
=
thread_info_to_uregs
(
ti
);
frame0
->
epsw
=
EPSW_nSL
|
EPSW_IE
|
EPSW_IM
;
frame0
->
pc
=
new_pc
;
frame0
->
sp
=
new_sp
;
ti
->
frame
=
frame0
;
}
}
...
...
arch/mn10300/include/asm/unistd.h
浏览文件 @
6e754210
...
@@ -383,6 +383,7 @@
...
@@ -383,6 +383,7 @@
#define __ARCH_WANT_SYS_RT_SIGACTION
#define __ARCH_WANT_SYS_RT_SIGACTION
#define __ARCH_WANT_SYS_RT_SIGSUSPEND
#define __ARCH_WANT_SYS_RT_SIGSUSPEND
#define __ARCH_WANT_SYS_EXECVE
#define __ARCH_WANT_SYS_EXECVE
#define __ARCH_WANT_KERNEL_EXECVE
/*
/*
* "Conditional" syscalls
* "Conditional" syscalls
...
...
arch/mn10300/kernel/Makefile
浏览文件 @
6e754210
...
@@ -8,7 +8,7 @@ fpu-obj-$(CONFIG_FPU) := fpu.o fpu-low.o
...
@@ -8,7 +8,7 @@ fpu-obj-$(CONFIG_FPU) := fpu.o fpu-low.o
obj-y
:=
process.o signal.o entry.o traps.o irq.o
\
obj-y
:=
process.o signal.o entry.o traps.o irq.o
\
ptrace.o setup.o time.o sys_mn10300.o io.o
\
ptrace.o setup.o time.o sys_mn10300.o io.o
\
switch_to.o mn10300_ksyms.o
kernel_execve.o
$
(
fpu-obj-y
)
\
switch_to.o mn10300_ksyms.o
$
(
fpu-obj-y
)
\
csrc-mn10300.o cevt-mn10300.o
csrc-mn10300.o cevt-mn10300.o
obj-$(CONFIG_SMP)
+=
smp.o smp-low.o
obj-$(CONFIG_SMP)
+=
smp.o smp-low.o
...
...
arch/mn10300/kernel/entry.S
浏览文件 @
6e754210
...
@@ -62,6 +62,13 @@ ENTRY(ret_from_kernel_thread)
...
@@ -62,6 +62,13 @@ ENTRY(ret_from_kernel_thread)
calls
(
a0
)
calls
(
a0
)
jmp
sys_exit
jmp
sys_exit
ENTRY
(
ret_from_kernel_execve
)
add
-
12
,
d0
/*
pt_regs
->
frame
*/
mov
d0
,
sp
GET_THREAD_INFO
a2
clr
d0
jmp
syscall_exit
###############################################################################
###############################################################################
#
#
#
system
call
handler
#
system
call
handler
...
...
arch/mn10300/kernel/kernel_execve.S
已删除
100644 → 0
浏览文件 @
8f1597e9
/*
MN10300
In
-
kernel
program
execution
*
*
Copyright
(
C
)
2007
Red
Hat
,
Inc
.
All
Rights
Reserved
.
*
Written
by
David
Howells
(
dhowells
@
redhat
.
com
)
*
*
This
program
is
free
software
; you can redistribute it and/or
*
modify
it
under
the
terms
of
the
GNU
General
Public
Licence
*
as
published
by
the
Free
Software
Foundation
; either version
*
2
of
the
Licence
,
or
(
at
your
option
)
any
later
version
.
*/
#include <linux/linkage.h>
#include <asm/unistd.h>
###############################################################################
#
#
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
,
char
*
const
argv
[],
#
char
*
const
envp
[])
#
#
On
entry
:
D0
/
D1
/
8
(
SP
)
:
arguments
to
function
#
On
return
:
D0
:
syscall
return
.
#
###############################################################################
.
globl
kernel_execve
.
type
kernel_execve
,
@
function
kernel_execve
:
mov
a3
,
a1
mov
d0
,
a0
mov
(
12
,
sp
),
a3
mov
+
__NR_execve
,
d0
syscall
0
mov
a1
,
a3
rets
.
size
kernel_execve
,
.
-
kernel_execve
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录