comp.lang.ada
 help / color / mirror / Atom feed
From: claveman@inetworld.net (Charles H. Sampson)
Subject: Re: Support of Task Interrupt Entries
Date: 1998/10/13
Date: 1998-10-13T00:00:00+00:00	[thread overview]
Message-ID: <1998Oct13.183104.3784@nosc.mil> (raw)
In-Reply-To: EACHUS.98Oct8150309@spectre.mitre.org

In article <EACHUS.98Oct8150309@spectre.mitre.org>,
Robert I. Eachus <eachus@spectre.mitre.org> wrote:
>In article <1998Oct7.183511.17020@nosc.mil> csampson@inetworld.net (me) writes:
>
> >     According to LRM 1.1.2(6), Annex J is part of the core language 
> >  and must therefore be supported by any standard-conforming compiler.  
> > However, in J.7.1(1) we have, "Implementations are _permitted_ to allow 
> > the attachment of task entries to interrupts via the address clause."  
> > Does this mean that they are also permitted to disallow this?
>
>   The next paragraph should make it clear:
>
>   "The address of the task entry corresponds to a hardware interrupt
>in an implementation-defined manner."
>
>   The standard can't reasonably define a set of addresses and
>interrupts to support, so that is left to the implementors, who can
>choose none.  Of course, the rules of J.7.1 do apply to any interrupt
>entries that are supported.
>
> >     This is an important point to my current project, a real time sys-
> > tem with a very large number of interrupt handlers that is porting from 
> > Ada 83 to Ada 95.  The validated Ada compiler that we have selected does 
> > not support J.7.1.
>
>   Do they support the SP Annex? If they don't support the Systems
>Programming annex, it seems to me you need to choose another compiler.
>If they do claim to support the SP annex then you can use
>Ada.Interrupts.Reference to bind interrupts to task entries.  (See C.3.2(22))

     Actually, it looks to me like the second sentence of C.3.2(22) 
blesses this compiler's implementation.  It says, "This function 
[Ada.Interrupts.Reference] raises Program_Error if attaching task 
entries to interrupts ... is not supported."

     I thought I had read the pertinent sections of the LRM quite 
closely.  I even searched around a bit to see if "permitted" had been 
given a specialized, non-standard, meaning.  Now, on rereading those 
sections, I see that I missed a crucial point.  1.1.3(16) says that a 
standard-conforming implementation must support each capability 
_required_ by the core language.  Since J.7.1(1) says, "Implementations 
_are permitted_ ...," this is obviously not a requirement.  All very 
clear, once you see it.  Duh!

				Charlie
--
******

     For an email response, my user name is "sampson" and my host
is "spawar.navy.mil".




  reply	other threads:[~1998-10-13  0:00 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1998-10-07  0:00 Support of Task Interrupt Entries Charles H. Sampson
1998-10-08  0:00 ` Robert I. Eachus
1998-10-13  0:00   ` Charles H. Sampson [this message]
1998-10-14  0:00     ` Robert I. Eachus
replies disabled

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