git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
This commit was manufactured by cvs2svn to create tag
[linux-2.6.git]
/
arch
/
um
/
kernel
/
frame_kern.c
diff --git
a/arch/um/kernel/frame_kern.c
b/arch/um/kernel/frame_kern.c
index
fe215c9
..
809002d
100644
(file)
--- a/
arch/um/kernel/frame_kern.c
+++ b/
arch/um/kernel/frame_kern.c
@@
-56,11
+56,11
@@
static int copy_ucontext_to_user(struct ucontext *uc, void *fp, sigset_t *set,
}
int setup_signal_stack_si(unsigned long stack_top, int sig,
}
int setup_signal_stack_si(unsigned long stack_top, int sig,
- struct k_sigaction *ka, struct pt_regs *regs,
- siginfo_t *info, sigset_t *mask)
+ unsigned long handler, void (*restorer)(void),
+ struct pt_regs *regs, siginfo_t *info,
+ sigset_t *mask)
{
unsigned long start;
{
unsigned long start;
- void *restorer;
void *sip, *ucp, *fp;
start = stack_top - signal_frame_si.common.len;
void *sip, *ucp, *fp;
start = stack_top - signal_frame_si.common.len;
@@
-68,10
+68,6
@@
int setup_signal_stack_si(unsigned long stack_top, int sig,
ucp = (void *) (start + signal_frame_si.uc_index);
fp = (void *) (((unsigned long) ucp) + sizeof(struct ucontext));
ucp = (void *) (start + signal_frame_si.uc_index);
fp = (void *) (((unsigned long) ucp) + sizeof(struct ucontext));
- restorer = NULL;
- if(ka->sa.sa_flags & SA_RESTORER)
- restorer = ka->sa.sa_restorer;
-
if(restorer == NULL)
panic("setup_signal_stack_si - no restorer");
if(restorer == NULL)
panic("setup_signal_stack_si - no restorer");
@@
-89,26
+85,21
@@
int setup_signal_stack_si(unsigned long stack_top, int sig,
signal_frame_si.common.sr_relative))
return(1);
signal_frame_si.common.sr_relative))
return(1);
- PT_REGS_IP(regs) =
(unsigned long) ka->sa.sa_
handler;
+ PT_REGS_IP(regs) = handler;
PT_REGS_SP(regs) = start + signal_frame_si.common.sp_index;
return(0);
}
int setup_signal_stack_sc(unsigned long stack_top, int sig,
PT_REGS_SP(regs) = start + signal_frame_si.common.sp_index;
return(0);
}
int setup_signal_stack_sc(unsigned long stack_top, int sig,
- struct k_sigaction *ka, struct pt_regs *regs,
- sigset_t *mask)
+ unsigned long handler, void (*restorer)(void),
+ s
truct pt_regs *regs, s
igset_t *mask)
{
struct frame_common *frame = &signal_frame_sc_sr.common;
{
struct frame_common *frame = &signal_frame_sc_sr.common;
- void *restorer;
void *user_sc;
int sig_size = (_NSIG_WORDS - 1) * sizeof(unsigned long);
unsigned long sigs, sr;
unsigned long start = stack_top - frame->len - sig_size;
void *user_sc;
int sig_size = (_NSIG_WORDS - 1) * sizeof(unsigned long);
unsigned long sigs, sr;
unsigned long start = stack_top - frame->len - sig_size;
- restorer = NULL;
- if(ka->sa.sa_flags & SA_RESTORER)
- restorer = ka->sa.sa_restorer;
-
user_sc = (void *) (start + signal_frame_sc_sr.sc_index);
if(restorer == NULL){
frame = &signal_frame_sc.common;
user_sc = (void *) (start + signal_frame_sc_sr.sc_index);
if(restorer == NULL){
frame = &signal_frame_sc.common;
@@
-130,7
+121,7
@@
int setup_signal_stack_sc(unsigned long stack_top, int sig,
copy_restorer(restorer, start, frame->sr_index, frame->sr_relative))
return(1);
copy_restorer(restorer, start, frame->sr_index, frame->sr_relative))
return(1);
- PT_REGS_IP(regs) =
(unsigned long) ka->sa.sa_
handler;
+ PT_REGS_IP(regs) = handler;
PT_REGS_SP(regs) = start + frame->sp_index;
return(0);
PT_REGS_SP(regs) = start + frame->sp_index;
return(0);