Ok here goes...
I apologise if this may be slightly offtopic for l4-hackers but I seem to be stuck with something you people should have lot of experience with.
Namely I'm trying to use OSKit (both official and DROP versions) to write a kernel in C++.
I'm sure you're all aware of OSKit's unfriendliness toward C++ but there is one main thing that's preventing me from getting any work done.
I'm starting off by creating some fairly thin wrappers around some structures and functions of oskit and once I've done that I'll go on and strip code out of oskit and re-write it in c++. But right now, there's a problem....
oskit_linux_init_osenv(environment); oskit_linux_init_devs();
oskit_linux_init_devs() hangs when the partition check kicks-in, somewhere in genhd.c, when doing msdos_partition(). If I compile one of the examples, x86/linux_fs_com.c with gcc everything works fine. However if I compile a c++ version of the same code, using same calls in the same order the linux genhd.c hangs when it tries to check partitions. And I get osenv_process_release with a hex dump.
Anyone care to help me out here?
funny how freebsd drivers work flawlessly though, isn't it?
Thanks a lot and best regards!
Pele
P.S. I've tried with oskit10 from DROP but as soon as my kernel starts booting I get VGA garbage (vertical red lines) and the machine hangs. Actually it's not a machine, it's VMWare 4.0.5 but that shouldn't be a problem anyway. Note: all examples work fine so VMWare is not the problem.
l4-hackers@os.inf.tu-dresden.de