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

Reply via email to