-- $Source: /home/harp/1/proto/monoBANK/winnt/stdarg-impl.ads,v $
-- $Revision: 1.4 $ $Date: 95/11/18 18:55:13 $ $Author: jj $
with Interfaces.C.Pointers;
package Stdarg.Impl is
-- *******************************************************
-- Getting arguments out of lists, for use by implementers
-- of variable-parameter functions
-- *******************************************************
subtype Int is Interfaces.C.Int;
type Param_Access is private;
function Address_of_First_Arg (Args: ArgList) return Param_Access;
function Address_of_Vararg_List (Args: ArgList) return Param_Access;
function ArgCount (Args: ArgList) return Int;
function "&" (Left, Right: ArgList) return ArgList;
procedure Do_Varargs (Proc : in System.Address;
Nb_Args : Int;
Arg_Addr : Param_Access);
function F_Varargs (Func : in System.Address;
Nb_Args : Int;
Arg_Addr : Param_Access) return Stdarg.C_Param;
-- debugging
-- procedure Dump(Addr: Param_Access; Nb_Args : Stdarg.Int);
-- pragma Import(C, Dump, "dump");
private
package Arith is new Interfaces.C.Pointers(
Integer, C_Param, Stdarg.ArgVector, 0);
type Param_Access is new Arith.Pointer;
pragma Import(C, Do_Varargs, "do_varargs");
pragma Import(C, F_Varargs, "do_varargs");
-------------------------------------------------------------------------------
--
-- THIS FILE AND ANY ASSOCIATED DOCUMENTATION IS FURNISHED "AS IS" WITHOUT
-- WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
-- TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR
-- PURPOSE. The user assumes the entire risk as to the accuracy and the
-- use of this file.
--
-- Copyright (c) Intermetrics, Inc. 1995
-- Royalty-free, unlimited, worldwide, non-exclusive use, modification,
-- reproduction and further distribution of this file is permitted.
--
-------------------------------------------------------------------------------
end Stdarg.Impl;