-- $Source: /home/harp/1/proto/monoBANK/winnt/stdarg-machine-i386.ads,v $ -- $Revision: 1.4 $ $Date: 95/11/18 18:55:23 $ $Author: jj $ with Interfaces.C; package Stdarg.Machine is -- ********************************************************** -- This package describes the differences in machine -- architectures that need to be known by Stdarg. -- -- I386 is Intel 386/486/Pentium PC's -- Sparc is Sun-4 Sparcstation and Sparcserver -- HP is Hewlett-Packard HP-9000 series 700 and 800 -- Mips is machines based on the MIPS chip, such as SGI -- PowerPC is Apple-IBM-Motorola Power PC, and IBM RS/6000 -- Alpha is the Digital Equipment Corporation chip. -- -- To build these packages for a different architecture, -- change the constant This_Arch to one of the allowed values -- and recompile. -- ********************************************************** type Arch is (I386, Sparc, HP, Mips, Alpha, PowerPC); This_Arch: constant Arch := I386; type Stack_Growth_Direction is ( Up, -- toward address 0 Down); -- toward high numbered addresses type Arch_Description_Rec is record Int_Param_Alignment, Float_Param_Alignment: Positive; Stack_Growth: Stack_Growth_Direction; end record; SU: constant := System.Storage_Unit; Arch_Description: constant array (Arch) of Arch_Description_Rec := ( I386 => ( Int_Param_Alignment => C_Param'Size/SU, Float_Param_Alignment => C_Param'Size/SU, Stack_Growth => Up) , Sparc => ( Int_Param_Alignment => C_Param'Size/SU, Float_Param_Alignment => C_Param'Size/SU, Stack_Growth => Up) , HP => ( Int_Param_Alignment => C_Param'Size/SU, Float_Param_Alignment => Interfaces.C.Double'Size/SU, Stack_Growth => Down) , Mips => ( Int_Param_Alignment => C_Param'Size/SU, Float_Param_Alignment => Interfaces.C.Double'Size/SU, Stack_Growth => Up) , Alpha => ( Int_Param_Alignment => C_Param'Size/SU, Float_Param_Alignment => Interfaces.C.Double'Size/SU, Stack_Growth => Up) , PowerPC => ( Int_Param_Alignment => C_Param'Size/SU, Float_Param_Alignment => C_Param'Size/SU, Stack_Growth => Up) ); Desc : Arch_Description_Rec renames Arch_Description(This_Arch); Int_Param_Alignment : Positive renames Desc.Int_Param_Alignment; Float_Param_Alignment: Positive renames Desc.Float_Param_Alignment; Stack_Growth : Stack_Growth_Direction renames Desc.Stack_Growth; Param_Size : constant Positive := C_Param'Size/SU; ------------------------------------------------------------------------------- -- -- 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.Machine;