Re: NewQ: Difference between an isr and a subroutine is that an isr has no arguments




"Grant Edwards" <grante@xxxxxxxx> wrote in message
news:12mpcnu2arb6854@xxxxxxxxxxxxxxxxxxxxx
On 2006-11-28, Wilco Dijkstra <Wilco_dot_Dijkstra@xxxxxxxxxxxx> wrote:

The hardware could set up a few registers and the compiler
would assign parameters to those registers on functions marked
as interrupts - very easy to implement. You could ignore them if
you didn't support them.

All of the processors I've used already do that (store return
address and status information in a known location), so I guess
all that's missing is a few lines of code in the compilers.

The return address is can already be made available via an
intrinsic and many compilers support this. I was thinking more
along the lines of allowing the user not only to choose which
interrupt routine is called for a certain interrupt but also some
parameters to pass to the routine when that interrupt triggers.
It is in effect an alternative to ARM's FIQ scheme but rather than
spending lots of transistors on 7 extra registers that are hardly
used, they could be loaded for free while the CPU branches to
the handler.

Wilco


.



Relevant Pages

  • Re: AMD to leave x86 behind?
    ... >>> doesn't really support the segmentation model). ... > Nobody is not buying PC's because of its' interrupt handling. ... interrupt had a block of registers that got loaded. ... SYSCALL/SYSRET is less RISCy, less fast, but has ...
    (comp.arch)
  • Too many rtc interrupts
    ... Stepping- SERR+ FastB2B- ... Interrupt: pin A routed to IRQ 11 ... # ACPI Support ...
    (Linux-Kernel)
  • [PATCH 06/13] Char: cyclades, overall cleanup
    ... * Prevent users from opening non-existing Z ports. ... * Implemented full support for non-standard baud rates. ... * Driver now reports physical instead of virtual memory addresses. ... * Fixed SMP locking in Cyclom-Y interrupt handler. ...
    (Linux-Kernel)
  • [PATCH 13/79] cyclades: overall cleanup
    ... * Prevent users from opening non-existing Z ports. ... * Implemented full support for non-standard baud rates. ... * Driver now reports physical instead of virtual memory addresses. ... * Fixed SMP locking in Cyclom-Y interrupt handler. ...
    (Linux-Kernel)
  • libata strangeness in 2.6.2-mm1 based kernel
    ... host bus clock speed is 400.0851 MHz. ... PCI Interrupt Link ... Linux Plug and Play Support v0.97 Adam Belay ... PCI Interrupt Link enabled at IRQ 23 ...
    (Linux-Kernel)