There is a macro called *common_interrupt* which calls do_irq. "arch/x86/kernel/entry_32.S"
Please refer ULK page 162 for more description. Can you please share the data sheet of x86. Regards, Prabhu On Mon, Sep 20, 2010 at 7:20 AM, Sri Ram Vemulpali <[email protected]>wrote: > Thanks for the replies. > > I have another question. Thanks in advance for clarifications. > > I was wondering who calls the do_irq function. > I mean when interrupts occurs processor should handle it by interrupting > current task. > So, when interrupts occurs in linux kernel, then, did processor jumps > directly to do_irq > or does it executes any other function before entering in to do_irq. > > If processor directly jumps to do_irq, then how does processor knows what > to execute > when interrupts happens. I mean, Is there anyway to set in linux kernel to > tell processor > to jump to this location when an interrupt or exception happens. I am not > talking about > interrupt subsystem, which is done in do_irq, checking what interrupt > occurred by reading bus, > and calling appropriate handler. > > Let me know whether my understanding is right. > > Thanks, > Sri. > > > On Sun, Sep 19, 2010 at 7:27 AM, arshad hussain <[email protected]>wrote: > >> On 9/19/2010 4:49 AM, Sri Ram Vemulpali wrote: >> >>> Hi all, >>> >>> This question is regarding Interrupt descriptor table. Why is the >>> IDTR 48-bits wide and >>> >> >> 16Bit Limit + 32 bit Address = 48bits of IDTR. >> >> >> why do we need limit field in the IDTR. >> >> Because if we access beyond defined interrupt there will >> be general protection fault. >> >> >> Since we know there are 256 interrupts or exceptions possible, can't >>> we know boundary by deriving it by length of IDT field. >>> >> >> All interrupts are not always defined. There may be fewer >> interrupts defined depending upon the requirements. Looking >> up the 'limits' field is faster & less error prone than >> find the length of the IDT, which i guess could only be >> done via probing for all slots with has present flag set to 0. >> >> >> Also, why is the IDT entry is 8 bytes long. >>> >> This 8 byte data structure is explained in intel's manual. >> >> And how is the interrupt >> >>> line sharing is provided. Is sharing provided at OS code level. >>> >> >> I did not see any explanation of sharing at Intel manual (data sheet >>> of x86 system programming guide). Any thoughts. >>> >>> Please clarify. Thanks. >>> >>> >>> -- >>> Regards, >>> Sri. >>> >>> >> Thanks. >> >> -- >> To unsubscribe from this list: send an email with >> "unsubscribe kernelnewbies" to [email protected] >> Please read the FAQ at http://kernelnewbies.org/FAQ >> >> > > > -- > Regards, > Sri. > >
