comp.lang.ada
 help / color / mirror / Atom feed
From: Jean-Pierre Rosen <rosen@adalog.fr>
Subject: Re: Access procedure to pointer
Date: Wed, 28 May 2008 17:26:01 +0200
Date: 2008-05-28T17:26:01+02:00	[thread overview]
Message-ID: <eitj1g.lh8.ln@hunter.axlog.fr> (raw)
In-Reply-To: <483D72F0.9090308@gmail.com>

S�bastien a �crit :
>> Why don't you simply use Ada.Interrupts?
> 
> Two reasons:
> 1) It didn't know it exists
> 2) It's not documented, and not intuitive, no example nothing to start.
> 
> As a matter of fact, the first problem is solved ;-), if you any help 
> about the second problem, I'll be happy to use standard package instead 
> of mine.
> 
Well, it is documented in the reference manual, and a quick search for 
the word "interrupt" in the index would have put you right there...

However, I think this is an interesting example. I guess the OP simply 
thought "oh, I must handle interrupts, therefore I must interface with 
the system - i.e. use C)", he didn't even imagine that it was provided 
out of the box...

Short answer: to attach statically:
    pragma Attach_Handler (PO.P, Interrupt_Number);

to attach dynamically:
    Ada.Interrupts.Attach_Handler (PO.P'Access, Interrupt_Number);

Note that the handler must be a *protected* procedure (i.e. a procedure 
declared in a protected type), to model the non-reentrant nature of 
interrupt handlers.

-- 
---------------------------------------------------------
            J-P. Rosen (rosen@adalog.fr)
Visit Adalog's web site at http://www.adalog.fr



  reply	other threads:[~2008-05-28 15:26 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-05-27 11:19 Access procedure to pointer Sébastien
2008-05-27 12:05 ` Ludovic Brenta
2008-05-27 17:45   ` Sébastien
2008-05-27 18:26     ` Dmitry A. Kazakov
2008-05-28  9:06       ` Sébastien
2008-05-28 10:13         ` Jean-Pierre Rosen
2008-05-28 14:57           ` Sébastien
2008-05-28 15:26             ` Jean-Pierre Rosen [this message]
2008-05-28 18:16               ` Jeffrey R. Carter
2008-05-28 18:30                 ` Robert A Duff
2008-05-28 21:36               ` Adam Beneschan
2008-05-28 23:02                 ` Sebastien Morand
2008-05-29  0:58                   ` Jeffrey R. Carter
2008-05-29  9:06                     ` Sébastien
2008-05-29 20:20                       ` Jeffrey R. Carter
2008-05-29  8:43                   ` Jean-Pierre Rosen
2008-05-29 10:18                     ` Sébastien
2008-05-29 11:34                       ` Jean-Pierre Rosen
2008-05-31  5:52                   ` Stephen Leake
2008-06-02 12:24                     ` Sébastien
2008-06-02 12:55                       ` Georg Bauhaus
2008-06-02 18:19                       ` Jeffrey R. Carter
2008-06-02 18:25                         ` Pascal Obry
2008-06-03 10:06                         ` Sébastien Morand
2008-06-03 13:26                           ` Ed Falis
2008-06-03 19:41                       ` Stephen Leake
2008-06-02 15:35                     ` Adam Beneschan
2008-06-02 17:11                       ` Jean-Pierre Rosen
2008-06-03 19:43                       ` Stephen Leake
2008-05-28 15:29             ` Sébastien
2008-05-28 17:00           ` Simon Wright
2008-05-27 20:06     ` Jeffrey R. Carter
2008-05-27 22:27     ` Adam Beneschan
2008-05-27 16:51 ` Jeffrey R. Carter
2008-05-27 17:42   ` Sébastien
2008-05-27 20:02     ` Jeffrey R. Carter
2008-05-27 20:45     ` Jacob Sparre Andersen
2008-05-28  8:48       ` Sébastien
2008-05-28 20:41         ` Jacob Sparre Andersen
replies disabled

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