From: wtien@pacific.urbana.mcd.mot.com (Wilson Tien) Subject: Re: GNU __asm__ Date: Tue, 4 May 1993 05:14:24 GMT
Minor clarification, not really related to GNU C's __asm__
syntax/semantics, but to clarify ANSI C construct:
>>>>> On 2 May 1993 08:48:51 -0400, mycroft@hal.gnu.ai.mit.edu (Charles Hannum) said:
> : "0" (__NR_##name), "g" ((long) (arg)) \
Charles> This says that `__NR_##name' is input in the same register as argument
Charles> 0 (the output above); i.e. eax. `arg' is input in any general-purpose
Charles> register or directly accessible memory location.
The token `##' is known as a special preprocessing token in ANSI C.
It is known as the token to GLUE two preprocessing token together. In the
original example, a macro-call to _syscall1 with second argument as `foo'
will cause the `__NR_##name' to be expanded into `__NR_foo', an argument
`bar' will lead to `__NR_bar'.
Hope it is clear now.
--- Wilson