Hi Kees,
On 21 Feb 2009, at 22:20, Kees Grinwis wrote:
Hello Francis,
I'm more or less interested in RPCEmu on OS X - I'm currently typing
this on a MacBook pro in Linux, due to the fact that a few months ago
there wasn't an easy compile available for OS X. However I would like
to have a possibility to compile RPCEmu on Linux, OS X and Windows...
2009/2/11 Francis Devereux <[email protected]>:
On 8 Feb 2009, at 22:08, Francis Devereux wrote:
I have also had a look at networking on OS X. I had the same
problem with
kernel panics as Timothy Coleman, but I copied network-linux.c to
network-macosx.c and rewrote it to use threads instead of signals.
This
prevented the panics (not really sure why) but networking still
didn't work
properly. I then discovered that TunTapOSX doesn't include the 4
byte
ethernet frame preamble when reading from the tap device or expect
it when
writing to it. After I changed network-macosx.c to take this into
account
I got networking to work, with RISC OS 4.02 running on the guest.
OK. And this is still with the EtherRPCEm module as would be used in
Linux?
Yes, the RISC OS side of the networking is the same as it is in Linux.
My code isn't really ready for submission yet because (a) it uses
AuthExecuteWithPrivileges to run /sbin/ifconfig, which the Apple
docs seem
to suggest isn't secure (this could be avoided by writing a
privileged
helper tool, I've done this before and would be willing to do it
for RPCEmu
networking if people are interested and it would get committed to
SVN) and
I would like to have the Mac OS X version to behave as a proper OS X
application, so an helper tool would be appreciated.
OK, I have already been working on producing an OS X application (i.e.
RPCEmu.app directory). There is some information about this and code
in my earlier email to the list (subject: "Mac OS X Cocoa GUI for Mac
OS X").
I'm also ablo to get the changed source committed into CVS.
Great, I think that the dynarec patch would be OK to commit now, as
long as it doesn't break things on Linux or Windows (I don't think it
will but I haven't had time to check).
I'm in two minds about whether the cocoa/app directory stuff should be
committed yet: it does provide some improvements on Mac OS X and
shouldn't break things on Linux or Windows, but I need to read up on
threading on Mac OS X, in particular the rules about making Cocoa API
calls on multiple threads, and check that my code isn't doing anything
it shouldn't.
The network code seems to work but needs more testing and clean up so
I will do this and submit a patch in a few weeks. If anyone wants to
have a look before that I can publish what I've got, just let me know.
(b) RPCEmu has become much less stable on my system for unknown
reasons
which makes testing difficult - it crashes quite a lot and I can no
longer
install the RO 4.02 boot sequence from a CD image - the progress
bar of the
RISC OS installer program stops at about 85% although the hourglass
is still
animated so the guest OS hasn't completely crashed. I've tried
reverting my
recent code changes but this hasn't helped.
Hm. This is not nice, the problems persits even when you get a clean
copy (either from the tarball or subversion?)
I will try starting from scratch with a clean copy and see if that
helps narrow down the cause of the problems.
I might not have much time over the next month or so to work on RPCEmu
because I'll be moving but I will work on the following things when I
have time:
- narrow down stability problems I've been having
- make sure Cocoa code follows threading rules
- add RAM, CPU etc. options to Cocoa GUI
- see if my Allegro changes can be merged upstream
- clean up and publish OS X networking code
- audit the dynarec code looking for places that need stack alignment
on OS X (so far I've just put it in the obvious places / places that
not having it caused crashes)
Cheers,
Francis
_______________________________________________
Rpcemu mailing list
[email protected]
http://www.riscos.info/cgi-bin/mailman/listinfo/rpcemu