Re: why asmlinkage is needed?

Michael Elizabeth Chastain (mec@shout.net)
Sun, 16 Aug 1998 07:51:55 -0500


Hi Andi,

mec> The asmlinkage is for the benefit of user-space C++ programs that
mec> include kernel headers.

andi> Not really. System calls are called through the int 0x80 interface
andi> with stubs in the libc, and the user program never sees the internal
andi> kernel symbol table. Linux is not a DLL.
andi>
andi> asmlinkage is just a historical remnant from the great deays when Linux
andi> was writen in C++ (somewhere around 0.97 I think).

What was I thinking? Of course I'm wrong here. I should have said:
I don't know where the asmlinkage comes from, but it doesn't work
properly with user-space C++ programs that include kernel headers.
(That's where I first noticed it).

For instance, on linux 2.0.33, compile a C++ program that includes
<linux/md.h>, which has user-space ioctl definitions. The compilation
will blow up on a typedef for lcall7 in <linux/personality.h>.

This problem lasted a long ways into the 2.1.XX series.

Regards,

Michael Chastain
<mailto:mec@shout.net>
"love without fear"

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.altern.org/andrebalsa/doc/lkml-faq.html