Hi all, I'm getting little confused by some ignore_int (null interrupt handler) code in head.S. Code notifies the user about the unknown raised interrupt by below string:
int_msg: .asciz "Unknown interrupt or fault at EIP %p %p %p\n" and prints it using below code path: ignore_int: pushl %eax; pushl %ecx; pushl %edx; pushl %es; pushl %ds [...] pushl 16(%esp); pushl 24(%esp); pushl 32(%esp); pushl 40(%esp); pushl $int_msg [...] call printk ** But here's the state of stack before calling printk: ??? <-- 40(%esp) ??? <-- 36(%esp) --> (Automatically pushed by the processor) %eflags <-- 32(%esp) %cs <-- 28(%esp) %eip <-- 24(%esp) error-code <-- 20(%esp) --> (Pushed by first lines of ignore_int) %eax <-- 16(%esp) %ecx <-- 12(%esp) %edx <-- 8(%esp) %es <-- 4(%esp) %ds <-- %esp Does 40(%esp) hold a meaningfule value here ?. Also why passing 4 arguments after the string to prinkt while the string only has 3 conversion specifications (i.e., 3 * %p) ?. Best regards, -- Ahmed S. Darwish HomePage: http://darwish.07.googlepages.com Blog: http://darwish-07.blogspot.com - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/