init_librm() and prot_call() are now real-mode far calls.

install() now calls relocate(), moves the protected-mode code to the new
location, and calls hide_etherboot().
This commit is contained in:
Michael Brown
2006-05-25 00:06:45 +00:00
parent 4d81b48504
commit 89da833c5d
4 changed files with 120 additions and 90 deletions

View File

@@ -393,7 +393,8 @@ static void hook_int13 ( void ) {
"\nint13_wrapper:\n\t"
"orb $0, %%al\n\t" /* clear CF and OF */
"pushl %0\n\t" /* call int13() */
"data32 call prot_call\n\t"
"pushw %%cs\n\t"
"call prot_call\n\t"
"jo 1f\n\t" /* chain if OF not set */
"pushfw\n\t"
"lcall *%%cs:int13_vector\n\t"