To initialise the system call and suchlike traps,
arch/i386/kernel/traps.c does
set_system_gate(3,&int3); /* int3-5 can be called from all */
set_system_gate(4,&overflow);
set_system_gate(5,&bounds);
...
set_system_gate(SYSCALL_VECTOR,&system_call);
However, any other ones I add (say, with vectors 0x70, 0x71, 0x84,
0x85) vanish after the system has booted further. printk shows that
idt_table is correctly updated immediately after the set_system_gate
but once the system has booted the entries for my new traps have
reverted. (printk telemetry available on request). However, once the
system has booted, a little module which simply updates
idt_table[MY_NEW_VECTOR] directly works fine and "sticks". Help?
(Or, more accurately "Aaarrrgh?").
--Malcolm
-- Malcolm Beattie <mbeattie@sable.ox.ac.uk> Unix Systems Programmer Oxford University Computing Services - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org Please read the FAQ at http://www.tux.org/lkml/
This archive was generated by hypermail 2b29 : Fri Sep 15 2000 - 21:00:17 EST