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".
next prev parent 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