Date: Wed, 02 Jun 1999 16:58:02 +0900 From: Kazutaka YOKOTA <yokota@zodiac.mech.utsunomiya-u.ac.jp> To: jlemon@freebsd.org Cc: current@freebsd.org, yokota@zodiac.mech.utsunomiya-u.ac.jp Subject: svr4 module broken after VM86 change Message-ID: <199906020758.QAA27753@zodiac.mech.utsunomiya-u.ac.jp>
next in thread | raw e-mail | index | archive | help
The svr4 module is broken after the following change to svr4_machdep.c
rev 1.5.
----------------------------------------------------------------------
revision 1.5
date: 1999/06/01 18:20:23; author: jlemon; state: Exp; lines: +0 -4
Unifdef VM86.
Reviewed by: silence on on -current
----------------------------------------------------------------------
The problem is svr4_getcontext() and svr4_setcontext() now refers
to tf_vm86_xx fields which are defined in struct trapframe_vm68
but not in p->p_md.md_regs (struct trapframe).
int
svr4_setcontext(p, uc)
struct proc *p;
struct svr4_ucontext *uc;
{
struct sigacts *psp = p->p_sigacts;
register struct trapframe *tf;
svr4_greg_t *r = uc->uc_mcontext.greg;
struct svr4_sigaltstack *s = &uc->uc_stack;
struct sigaltstack *sf = &psp->ps_sigstk;
int mask;
[...]
if ((uc->uc_flags & SVR4_UC_CPU) == 0)
return 0;
tf = p->p_md.md_regs;
/*
* Restore register context.
*/
if (r[SVR4_X86_EFL] & PSL_VM) {
tf->tf_vm86_gs = r[SVR4_X86_GS];
tf->tf_vm86_ffs = r[SVR4_X86_FS];
tf->tf_vm86_es = r[SVR4_X86_ES];
tf->tf_vm86_ds = r[SVR4_X86_DS];
set_vflags(p, r[SVR4_X86_EFL]);
} else
{
[...]
Kazu
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199906020758.QAA27753>
