From: Jeffrey Carter <spam.jrcarter.not@spam.not.acm.org>
Subject: Re: Interface with C codes
Date: Fri, 17 Oct 2014 19:20:42 -0700
Date: 2014-10-17T19:20:42-07:00 [thread overview]
Message-ID: <m1sipm$ead$1@dont-email.me> (raw)
In-Reply-To: <7dec5a01-4376-4f86-b4f3-b28948474828@googlegroups.com>
On 10/17/2014 04:22 PM, Anh Vo wrote:
> What Ada spec should be for the following C prototype where BOOT_PARAMS is a struct and responding Ada type is
>
> type Boot_Parameter_Type is
> record
> Boot_Dev : Interfaces.C.Strings.Chars_Ptr;
This doesn't match the C quoted below. Use
Interfaces.C.Char_Array (0 .. 19);
> -- ...
> end record;
> pragma Convention (C, Boot_Parameter_Type);
>
> type Boot_Parameter_Type_Access is access Boot_Parameter_Type;
> pragma Convention (C, Boot_Parameter_Type_Access);
You don't need this access type.
> char * bootStringToStruct (char * bootString, BOOT_PARAMS * pBootParams);
I would probably use
function To_Record
(Boot_String : Intefaces.C.Char_Array; Boot_Parameter : Boot_Parameter_Type)
return Interfaces.C.Strings.Chars_Ptr;
and rely on the advice in B.3(69-70): both parameters will be passed by reference.
--
Jeff Carter
"Whatever it is, I'm against it."
Horse Feathers
46
next prev parent reply other threads:[~2014-10-18 2:20 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-10-17 23:22 Interface with C codes Anh Vo
2014-10-17 23:30 ` Anh Vo
2014-10-18 18:33 ` Stephen Leake
2014-10-19 4:33 ` Anh Vo
2014-10-19 9:24 ` Simon Clubley
2014-10-19 11:46 ` Brian Drummond
2014-10-19 13:58 ` Simon Wright
2014-10-19 17:33 ` Anh Vo
2014-10-17 23:49 ` Adam Beneschan
2014-10-18 0:04 ` Anh Vo
2014-10-18 1:04 ` Anh Vo
2014-10-20 16:14 ` Adam Beneschan
2014-10-25 3:31 ` Anh Vo
2014-10-18 2:20 ` Jeffrey Carter [this message]
2014-10-18 17:00 ` Anh Vo
2014-10-18 6:27 ` Per Sandberg
2014-10-18 17:08 ` Anh Vo
2014-10-18 17:12 ` Simon Wright
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox