Bläddra i källkod

Use TEXT16_CODE() rather than manually specifying ".code16" etc, since

our manual ".code32" will break a KEEP_IT_REAL build.
tags/v0.9.3
Michael Brown 18 år sedan
förälder
incheckning
19883779ba
1 ändrade filer med 14 tillägg och 18 borttagningar
  1. 14
    18
      src/arch/i386/interface/pcbios/int13.c

+ 14
- 18
src/arch/i386/interface/pcbios/int13.c Visa fil

@@ -391,24 +391,20 @@ static void hook_int13 ( void ) {
391 391
 	 * should not chain to the previous handler.  (The wrapper
392 392
 	 * clears CF and OF before calling int13()).
393 393
 	 */
394
-	__asm__  __volatile__ ( ".section \".text16\", \"ax\", @progbits\n\t"
395
-				".code16\n\t"
396
-				"\nint13_wrapper:\n\t"
397
-				"orb $0, %%al\n\t" /* clear CF and OF */
398
-				"pushl %0\n\t" /* call int13() */
399
-				"pushw %%cs\n\t"
400
-				"call prot_call\n\t"
401
-				"jo 1f\n\t" /* chain if OF not set */
402
-				"pushfw\n\t"
403
-				"lcall *%%cs:int13_vector\n\t"
404
-				"\n1:\n\t"
405
-				"call 2f\n\t" /* return with flags intact */
406
-				"lret $2\n\t"
407
-				"\n2:\n\t"
408
-				"ret $4\n\t"
409
-				".previous\n\t"
410
-				".code32\n\t" : :
411
-				"i" ( int13 ) );
394
+	__asm__  __volatile__ (
395
+	       TEXT16_CODE ( "\nint13_wrapper:\n\t"
396
+			     "orb $0, %%al\n\t" /* clear CF and OF */
397
+			     "pushl %0\n\t" /* call int13() */
398
+			     "pushw %%cs\n\t"
399
+			     "call prot_call\n\t"
400
+			     "jo 1f\n\t" /* chain if OF not set */
401
+			     "pushfw\n\t"
402
+			     "lcall *%%cs:int13_vector\n\t"
403
+			     "\n1:\n\t"
404
+			     "call 2f\n\t" /* return with flags intact */
405
+			     "lret $2\n\t"
406
+			     "\n2:\n\t"
407
+			     "ret $4\n\t" ) : : "i" ( int13 ) );
412 408
 
413 409
 	hook_bios_interrupt ( 0x13, ( unsigned int ) int13_wrapper,
414 410
 			      &int13_vector );

Laddar…
Avbryt
Spara