Query about cplusplus in linkage.h
Baruch Siach
baruch at tkos.co.il
Mon Nov 22 03:30:10 EST 2010
Hi rocky,
On Sat, Nov 20, 2010 at 12:17:02PM +0800, rocky wrote:
> I am a little confused about the following definition :
>
> --------------include/linux/linkage.h-----------
> #ifdef __cplusplus
> #define CPP_ASMLINKAGE extern "C"
> #else
> #define CPP_ASMLINKAGE
> #endif
>
> #ifndef asmlinkage
> #define asmlinkage CPP_ASMLINKAGE
> #endif
>
> all system call functions are marked with asmlinkage, as well as other kernel function like printk/schedule/do_softirq
>
>
> so every asmlinkage function has extern "C" attribute if cplusplus is defined, which definitely happens when compiling C++ code.
>
> I dont get it when cplusplus is needed when compiling kernel?
It isn't.
> Can anyone help me out of this little misunderstanding?
Userspace C++ code may include kernel header files. Making the exported
function calls extern "C" makes it easier to build such applications.
baruch
--
~. .~ Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
- baruch at tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -
More information about the linux-arm-kernel
mailing list