[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Plex86-devel] Plex86 works in FreeBSD
From: |
Byunghyun Oh |
Subject: |
[Plex86-devel] Plex86 works in FreeBSD |
Date: |
Wed, 29 Jan 2003 19:26:43 +0900 |
User-agent: |
Mutt/1.4i |
I made plex86 work in FreeBSD 4.6.2-RELEASE, but it works somewhat
problematically. Booting to FreeDOS is successful, but it is too slow.
Moreover, booting to Linux failed because of FPU non-supported (maybe).
Patches to source are all dirty hacks, but there are some important points:
almost everything in host-linux.c can be adopted in host-freebsd.c.
I explain here in a long, complex, and hard-to-understand manner.
<in host-linux.c>
. initGuestPhyMem, initMonitor function were used.
. PLEX86_SETINTR call was commented out.
. PLEX86_*TIMER, PLEX86_REGIO, PLEX86_IRQ calls exist.
: copy_from_user and copy_to_user function were used.
arg variable exists.
. plex86_ioctl's return value may be ioctl() function's return value.
<in host-freebsd.c>
. They had been changed to init_guest_phy_mem, init_monitor function, which
actually don't exist, but I recovered them to their originals.
. I also commented out PLEX86_SETINTR in host-freebsd.c.
. I copied PLEX86_*TIMER, PLEX86_REGIO, PLEX86_IRQ almost same.
: copyin and copyout function are used instead.
arg variable: unsigned long arg = *(unsigned long*) data;
these ideas were from already ported calls.
. MOST DIRTY HACK: By trial-and-error guessing, I found plex86_ioctl's return
value except 0 is just error code in errno variable, and ioctl() function
just returns -1 instead. To solve this problem, original ioRegister_t and
timerRegister_t structs should be expanded to contain returning id. But
instead fixing enormous lines, I chose DIRTY HACK temporary, id is returned
into timerRegister_t.useconds and ioRegister_t.op, whose type is unsigned.
To use this hack, user.c and plugin.c was also patched.
I expect to make clean and complete patch soon, but it can take a long time
because I don't have thorough knowledge about FreeBSD's kernel and plex86.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Plex86-devel] Plex86 works in FreeBSD,
Byunghyun Oh <=