diff options
Diffstat (limited to 'src/ghdldrv/foreigns.adb')
-rw-r--r-- | src/ghdldrv/foreigns.adb | 38 |
1 files changed, 37 insertions, 1 deletions
diff --git a/src/ghdldrv/foreigns.adb b/src/ghdldrv/foreigns.adb index 15e3dd009..0d6b19aec 100644 --- a/src/ghdldrv/foreigns.adb +++ b/src/ghdldrv/foreigns.adb @@ -1,9 +1,41 @@ +-- GHDL driver - Foreign functions known by JIT. +-- Copyright (C) 2002 - 2015 Tristan Gingold +-- +-- GHDL is free software; you can redistribute it and/or modify it under +-- the terms of the GNU General Public License as published by the Free +-- Software Foundation; either version 2, or (at your option) any later +-- version. +-- +-- GHDL is distributed in the hope that it will be useful, but WITHOUT ANY +-- WARRANTY; without even the implied warranty of MERCHANTABILITY or +-- FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +-- for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with GCC; see the file COPYING. If not, write to the Free +-- Software Foundation, 59 Temple Place - Suite 330, Boston, MA +-- 02111-1307, USA. with Interfaces.C; use Interfaces.C; package body Foreigns is + function Ceil (Arg : double) return double; + pragma Import (C, Ceil); + + function Floor (Arg : double) return double; + pragma Import (C, Floor); + + function Round (Arg : double) return double; + pragma Import (C, Round); + + function Trunc (Arg : double) return double; + pragma Import (C, Trunc); + function Sin (Arg : double) return double; pragma Import (C, Sin); + function Cos (Arg : double) return double; + pragma Import (C, Cos); + function Log (Arg : double) return double; pragma Import (C, Log); @@ -37,10 +69,14 @@ package body Foreigns is Addr : Address; end record; - Foreign_Arr : constant array (Natural range <>) of Foreign_Record := ( + (new String'("ceil"), Ceil'Address), + (new String'("floor"), Floor'Address), + (new String'("round"), Round'Address), + (new String'("trunc"), Trunc'Address), (new String'("sin"), Sin'Address), + (new String'("cos"), Cos'Address), (new String'("log"), Log'Address), (new String'("exp"), Exp'Address), (new String'("sqrt"), Sqrt'Address), |