10SN/A/* Implement Input/Output runtime actions for CHILL. 2157SN/A Copyright (C) 1992,1993 Free Software Foundation, Inc. 30SN/A Author: Wilfried Moser, et al 40SN/A 50SN/AThis file is part of GNU CC. 60SN/A 7157SN/AGNU CC is free software; you can redistribute it and/or modify 80SN/Ait under the terms of the GNU General Public License as published by 9157SN/Athe Free Software Foundation; either version 2, or (at your option) 100SN/Aany later version. 110SN/A 120SN/AGNU CC is distributed in the hope that it will be useful, 130SN/Abut WITHOUT ANY WARRANTY; without even the implied warranty of 140SN/AMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 150SN/AGNU General Public License for more details. 160SN/A 170SN/AYou should have received a copy of the GNU General Public License 180SN/Aalong with GNU CC; see the file COPYING. If not, write to 190SN/Athe Free Software Foundation, 59 Temple Place - Suite 330, 200SN/ABoston, MA 02111-1307, USA. */ 21157SN/A 22157SN/A/* As a special exception, if you link this library with other files, 23157SN/A some of which are compiled with GCC, to produce an executable, 240SN/A this library does not by itself cause the resulting executable 250SN/A to be covered by the GNU General Public License. 260SN/A This exception does not however invalidate any other reasons why 270SN/A the executable file might be covered by the GNU General Public License. */ 280SN/A 290SN/A#ifndef _auxtypes_h_ 300SN/A#define _auxtypes_h_ 310SN/A 320SN/A 330SN/Atypedef enum { False, True } Boolean; 340SN/A 350SN/A#define VARYING_STRING(strlen) \ 360SN/A struct { unsigned short len; char body[strlen]; } 370SN/A 380SN/Atypedef struct { 390SN/A unsigned short len; 400SN/A char body[1]; 410SN/A} VarString; 420SN/A 430SN/A/* Macros for moving an (U)INT and (U)LONG without alignment worries */ 440SN/A#define MOV2(tgt,src) \ 450SN/A *((char*)(tgt) ) = *((char*)(src) ), \ 460SN/A *((char*)(tgt)+1) = *((char*)(src)+1) 470SN/A#define MOV4(tgt,src) \ 480SN/A *((char*)(tgt) ) = *((char*)(src) ), \ 490SN/A *((char*)(tgt)+1) = *((char*)(src)+1), \ 500SN/A *((char*)(tgt)+2) = *((char*)(src)+2), \ 510SN/A *((char*)(tgt)+3) = *((char*)(src)+3) 520SN/A 530SN/A#endif 540SN/A