I have a question about the inline assembly in local_bh_enable, which is in asm-i386/softirq.h.
.....
"2: pushl %%eax; pushl %%ecx; pushl %%edx;" \
"call %c1;" \
^^^
..... \
: /* no output */ \
: "r" (ptr), "i" (do_softirq) \
/* no registers clobbered */ ); \
I don't understand why it uses "call %c1" instead of "call %1". I searched some online tutorials about inline assembly, but none of them mentioned this. I wrote a small test code to try it and it works. Is it a special syntax for "call"? Can someone give an explanation?
Thanks so much!
-- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ FAQ: http://kernelnewbies.org/faq/