svn commit: r279116 - user/dchagin/lemul/sys/i386/linux
Dmitry Chagin
dchagin at FreeBSD.org
Sat Feb 21 22:27:59 UTC 2015
Author: dchagin
Date: Sat Feb 21 22:27:57 2015
New Revision: 279116
URL: https://svnweb.freebsd.org/changeset/base/279116
Log:
Finish r279107. Fix build on i386.
Modified:
user/dchagin/lemul/sys/i386/linux/linux.h
user/dchagin/lemul/sys/i386/linux/linux_machdep.c
user/dchagin/lemul/sys/i386/linux/linux_ptrace.c
user/dchagin/lemul/sys/i386/linux/linux_sysvec.c
Modified: user/dchagin/lemul/sys/i386/linux/linux.h
==============================================================================
--- user/dchagin/lemul/sys/i386/linux/linux.h Sat Feb 21 22:25:24 2015 (r279115)
+++ user/dchagin/lemul/sys/i386/linux/linux.h Sat Feb 21 22:27:57 2015 (r279116)
@@ -33,6 +33,7 @@
#include <sys/signal.h> /* for sigval union */
+#include <compat/linux/linux.h>
#include <i386/linux/linux_syscall.h>
/*
Modified: user/dchagin/lemul/sys/i386/linux/linux_machdep.c
==============================================================================
--- user/dchagin/lemul/sys/i386/linux/linux_machdep.c Sat Feb 21 22:25:24 2015 (r279115)
+++ user/dchagin/lemul/sys/i386/linux/linux_machdep.c Sat Feb 21 22:27:57 2015 (r279116)
@@ -677,7 +677,7 @@ linux_sigaction(struct thread *td, struc
act.lsa_flags = osa.lsa_flags;
act.lsa_restorer = osa.lsa_restorer;
LINUX_SIGEMPTYSET(act.lsa_mask);
- act.lsa_mask.__bits[0] = osa.lsa_mask;
+ act.lsa_mask.__mask = osa.lsa_mask;
}
error = linux_do_sigaction(td, args->sig, args->nsa ? &act : NULL,
@@ -687,7 +687,7 @@ linux_sigaction(struct thread *td, struc
osa.lsa_handler = oact.lsa_handler;
osa.lsa_flags = oact.lsa_flags;
osa.lsa_restorer = oact.lsa_restorer;
- osa.lsa_mask = oact.lsa_mask.__bits[0];
+ osa.lsa_mask = oact.lsa_mask.__mask;
error = copyout(&osa, args->osa, sizeof(l_osigaction_t));
}
@@ -711,7 +711,7 @@ linux_sigsuspend(struct thread *td, stru
#endif
LINUX_SIGEMPTYSET(mask);
- mask.__bits[0] = args->mask;
+ mask.__mask = args->mask;
linux_to_bsd_sigset(&mask, &sigmask);
return (kern_sigsuspend(td, sigmask));
}
@@ -1100,7 +1100,7 @@ linux_waitid(struct thread *td, struct l
if (td->td_retval[0] == 0)
bzero(&lsi, sizeof(lsi));
else {
- sig = BSD_TO_LINUX_SIGNAL(siginfo.si_signo);
+ sig = bsd_to_linux_signal(siginfo.si_signo);
siginfo_to_lsiginfo(&siginfo, &lsi, sig);
}
error = copyout(&lsi, args->info, sizeof(lsi));
Modified: user/dchagin/lemul/sys/i386/linux/linux_ptrace.c
==============================================================================
--- user/dchagin/lemul/sys/i386/linux/linux_ptrace.c Sat Feb 21 22:25:24 2015 (r279115)
+++ user/dchagin/lemul/sys/i386/linux/linux_ptrace.c Sat Feb 21 22:27:57 2015 (r279116)
@@ -91,8 +91,7 @@ static __inline int
map_signum(int signum)
{
- if (signum > 0 && signum <= LINUX_SIGTBLSZ)
- signum = linux_to_bsd_signal[_SIG_IDX(signum)];
+ signum = linux_to_bsd_signal(signum);
return ((signum == SIGSTOP)? 0 : signum);
}
Modified: user/dchagin/lemul/sys/i386/linux/linux_sysvec.c
==============================================================================
--- user/dchagin/lemul/sys/i386/linux/linux_sysvec.c Sat Feb 21 22:25:24 2015 (r279115)
+++ user/dchagin/lemul/sys/i386/linux/linux_sysvec.c Sat Feb 21 22:27:57 2015 (r279116)
@@ -458,7 +458,7 @@ linux_rt_sendsig(sig_t catcher, ksiginfo
/*
* Build the argument list for the signal handler.
*/
- sig = BSD_TO_LINUX_SIGNAL(sig);
+ sig = bsd_to_linux_signal(sig);
bzero(&frame, sizeof(frame));
@@ -484,7 +484,7 @@ linux_rt_sendsig(sig_t catcher, ksiginfo
bsd_to_linux_sigset(mask, &frame.sf_sc.uc_sigmask);
- frame.sf_sc.uc_mcontext.sc_mask = frame.sf_sc.uc_sigmask.__bits[0];
+ frame.sf_sc.uc_mcontext.sc_mask = frame.sf_sc.uc_sigmask.__mask;
frame.sf_sc.uc_mcontext.sc_gs = rgs();
frame.sf_sc.uc_mcontext.sc_fs = regs->tf_fs;
frame.sf_sc.uc_mcontext.sc_es = regs->tf_es;
@@ -563,7 +563,7 @@ linux_sendsig(sig_t catcher, ksiginfo_t
struct l_sigframe *fp, frame;
l_sigset_t lmask;
int sig, code;
- int oonstack, i;
+ int oonstack;
PROC_LOCK_ASSERT(p, MA_OWNED);
psp = p->p_sigacts;
@@ -599,7 +599,7 @@ linux_sendsig(sig_t catcher, ksiginfo_t
/*
* Build the argument list for the signal handler.
*/
- sig = BSD_TO_LINUX_SIGNAL(sig);
+ sig = bsd_to_linux_signal(sig);
bzero(&frame, sizeof(frame));
@@ -611,7 +611,7 @@ linux_sendsig(sig_t catcher, ksiginfo_t
/*
* Build the signal context to be used by sigreturn.
*/
- frame.sf_sc.sc_mask = lmask.__bits[0];
+ frame.sf_sc.sc_mask = lmask.__mask;
frame.sf_sc.sc_gs = rgs();
frame.sf_sc.sc_fs = regs->tf_fs;
frame.sf_sc.sc_es = regs->tf_es;
@@ -633,8 +633,7 @@ linux_sendsig(sig_t catcher, ksiginfo_t
frame.sf_sc.sc_cr2 = (register_t)ksi->ksi_addr;
frame.sf_sc.sc_trapno = bsd_to_linux_trapcode(ksi->ksi_trapno);
- for (i = 0; i < (LINUX_NSIG_WORDS-1); i++)
- frame.sf_extramask[i] = lmask.__bits[i+1];
+ frame.sf_extramask[0] = lmask.__mask;
if (copyout(&frame, fp, sizeof(frame)) != 0) {
/*
@@ -677,7 +676,7 @@ linux_sigreturn(struct thread *td, struc
struct trapframe *regs;
l_sigset_t lmask;
sigset_t bmask;
- int eflags, i;
+ int eflags;
ksiginfo_t ksi;
regs = td->td_frame;
@@ -718,9 +717,7 @@ linux_sigreturn(struct thread *td, struc
return (EINVAL);
}
- lmask.__bits[0] = frame.sf_sc.sc_mask;
- for (i = 0; i < (LINUX_NSIG_WORDS-1); i++)
- lmask.__bits[i+1] = frame.sf_extramask[i];
+ lmask.__mask = frame.sf_sc.sc_mask;
linux_to_bsd_sigset(&lmask, &bmask);
kern_sigprocmask(td, SIG_SETMASK, &bmask, NULL, 0);
@@ -959,8 +956,8 @@ struct sysentvec linux_sysvec = {
.sv_size = LINUX_SYS_MAXSYSCALL,
.sv_table = linux_sysent,
.sv_mask = 0,
- .sv_sigsize = LINUX_SIGTBLSZ,
- .sv_sigtbl = bsd_to_linux_signal,
+ .sv_sigsize = 0,
+ .sv_sigtbl = NULL,
.sv_errsize = ELAST + 1,
.sv_errtbl = bsd_to_linux_errno,
.sv_transtrap = translate_traps,
More information about the svn-src-user
mailing list