From: Adrian Hoe <byhoe@my-deja.com>
Subject: Re: Help: Storage size
Date: 1999/07/13
Date: 1999-07-13T00:00:00+00:00 [thread overview]
Message-ID: <7mfndb$mc8$1@nnrp1.deja.com> (raw)
In-Reply-To: 7mf7lp$c9g@hobbes.crc.com
In article <7mf7lp$c9g@hobbes.crc.com>,
"David C. Hoos, Sr." <david.c.hoos.sr@ada95.com> wrote:
>
> Adrian Hoe wrote in message <7mejue$9lk$1@nnrp1.deja.com>...
> >If I have a C code like this:
> >
> >typedef unsigned short CARD16;
> >
> >and
> >
> >typedef struct {
> > CARD8 reqType;
> > CARD16 length : 16;
> >} tReq;
> >
> >How can the above struct (record) be implemented in Ada?
> >
> >Where CARD16 is define as follow in Ada:
> >
> >type CARD16 is new X.Unsigned_Short;
> >
> >
> >Can anyone please help?
> >--
> Several problems here -- e.g.:
>
> 1. Where is the declaration for CARD8? This will affect the result.
CARD8 is declare as unsigned char;
> 2. If #pragma pack is used, this will affect the result.
#pragma pack is not used.
> 3. If unsigned short is 16 bits on your system, the bit-field
> specification (:16) would appear to be redundant.
Most platforms have 16 bits for unsigned short. The bit-field
specification (e.g. :16) is used to ensure 16 bits mapping on other
platform(s).
> 4. Where is the declaration for X.Unsigned_Short?
In X.ads, it is declare as
subtype unsigned_short is interfaces.c.unsigned_short;
> 5. Bit-field implementations are compiler-dependent, so from
> the code you supplied (without any compiler or platform
> identification) it is impossible to say for sure what is
> the memory layout of the tReq struct.
I am using GNAT for Linux (PC) and intend to target the code to other
platforms like Sun and Alpha.
> If the memory layout of the C struct is known, writing the
> Ada declaration is trivial.
>
>
Let's assume the bit-field specification (:16 e.g.) is needed badly, how
can I implement the C's struct in Ada?
--
Adrian BY, Hoe
--------------
Sent via Deja.com http://www.deja.com/
Share what you know. Learn what you don't.
next prev parent reply other threads:[~1999-07-13 0:00 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
1999-07-13 0:00 Help: Storage size Adrian Hoe
1999-07-13 0:00 ` David C. Hoos, Sr.
1999-07-13 0:00 ` Adrian Hoe [this message]
1999-07-13 0:00 ` David C. Hoos, Sr.
1999-07-14 0:00 ` Adrian Hoe
1999-07-14 0:00 ` Simon Wright
1999-07-16 0:00 ` Adrian Hoe
1999-07-16 0:00 ` Adrian Hoe
1999-07-14 0:00 ` Keith Thompson
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox