Talk About Network

Google


Register and Login
Nick
Password
Register create new account Sign up is FREE and you can post replies, new topics, bookmark posts and more!
Recover lost password


Programming > Ada > Create a proced...
Latest [ Topics | Posts ] Archive Post A New Topic Post a Reply
<< Topic < Post Post 1 of 5 Topic 5476 of 5922
Post > Topic >>

Create a procedure with multiple arguments ...

by kug1977@[EMAIL PROTECTED] Jan 4, 2008 at 12:28 PM

Hi @[EMAIL PROTECTED]
 all,

I'm a beginner in Ada and have the following problem:

- I'm using GNAT 4.3 on a MacOS X 10.4. and develop on the
OpenFirmware Interface.
- To connect to the Firmware, the IEEE 1275 define an Procedure call-
methode(), which can have up multiple arguments. IEEE 1275 define call-
method as followed:

IN: [string] method, ihandle, stack-arg1, ..., stack-argP
OUT: catch-result, stack-result1, ..., stack-resultQ
Pushes two less than N-args items, stack-arg1, ..., stack-argP, onto
the Forth data stack, with stack-arg1 on top of the stack, and
executes the package method named method in the instance ihandle as
with $call-method, guarded by catch. Pops the result returned by catch
into catch-result. If that result is nonzero, restore the depth of the
Forth data stack to its depth prior to the execution of call-method.
If that result is zero, pops up to one less than N-returns items,
stack-result1,  ..., stack-resultQ, from the Forth data stack into the
returned values ****tion of the argument array, with stack-result1
corresponding to the top of the stack.
N-args and N-returns are stored in the argument array and may be
different for different calls to
call-method. If the number of items X left on the Forth data stack as
a result of the execution of
method is less than N-returns, only stack-result1 ... stack-resultX
are modified; other elements of the returned values ****tion of the
argument array are unaffected. If X is more than N-returns, additional
items are popped from the Forth data stack after setting stack-
result1 ... stack-resultQ so that, in all cases, the execution of call-
method results in no net change to the depth of the Forth data stack.

In C, this is written as followed: static void *of_call(const char
*service, int nargs, int nret, ...), but how can I write such a thing
in Ada?

Any help would be appreciated ... best regards
Kay-Uwe
 




 5 Posts in Topic:
Create a procedure with multiple arguments ...
kug1977@[EMAIL PROTECTED]  2008-01-04 12:28:24 
Re: Create a procedure with multiple arguments ...
Stephen Leake <stephen  2008-01-07 05:26:13 
Re: Create a procedure with multiple arguments ...
kug1977@[EMAIL PROTECTED]  2008-01-07 13:09:52 
Re: Create a procedure with multiple arguments ...
"Steve" <nos  2008-01-07 21:23:13 
Re: Create a procedure with multiple arguments ...
kug1977@[EMAIL PROTECTED]  2008-01-08 07:22:51 

Post A Reply:
  Go here to Signup

AddThis Feed Button


About - Advertising - Contact - Frequently Asked Questions - Privacy Policy - Terms of Use - Signup

Contact
tan12V112 Mon Oct 6 18:22:46 CDT 2008.