On Mon, Mar 19, 2007 at 10:49:46AM +0530, Rajat Jain wrote: > >As said by `Understanding linux kernel', all the 255 IDT (Interrupt > >Descriptor Table) entries are initialized in system initialization > >to the handler ignore_int. ignore_int job is to print "Unkown > >interrupt" and return to normal code: > > > >--> arch/i386/kernel/head.S: > >int_msg: > > .asciz "Unknown interrupt or fault at EIP %p %p %p\n" > >[...] > >ignore_int: > >[...] > > pushl $int_msg > > call printk > >[...] > > iret > > > >I've created a small module to test above code (having a doubt about > >a line) and I got a BUG and the message above wasn't printed. > > > >Here's the module code: > > > >#include <linux/module.h> > >MODULE_LICENSE("GPL"); > >/* IRQ 25 is reserved as said by Intel documentation, So > > * vector 25 is handled by ignore_int */ > >int init(void) { asm("int $25"); return 0;} > >module_init(init); > > > Not sure if this will be of help ... but software is not allow to > issue any interrupt that it wants. There is an allowable number of > interrupts that the software can issue, the rest of them have to be > raised in hardware. Are you sure that IRQ 25 is allowed to be issued > from software? > I've searched the i386 reference to see if there're vectors allowed from software and others which are not. I found no references except this paragraph: `` * Programmed. The instructions INTO, INT 3, INT n, and BOUND can trigger exceptions. These instructions are often called "software interrupts", but the processor handles them as exceptions. '' Could you please point me to a document that describes such a prohibited-from-software case (Googling didn't help) ? Thanks, -- Ahmed S. Darwish http://darwish.07.googlepages.com -- To unsubscribe from this list: send an email with "unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx Please read the FAQ at http://kernelnewbies.org/FAQ