Unwind the syscall_with_err_pushed tweak that jake did some time back.
OK'ed by: jake
This commit is contained in:
parent
f1f241d7d0
commit
f34d68bd30
@ -226,7 +226,9 @@ db_nextframe(fp, ip, p)
|
||||
} else if (!strncmp(name, "Xintr", 5) ||
|
||||
!strncmp(name, "Xfastintr", 9)) {
|
||||
frame_type = INTERRUPT;
|
||||
} else if (!strcmp(name, "syscall_with_err_pushed")) {
|
||||
} else if (!strcmp(name, "Xlcall_syscall")) {
|
||||
frame_type = SYSCALL;
|
||||
} else if (!strcmp(name, "Xint0x80_syscall")) {
|
||||
frame_type = SYSCALL;
|
||||
}
|
||||
}
|
||||
|
@ -191,7 +191,20 @@ IDTVEC(lcall_syscall)
|
||||
pushfl /* save eflags */
|
||||
popl 8(%esp) /* shuffle into tf_eflags */
|
||||
pushl $7 /* sizeof "lcall 7,0" */
|
||||
jmp syscall_with_err_pushed
|
||||
subl $4,%esp /* skip over tf_trapno */
|
||||
pushal
|
||||
pushl %ds
|
||||
pushl %es
|
||||
pushl %fs
|
||||
mov $KDSEL,%ax /* switch to kernel segments */
|
||||
mov %ax,%ds
|
||||
mov %ax,%es
|
||||
mov $KPSEL,%ax
|
||||
mov %ax,%fs
|
||||
FAKE_MCOUNT(13*4(%esp))
|
||||
call syscall
|
||||
MEXITCOUNT
|
||||
jmp doreti
|
||||
|
||||
/*
|
||||
* Call gate entry for FreeBSD ELF and Linux/NetBSD syscall (int 0x80)
|
||||
@ -203,7 +216,6 @@ IDTVEC(lcall_syscall)
|
||||
SUPERALIGN_TEXT
|
||||
IDTVEC(int0x80_syscall)
|
||||
pushl $2 /* sizeof "int 0x80" */
|
||||
syscall_with_err_pushed:
|
||||
subl $4,%esp /* skip over tf_trapno */
|
||||
pushal
|
||||
pushl %ds
|
||||
|
@ -191,7 +191,20 @@ IDTVEC(lcall_syscall)
|
||||
pushfl /* save eflags */
|
||||
popl 8(%esp) /* shuffle into tf_eflags */
|
||||
pushl $7 /* sizeof "lcall 7,0" */
|
||||
jmp syscall_with_err_pushed
|
||||
subl $4,%esp /* skip over tf_trapno */
|
||||
pushal
|
||||
pushl %ds
|
||||
pushl %es
|
||||
pushl %fs
|
||||
mov $KDSEL,%ax /* switch to kernel segments */
|
||||
mov %ax,%ds
|
||||
mov %ax,%es
|
||||
mov $KPSEL,%ax
|
||||
mov %ax,%fs
|
||||
FAKE_MCOUNT(13*4(%esp))
|
||||
call syscall
|
||||
MEXITCOUNT
|
||||
jmp doreti
|
||||
|
||||
/*
|
||||
* Call gate entry for FreeBSD ELF and Linux/NetBSD syscall (int 0x80)
|
||||
@ -203,7 +216,6 @@ IDTVEC(lcall_syscall)
|
||||
SUPERALIGN_TEXT
|
||||
IDTVEC(int0x80_syscall)
|
||||
pushl $2 /* sizeof "int 0x80" */
|
||||
syscall_with_err_pushed:
|
||||
subl $4,%esp /* skip over tf_trapno */
|
||||
pushal
|
||||
pushl %ds
|
||||
|
@ -226,7 +226,9 @@ db_nextframe(fp, ip, p)
|
||||
} else if (!strncmp(name, "Xintr", 5) ||
|
||||
!strncmp(name, "Xfastintr", 9)) {
|
||||
frame_type = INTERRUPT;
|
||||
} else if (!strcmp(name, "syscall_with_err_pushed")) {
|
||||
} else if (!strcmp(name, "Xlcall_syscall")) {
|
||||
frame_type = SYSCALL;
|
||||
} else if (!strcmp(name, "Xint0x80_syscall")) {
|
||||
frame_type = SYSCALL;
|
||||
}
|
||||
}
|
||||
|
@ -191,7 +191,20 @@ IDTVEC(lcall_syscall)
|
||||
pushfl /* save eflags */
|
||||
popl 8(%esp) /* shuffle into tf_eflags */
|
||||
pushl $7 /* sizeof "lcall 7,0" */
|
||||
jmp syscall_with_err_pushed
|
||||
subl $4,%esp /* skip over tf_trapno */
|
||||
pushal
|
||||
pushl %ds
|
||||
pushl %es
|
||||
pushl %fs
|
||||
mov $KDSEL,%ax /* switch to kernel segments */
|
||||
mov %ax,%ds
|
||||
mov %ax,%es
|
||||
mov $KPSEL,%ax
|
||||
mov %ax,%fs
|
||||
FAKE_MCOUNT(13*4(%esp))
|
||||
call syscall
|
||||
MEXITCOUNT
|
||||
jmp doreti
|
||||
|
||||
/*
|
||||
* Call gate entry for FreeBSD ELF and Linux/NetBSD syscall (int 0x80)
|
||||
@ -203,7 +216,6 @@ IDTVEC(lcall_syscall)
|
||||
SUPERALIGN_TEXT
|
||||
IDTVEC(int0x80_syscall)
|
||||
pushl $2 /* sizeof "int 0x80" */
|
||||
syscall_with_err_pushed:
|
||||
subl $4,%esp /* skip over tf_trapno */
|
||||
pushal
|
||||
pushl %ds
|
||||
|
Loading…
Reference in New Issue
Block a user