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