comp.lang.ada
 help / color / mirror / Atom feed
From: matthew_heaney@acm.org (Matthew Heaney)
Subject: Re: help about handling interrupts
Date: 1998/04/07
Date: 1998-04-07T00:00:00+00:00	[thread overview]
Message-ID: <matthew_heaney-ya023680000704980000060001@news.ni.net> (raw)
In-Reply-To: 3529047A.44EE08B8@cl.cam.ac.uk


In article <3529047A.44EE08B8@cl.cam.ac.uk>, Markus Kuhn
<Markus.Kuhn@cl.cam.ac.uk> wrote:

>Igor Pascual Sagastagoitia wrote:
>> 
>> I am learning ADA95 and I am searching for an example of attaching a
>> procedure when an interrupts rises.
>> I read the RM95 but I dont understand it too well because of my
>> language.
>> I am programming under GNAT 3.10 for a Linux platform.
>
>Like many of those hardware related questions, this is more a matter
>of your operating system than a matter of Ada. Therefore you should
>look into the Linux kernel first how interrupt handling is
>done there and not into the RM.
>
>User processes cannot directly handle interrupts under Linux.
>If you want to write an interrupt handler yourself, you have to
>do this in a loadable kernel module. You can write loadable kernel
>modules in Ada just like you can do this in C. You have to call a
>kernel function at module load time that registers your Ada
>procedure as an interrupt handler, and then the Linux kernel
>will call your Ada procedure whenever this interrupt comes in.

I don't understand this response.

In Ada 95, you attach protected procedure of a protected object to an
interrupt.  Section 19.6, INTERRUPT HANDLING, in Norm Cohen's book is
dedicated to this very topic.

No, the OS doesn't make any difference.  The syntax for specifying an
interrupt handler in Ada is the same for all platforms.

Basically, you declare a protected object, and use pragma Attach_Handler to
designate a protected procedure as the interrupt handler.

See also pragma Interrupt_Handler and package Ada.Interrupts.




  parent reply	other threads:[~1998-04-07  0:00 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1998-04-06  0:00 help about handling interrupts Igor Pascual Sagastagoitia
1998-04-06  0:00 ` Markus Kuhn
1998-04-07  0:00   ` Samuel Tardieu
1998-04-07  0:00     ` Markus Kuhn
1998-04-07  0:00       ` Robert Dewar
1998-04-08  0:00         ` The pain with standards Markus Kuhn
1998-04-08  0:00         ` help about handling interrupts Dale Stanbrough
1998-04-07  0:00   ` Jerry van Dijk
1998-04-07  0:00   ` Matthew Heaney [this message]
1998-04-07  0:00     ` Robert Dewar
1998-04-07  0:00       ` Matthew Heaney
1998-04-07  0:00     ` Markus Kuhn
     [not found]       ` <Er1oEK.IDB@world.std.com>
1998-04-07  0:00         ` Markus Kuhn
1998-04-07  0:00           ` Robert Dewar
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox