linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Question about set_intr_gate_ist()
@ 2008-01-21  6:23 jidong xiao
  2008-01-21 14:36 ` Rene Herman
  0 siblings, 1 reply; 2+ messages in thread
From: jidong xiao @ 2008-01-21  6:23 UTC (permalink / raw)
  To: linux-kernel

Hi,
  I know there is set_intr_gate(n,addr) which is used to insert an
interrupt gate in the n th IDT entry. But I don't know what the usage
of set_intr_gate_ist()?

  Take the code below for example,
static inline void set_intr_gate_ist(int nr, void *func, unsigned ist)
{
	BUG_ON((unsigned)nr > 0xFF);
	_set_gate(&idt_table[nr], GATE_INTERRUPT, (unsigned long) func, 0, ist);
}
  What does "ist" mean?
  In particular, note that this function is used only in x86_64 arch.
Can anyone explain this for me, thanks.

localhost:/usr/src/linux-2.6.22.1 # grep -r set_intr_gate_ist *
arch/x86_64/kernel/traps.c:     set_intr_gate_ist(1,&debug,DEBUG_STACK);
arch/x86_64/kernel/traps.c:     set_intr_gate_ist(2,&nmi,NMI_STACK);
arch/x86_64/kernel/traps.c:     set_intr_gate_ist(8,&double_fault,
DOUBLEFAULT_STACK);
arch/x86_64/kernel/traps.c:
set_intr_gate_ist(12,&stack_segment,STACKFAULT_STACK);
arch/x86_64/kernel/traps.c:     set_intr_gate_ist(18,&machine_check, MCE_STACK);
include/asm-x86_64/desc.h:static inline void set_intr_gate_ist(int nr,
void *func, unsigned ist)


Regards
Jason

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2008-01-21 14:40 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-01-21  6:23 Question about set_intr_gate_ist() jidong xiao
2008-01-21 14:36 ` Rene Herman

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).