Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 27 Apr 2003 04:27:00 +0000
From:      "Raunchy McSmutbag" <int0x80@hotmail.com>
To:        freebsd-hackers@freebsd.org
Subject:   int's and bus error
Message-ID:  <Law11-F35h0UyvzrBLz00009247@hotmail.com>

next in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Law11-F35h0UyvzrBLz00009247>