Re: SCE-MI Service Loop: Some Questions


Subject: Re: SCE-MI Service Loop: Some Questions
From: Stickley, John (john_stickley@mentorg.com)
Date: Tue Jan 27 2004 - 13:32:08 PST


Per,

More responses to your e-mails ...

Bojsen, Per wrote:
> Hi,
>
> this was originally sent to Brian and Duaine and Brian asked me to
> forward it to the mailing list. Hopefully the list is up now.
>
> I have some questions regarding the SCE-MI service loop:
>
> 1) It is not clear to me whether the g() callback must be called
> for each message transferred or whether the SCE-MI service
> loop can transfer everything it knows about first, and then
> call g()? Actually, I am reading example 5.3.3.6.1 again
> and in that example it states that g() is called for each
> message processed. Does this refer to only input messages,
> or both input and output messages?

johnS:
The intent was to call g() (if defined) for each distinct output
message and each distinct input ready callback. In other words,
each time you would call a callback for any reason - be it a
receive callback or an input ready callback.

g() was not intended to be called for input messages.

I do agree the wording is vague here and should be clarified.

> 2) The pending argument of g() is supposed to indicate whether
> there is at least one message pending. It is not clear whether
> this refers to input messages, output messages, or both. Input
> messages makes sense to me, but it may not be possible for the
> service loop to know whether output messages are pending on the
> hardware side. In the fourth paragraph from the bottom of
> p. 43, there is a distinction between messages `pending to be
> sent' and 'arriving messages'. This would seem to support the
> interpretation that only input messages figure in the pending
> argument.

johnS:
I agree there was some additional vagueness in the spec. Actually
the intent here, again, was output messages and input ready
notifications, and distinctly *not* input messages. In otherwords,
only things coming from hardware. The flag is 1 if there is at least
one message pending from hardware when ::ServiceLoop() is called and
0 if ::ServiceLoop() is called at a time when the S/W side is aware
of no messages pending from the hardware.

>
> Thanks,
> Per
>
> --
> Per Bojsen Email: <bojsen@zaiqtech.com>
> Zaiq Technologies, Inc. WWW: http://www.zaiqtech.com
> 78 Dragon Ct. Tel: 781 721 8229
> Woburn, MA 01801 Fax: 781 932 7488
>

-- johnS

______________________________/\/ \ \
John Stickley \ \ \
Principal Engineer \ \________________
Mentor Graphics - MED \_
17 E. Cedar Place \ john_stickley@mentor.com
Ramsey, NJ 07446 \ Phone: (201) 818-2585
________________________________________________________________



This archive was generated by hypermail 2b28 : Tue Jan 27 2004 - 13:37:01 PST