Hi,

Le Sun, 16 Sep 2007 08:26:03 -0700 (PDT),
Pawel K <[EMAIL PROTECTED]> a écrit :

> 1. include/linux/linkage.h:64
> 2. include/asm-i386/linkage.h:6
> 
> Which is the proper file containing the macro?
> What is the quickest way to know it ?

The file include/linux/linkage.h starts by including
include/asm/linkage.h. As asm is a symlink to asm-$(ARCH), if your arch
is i386, it includes include/asm-i386/linkage.h. This file defines the
fastcall macro, and the FASTCALL macro as well.

Then later, the include/linux/linkage.h does:

#ifndef FASTCALL
#define FASTCALL(x)     x
#define fastcall
#endif

So it defines FASTCALL and fastcall to nothing only if it hasn't
already been defined. To sum up, FASTCALL and fastcall expand to
nothing on all arches, except on i386 where they expand to what's
defined in include/asm-i386/linkage.h.

This sort of macro trickery is very usual: a generic include file
defines a default value, but allows it to be overriden by an
architecture-specific include file.

Sincerly,

Thomas
-- 
PETAZZONI Thomas - [EMAIL PROTECTED] 
http://{thomas,sos,kos}.enix.org - Jabber: [EMAIL PROTECTED]
http://{agenda,livret}dulibre.org - http://www.toulibre.org
Fingerprint : 0BE1 4CF3 CEA4 AC9D CC6E  1624 F653 CB30 98D3 F7A7

Attachment: signature.asc
Description: PGP signature

Reply via email to