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