1-- Copyright 2010-2020 Free Software Foundation, Inc. 2-- 3-- This program is free software; you can redistribute it and/or modify 4-- it under the terms of the GNU General Public License as published by 5-- the Free Software Foundation; either version 3 of the License, or 6-- (at your option) any later version. 7-- 8-- This program is distributed in the hope that it will be useful, 9-- but WITHOUT ANY WARRANTY; without even the implied warranty of 10-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11-- GNU General Public License for more details. 12-- 13-- You should have received a copy of the GNU General Public License 14-- along with this program. If not, see <http://www.gnu.org/licenses/>. 15 16with Pck; use Pck; 17 18package body Mixed is 19 -- We are importing symbols from foo.o, so make sure this object file 20 -- gets linked in. 21 Pragma Linker_Options ("foo.o"); 22 23 type Color is (Red, Green, Blue); 24 25 procedure C_Function; 26 pragma Import (C, C_Function, "c_function"); 27 28 procedure Callme; 29 pragma Export (C, Callme, "callme"); 30 31 procedure Break_Me (Light : Color) is 32 begin 33 Put_Line ("Light: " & Color'Image (Light)); -- STOP 34 end Break_Me; 35 36 procedure Callme is 37 begin 38 Break_Me (Red); 39 Break_Me (Green); 40 Break_Me (Blue); 41 end Callme; 42 43 procedure Start_Test is 44 begin 45 -- Call C_Function, which will call Callme. 46 C_Function; 47 end Start_Test; 48 49end Mixed; 50