[ECOS] Variable size Message boxes

Jonathan Larmour jlarmour@redhat.com
Tue Oct 31 09:17:00 GMT 2000

Bart Veer wrote:
> >>>>> "Rajendran," == Rajendran, Balakumaran (CTS) <RBalakum@chn.cts-corp.com> writes:
>     Rajendran> I need to create message boxes of variable sizes for my
>     Rajendran> application. In ECOS, the size of the message box can
>     Rajendran> be configured by the
>     Rajendran> CYGNUM_KERNEL_SYNCH_MBOX_QUEUE_SIZE parameter. But all
>     Rajendran> the message boxes created will be of the same size. Is
>     Rajendran> there a way by which variable size message boxes can be
>     Rajendran> created and used?
> Not with the message boxes provided by the kernel.
> It is not clear whether you want message boxes which can change size
> dynamically, or if you want message boxes of different but fixed sizes.

It the latter you can use POSIX message queues from <mqueue.h> from the
EL/IX code in CVS. Or even use the Cyg_MQueue type which is part of the
kernel, in <cyg/kernel/mqueue.hxx>, but which is not part of the *exported*
API because it is solely present to support POSIX message queues. This
means C++ for a start, and the documentation for that API is whatever is in
mqueue.hxx :-). It's a private internal API.
> The former would require some form of dynamic memory allocation, i.e.
> if you post to a full message box then the kernel would need to extend
> the message box.

There's a simpler way to do it. Just make the kernel message boxes take
void *'s, and then it is up to the *application* to malloc stuff, and then
when it is received, free it. That is the intended use of the kernel
message boxes to make the implementation simplest and fastest.

Red Hat, 35 Cambridge Place, Cambridge, UK. CB2 1NS  Tel: +44 (1223) 728762
"Plan to be spontaneous tomorrow."  ||  These opinions are all my own fault

More information about the Ecos-discuss mailing list