int's and bus error

Raunchy McSmutbag int0x80 at hotmail.com
Sat Apr 26 21:27:01 PDT 2003


Hey =) What im trying to do is run vm86 interrupts from a userland process 
(int 10h in particular). So ive tried doing..

int switch_mode(void)
{
   struct vm86_init_args vm;
   /* use all interrupts */
   memset(&vm, 0, sizeof(struct vm86_init_args));
   return(i386_vm86(VM86_INIT, &vm));
}

to switch to vm86 mode. This works fine. Then i do the actual int 10h

void mode_13h(void)
{
   __asm("xorl %eax, %eax\n"
         "movl $0x13, %eax\n"
         "int $0x10\n");
}

I get a bus error an int $0x10. I posted on comp.unix.programmer and was 
informed that i wasnt really running in virtual mode.

http://groups.google.ca/groups?q=comp.unix.programmer+jack+hammer&hl=en&lr=&ie=UTF-8&oe=UTF-8&scoring=d&selm=20030426085538.GB2997%40iv.nn.kiev.ua&rnum=1

What is it that i need to do to go to vm86 and execute that code?

_________________________________________________________________
The new MSN 8: smart spam protection and 2 months FREE*  
http://join.msn.com/?page=features/junkmail



More information about the freebsd-hackers mailing list