Date: Mon, 10 Jul 2006 21:53:42 +0800 From: mag@intron.ac To: "Joseph Koshy" <joseph.koshy@gmail.com> Cc: freebsd-hackers@freebsd.org, delphij@delphij.net Subject: Re: kern/99979: Get Ready for Kernel Module in C++ Message-ID: <1152540567.99616@origin.intron.ac> In-Reply-To: <84dead720607092015q7f1701abse143f3855c2aa95a@mail.gmail.com> References: <200607092136.k69LaNDX055391@www.freebsd.org> <84dead720607092015q7f1701abse143f3855c2aa95a@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Joseph Koshy wrote: > >> I would write my kernel module in C++, just like IOKit >> of OpenDarwin. Thus, all conflicts against C++ in current >> FreeBSD kernel source must be swept out firstly. > > Your patch is missing the following: > > - runtime support for static constructors and destructors > - runtime support for C++ exceptions > - support for RTTI > > Don't forget that these need to work in kernel modules > too. > > -- > FreeBSD Volunteer, http://people.freebsd.org/~jkoshy You are quite right. But those C++ features should be implemented step by step. Actually, Apple hasn't implemented all C++ features in Darwin/Mac OS X so far. See Apple's document: http://developer.apple.com/documentation/DeviceDrivers/Conceptual/IOKitFundamentals/Features/chapter_2_section_6.html My original motivation to write FreeBSD kernel module in C++ is to create a more handy object model inside FreeBSD kernel. Naturally, I choose OpenDarwin's IOKit as an example. But I wouldn't consider it to be ideal, because it is still obscure to learn/master. I will implement C++ features you pointed one by one in the future. Especially for RTTI, I always regard virtual member function as part of C++'s soul. If you agree with me, please commit 4 patches in the following base64-encoded bzip2-ed tarball ("b64decode -p testcpp.b64|tar xjvf -"). ------------------------------------------------------------------------ From Beijing, China begin-base64 644 - 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 ====
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1152540567.99616>