Re: int 0x40

Brian Gerst (bgerst@didntduck.org)
Fri, 18 Jan 2002 12:47:33 -0500


Raman S wrote:
>
> Hi,
> I relatively new to the kernel and am trying to understand how the linux
> kernel handles interrupts. For this I attempted to
> create an int 0x40 by adding a set_system_gate(64, &system_call) in traps.c.
> I verfied by giving out print statements within set_system_gate that 64 is
> being set during initialization (though it isnt a surprise that it is being
> set). But when i give an int 0x40 in a user level assembly program I get
> segmentation fault, (a SIGSEGV signal is sent to the process). I have tried
> adding another function in entry.S called my_system_call and reproducing the
> code in system_call with a jmp ret_from_sys_call at the end. Also tried
> giving an empty C function for my_system_call all with the same result.

The IRQ setup code is probably overwriting it. You'll need to make the
code in i8259.c skip over vector 0x40 as well as SYSCALL_VECTOR (0x80).

--

Brian Gerst - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/