Update to new struct sigcontext after SA_SIGINFO changes
This commit is contained in:
parent
aff66c5455
commit
962b0b5c4a
@ -268,7 +268,8 @@ if (0)
|
||||
/*
|
||||
* STEP 3: Call the handler
|
||||
*/
|
||||
(*handlers[fd].func)(handlers[fd].arg, &sf->sf_sc);
|
||||
(*handlers[fd].func)(handlers[fd].arg,
|
||||
&sf->sf_siginfo.si_sc);
|
||||
|
||||
/*
|
||||
* STEP 4: Just turn SIGIO off. No check.
|
||||
|
@ -29,7 +29,7 @@
|
||||
*
|
||||
* BSDI signal.c,v 2.2 1996/04/08 19:33:06 bostic Exp
|
||||
*
|
||||
* $Id: signal.c,v 1.1 1997/08/09 01:42:55 dyson Exp $
|
||||
* $Id: signal.c,v 1.2 1998/02/28 16:02:24 jraynard Exp $
|
||||
*/
|
||||
|
||||
#include "doscmd.h"
|
||||
@ -66,9 +66,9 @@ sanity_check(struct sigframe *sf)
|
||||
static void
|
||||
generichandler(struct sigframe sf)
|
||||
{
|
||||
if (sf.sf_sc.sc_efl & PSL_VM) {
|
||||
if (sf.sf_siginfo.si_sc.sc_efl & PSL_VM) {
|
||||
saved_sigframe = &sf;
|
||||
saved_regcontext = (regcontext_t *)&(sf.sf_sc);
|
||||
saved_regcontext = (regcontext_t *)&(sf.sf_siginfo.si_sc);
|
||||
saved_valid = 1;
|
||||
if (handler[sf.sf_signum])
|
||||
(*handler[sf.sf_signum])(&sf);
|
||||
|
@ -29,7 +29,7 @@
|
||||
*
|
||||
* BSDI trap.c,v 2.3 1996/04/08 19:33:08 bostic Exp
|
||||
*
|
||||
* $Id: trap.c,v 1.1 1997/08/09 01:42:58 dyson Exp $
|
||||
* $Id: trap.c,v 1.2 1997/09/30 22:04:05 jlemon Exp $
|
||||
*/
|
||||
|
||||
#include "doscmd.h"
|
||||
@ -287,14 +287,14 @@ sigbus(struct sigframe *sf)
|
||||
int intnum;
|
||||
int port;
|
||||
callback_t func;
|
||||
regcontext_t *REGS = (regcontext_t *)(&sf->sf_sc);
|
||||
regcontext_t *REGS = (regcontext_t *)(&sf->sf_siginfo.si_sc);
|
||||
|
||||
if (!(R_EFLAGS && PSL_VM))
|
||||
fatal("SIGBUS in the emulator\n");
|
||||
|
||||
if (sf->sf_code != 0) {
|
||||
if (sf->sf_arg2 != 0) {
|
||||
fatal("SIGBUS code %d, trapno: %d, err: %d\n",
|
||||
sf->sf_code, sf->sf_sc.sc_trapno, sf->sf_sc.sc_err);
|
||||
sf->sf_arg2, sf->sf_siginfo.si_sc.sc_trapno, sf->sf_siginfo.si_sc.sc_err);
|
||||
}
|
||||
|
||||
addr = (u_char *)GETPTR(R_CS, R_IP);
|
||||
@ -500,7 +500,7 @@ void
|
||||
sigtrace(struct sigframe *sf)
|
||||
{
|
||||
int x;
|
||||
regcontext_t *REGS = (regcontext_t *)(&sf->sf_sc);
|
||||
regcontext_t *REGS = (regcontext_t *)(&sf->sf_siginfo.si_sc);
|
||||
|
||||
if (R_EFLAGS & PSL_VM) {
|
||||
debug(D_ALWAYS, "Currently in DOS\n");
|
||||
@ -519,7 +519,7 @@ sigtrap(struct sigframe *sf)
|
||||
{
|
||||
int intnum;
|
||||
int trapno;
|
||||
regcontext_t *REGS = (regcontext_t *)(&sf->sf_sc);
|
||||
regcontext_t *REGS = (regcontext_t *)(&sf->sf_siginfo.si_sc);
|
||||
|
||||
if ((R_EFLAGS & PSL_VM) == 0) {
|
||||
dump_regs(REGS);
|
||||
@ -531,7 +531,7 @@ sigtrap(struct sigframe *sf)
|
||||
goto doh;
|
||||
|
||||
#ifdef __FreeBSD__
|
||||
trapno = sf->sf_code; /* XXX GROSTIC HACK ALERT */
|
||||
trapno = sf->sf_arg2; /* XXX GROSTIC HACK ALERT */
|
||||
#else
|
||||
trapno = sc->sc_trapno;
|
||||
#endif
|
||||
@ -554,7 +554,7 @@ doh:
|
||||
void
|
||||
breakpoint(struct sigframe *sf)
|
||||
{
|
||||
regcontext_t *REGS = (regcontext_t *)(&sf->sf_sc);
|
||||
regcontext_t *REGS = (regcontext_t *)(&sf->sf_siginfo.si_sc);
|
||||
|
||||
if (R_EFLAGS & PSL_VM)
|
||||
printf("doscmd ");
|
||||
@ -572,7 +572,7 @@ breakpoint(struct sigframe *sf)
|
||||
void
|
||||
sigalrm(struct sigframe *sf)
|
||||
{
|
||||
regcontext_t *REGS = (regcontext_t *)(&sf->sf_sc);
|
||||
regcontext_t *REGS = (regcontext_t *)(&sf->sf_siginfo.si_sc);
|
||||
|
||||
if (tmode)
|
||||
resettrace(REGS);
|
||||
@ -590,7 +590,7 @@ sigalrm(struct sigframe *sf)
|
||||
void
|
||||
sigill(struct sigframe *sf)
|
||||
{
|
||||
regcontext_t *REGS = (regcontext_t *)(&sf->sf_sc);
|
||||
regcontext_t *REGS = (regcontext_t *)(&sf->sf_siginfo.si_sc);
|
||||
|
||||
fprintf(stderr, "Signal %d from DOS program\n", sf->sf_signum);
|
||||
dump_regs(REGS);
|
||||
@ -601,7 +601,7 @@ sigill(struct sigframe *sf)
|
||||
void
|
||||
sigfpe(struct sigframe *sf)
|
||||
{
|
||||
regcontext_t *REGS = (regcontext_t *)(&sf->sf_sc);
|
||||
regcontext_t *REGS = (regcontext_t *)(&sf->sf_siginfo.si_sc);
|
||||
|
||||
if (R_EFLAGS & PSL_VM) {
|
||||
dump_regs(REGS);
|
||||
|
@ -29,7 +29,7 @@
|
||||
*
|
||||
* BSDI tty.c,v 2.4 1996/04/08 22:03:27 prb Exp
|
||||
*
|
||||
* $Id: tty.c,v 1.3 1998/01/21 21:37:02 jlemon Exp $
|
||||
* $Id: tty.c,v 1.4 1998/02/22 23:36:54 msmith Exp $
|
||||
*/
|
||||
|
||||
#ifndef NO_X
|
||||
@ -962,7 +962,7 @@ printf("FORCED REDRAW\n");
|
||||
case 0x14: /* T */
|
||||
tmode ^= 1;
|
||||
if (!tmode)
|
||||
resettrace(&saved_sigframe->sf_sc);
|
||||
resettrace(&saved_sigframe->sf_siginfo.si_sc);
|
||||
return(0xffff);
|
||||
case 0x53: /* DEL */
|
||||
quit(0);
|
||||
@ -1455,7 +1455,8 @@ video_event(XEvent *ev)
|
||||
if (ks == 'T' || ks == 't') {
|
||||
tmode ^= 1;
|
||||
if (!tmode)
|
||||
resettrace(&saved_sigframe->sf_sc);
|
||||
resettrace(&saved_sigframe->
|
||||
sf_siginfo.si_sc);
|
||||
break;
|
||||
}
|
||||
if (ks == 'R' || ks == 'r') {
|
||||
|
Loading…
x
Reference in New Issue
Block a user