Set CF by default, clear on success (rather than clearing and setting

on failure).
pull/1/head
Michael Brown 2007-07-09 19:02:41 +01:00
parent f0c44f2f71
commit 8bce52d348
1 changed files with 4 additions and 2 deletions

View File

@ -409,9 +409,10 @@ static void int13 ( struct i386_all_regs *ix86 ) {
/* Negative status indicates an error */ /* Negative status indicates an error */
if ( status < 0 ) { if ( status < 0 ) {
ix86->flags |= CF;
status = -status; status = -status;
DBG ( "INT13 failed with status %x\n", status ); DBG ( "INT13 failed with status %x\n", status );
} else {
ix86->flags &= ~CF;
} }
ix86->regs.ah = status; ix86->regs.ah = status;
@ -433,7 +434,8 @@ static void hook_int13 ( void ) {
*/ */
__asm__ __volatile__ ( __asm__ __volatile__ (
TEXT16_CODE ( "\nint13_wrapper:\n\t" TEXT16_CODE ( "\nint13_wrapper:\n\t"
"orb $0, %%al\n\t" /* clear CF and OF */ "orb $0, %%al\n\t" /* clear OF */
"stc\n\t"
"pushl %0\n\t" /* call int13() */ "pushl %0\n\t" /* call int13() */
"pushw %%cs\n\t" "pushw %%cs\n\t"
"call prot_call\n\t" "call prot_call\n\t"