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