On Mon, May 14, 2001 at 02:52:16PM -0400, Kevin Lawton wrote:
> OK plex86 testers, go nuts!  You can get the Pragma boot floppy image
> and FreeDOS boot disk image files from the ftp site in the guestOS
> directory.

Okay, I went completely bonkers and tried it :) The diff below is needed
for a NetBSD/i386 host.

It booted FreeDOS without problems. I didn't have much time, but I
also tried booting a NetBSD install floppy. This bombed out at
some point, with "Panic w/ abort_code=1", which appears to have
come from:



Core was generated by `plex86'.
Program terminated with signal 11, Segmentation fault.

#0  0x804d97b in i386_decode_raw (ctx=0xbfbfd4b4, value=0xbfbfd1f0, size=1)
    at decode.c:1658
#1  0x804db03 in i386_decode (ctx=0xbfbfd4b4, dc=0xbfbfd438) at decode.c:1715
#2  0x804d4c3 in vm_debug_exception () at user.c:747
#3  0x804cbd8 in vm_event_loop () at user.c:372
#4  0x804bdb0 in main (argc=3, argv=0xbfbfd6f0) at plex86.c:284
#5  0x804b71d in ___start ()

#0  0x804d97b in i386_decode_raw (ctx=0xbfbfd4b4, value=0xbfbfd1f0, size=1)
    at decode.c:1658
1658        case 1: *value = *(unsigned char  *)(ctx->base + ctx->offset);  brea

(gdb) print ctx->base
$2 = (void *) 0x48158000
(gdb) print ctx->offset
$3 = -1072691907



ctx->offset seems to have a ridiculous value.
I don't have time to look at this myself, unfortunately.

Anywhere, here's that diff.

- Frank


*** kernel/host-netbsd.c.orig   Mon May 14 17:38:27 2001
--- kernel/host-netbsd.c        Mon May 14 20:57:42 2001
***************
*** 157,162 ****
--- 157,164 ----
  #endif
                 }
  
+                dtInitVOpcodeMaps();
+ 
                break;
                
        case LKM_E_UNLOAD:
***************
*** 417,422 ****
--- 419,426 ----
                vm->prescanRing3 = arg;
                break;
        }
+       case PLEX86_GENERIC:
+               return 0;
  
        default:
                log(LOG_WARNING, "plex86: unknown ioctl %lx\n", cmd);
*** config.h.in.orig    Tue Dec 12 15:49:30 2000
--- config.h.in Mon May 14 21:04:37 2001
***************
*** 43,48 ****
--- 43,56 ----
  
  typedef unsigned int Boolean;
  
+ /*
+  * NetBSD just has off_t, which is 64 bits, not loff_t.
+  */
+ #ifdef __NetBSD__
+ typedef unsigned long long loff_t;
+ #endif
+ 
+ 
  #define PLEX86    1
  
  #ifndef UNUSED

Reply via email to