Oh, my question is really no clear. Actually, there is a simicolon at
the end of the declaration of IRQ0x01_interrupt, while the statement
of __asm__ is not enclosed by a pair of brace, namely that no the body
of function. So, I don't think this is a traditional definition of
function.
ps: the original excerpt of the code is a macro like this:
#define BUILD_IRQ(nr) \
asmlinkage void IRQ_NAME(nr); \
__asm__( \
"\n"__ALIGN_STR"\n" \
SYMBOL_NAME_STR(IRQ) #nr "_interrupt:\n\t" \
"pushl $"#nr"-256\n\t" \
"jmp common_interrupt");
2010/8/7 Mulyadi Santosa <[email protected]>:
> On Fri, Aug 6, 2010 at 02:52, Parmenides <[email protected]> wrote:
>> Hi,
>> In i8259.c, there is an odd funciton definition as follows:
>>
>> asmlinkage void IRQ0x01_interrupt();
>> __asm__( ...);
>
> you mean asmlinkage thing? here's the explanation:
> http://kernelnewbies.org/FAQ/asmlinkage
>
> And if you ask about __asm__, that's, AFAIK, a way to directly embed
> assembly instruction into your C code.
>
> --
> regards,
>
> Mulyadi Santosa
> Freelance Linux trainer and consultant
>
> blog: the-hydra.blogspot.com
> training: mulyaditraining.blogspot.com
>
--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to [email protected]
Please read the FAQ at http://kernelnewbies.org/FAQ