comp.lang.ada
 help / color / mirror / Atom feed
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


  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