From 33613a85afc4b1481367fbe92a17ee59c240250b Mon Sep 17 00:00:00 2001 From: Sven Eisenhauer Date: Fri, 10 Nov 2023 15:11:48 +0100 Subject: add new repo --- .../ARM202U/SOURCE/WIN32/CLX/HOST.H | 279 +++++++++++++++++++++ 1 file changed, 279 insertions(+) create mode 100644 Bachelor/Mikroprozessorsysteme2/ARM202U/SOURCE/WIN32/CLX/HOST.H (limited to 'Bachelor/Mikroprozessorsysteme2/ARM202U/SOURCE/WIN32/CLX/HOST.H') diff --git a/Bachelor/Mikroprozessorsysteme2/ARM202U/SOURCE/WIN32/CLX/HOST.H b/Bachelor/Mikroprozessorsysteme2/ARM202U/SOURCE/WIN32/CLX/HOST.H new file mode 100644 index 0000000..1625b00 --- /dev/null +++ b/Bachelor/Mikroprozessorsysteme2/ARM202U/SOURCE/WIN32/CLX/HOST.H @@ -0,0 +1,279 @@ +/* + * C compiler file mip/host.h + * Copyright (C) Codemist Ltd., 1988 + * Copyright (C) Acorn Computers Ltd., 1988. + */ + +/* + * RCS $Revision: 1.15.2.7 $ Codemist 11 + * Checkin $Date: 1995/06/29 10:47:31 $ + * Revising $Author: kwelton $ + */ + +/* AM memo, July 1990: in principle there should be no tests of */ +/* COMPILING_ON_, but only COMPILING_ON_ or */ +/* COMPILING_ON_ (for special features). */ +/* Accordingly COMPILING_ON_ is deprecated. */ + +/* + * This file deals with peculiarities of the host system under which the + * compiler is compiled AND peculiarities of the host system under which + * the compiler will run (hence it might need further explication in the + * unlikely event that we wish to cross-compile the compiler (repeatedly + * as opposed to once-off bootstrap)). It is now loaded first and can + * therefore not depend on TARGET_xxx parameterisations, these are now + * done in target.h or, if systematic, in mip/defaults.h. + * The correct mechanism for host->target dependencies (e.g. if compiling + * on unix then make a unix compiler, else a homebrew object file version) + * is via the options.h file, along the lines of: + * #ifdef COMPILING_ON_UNIX + * # define TARGET_IS_UNIX + * #endif + * The intent is that most of the pecularities should be linked to + * COMPILING_ON_machine and/or COMPILING_ON_system. Further NO OTHER FILE + * should refer to magic names like 'unix', '__arm' etc., but go via + * the COMPILING_xxx flags defined here in terms of these. + * The aim is that this file should suffice for all host dependencies + * and thus all COMPILING_ON_xxx tests outwith are suspect. However, + * the #include file munger clearly needs to so depend. + */ + +#ifndef _host_LOADED +#define _host_LOADED 1 + +#include +#include /* for xsyn.c (and more?) and offsetof test below */ +#include /* for EXIT_FAILURE test below */ + +#ifndef SEEK_SET +# define SEEK_SET 0 +#endif +#ifndef SEEK_CUR +# define SEEK_CUR 1 +#endif +#ifndef SEEK_END +# define SEEK_END 2 +#endif + +#ifdef __STDC__ + +#define BELL '\a' +typedef void /* newline to fool the topcc tool */ + *VoidStar; +typedef const void + *ConstVoidStar; +#define safe_tolower(ch) tolower(ch) /* see comment below */ +#define safe_toupper(ch) toupper(ch) /* see comment below */ + +#else /* ! __STDC__ */ + +#define BELL '\007' +typedef char *VoidStar; +#define ConstVoidStar VoidStar +/* + * not all C libraries define tolower() and toupper() over all character + * values. BSD Unix, for example, defines tolower() only over UC chars. + */ +#define safe_tolower(ch) (isupper(ch) ? tolower(ch) : ch) +#define safe_toupper(ch) (islower(ch) ? toupper(ch) : ch) + +#endif /* ! __STDC__ */ + +/* The following for the benefit of compiling on SunOS */ +#ifndef offsetof +# define offsetof(T, member) ((char *)&(((T *)0)->member) - (char *)0) +#endif + +#ifdef unix /* A temporary sop to older compilers */ +# ifndef __unix /* (good for long-term portability?) */ +# define __unix 1 +# endif +#endif + +#ifdef __unix +/* Generic unix -- hopefully a split into other variants will not be */ +/* needed. However, beware the 'bsd' test above and safe_toupper etc. */ +/* which cope with backwards (pre-posix/X/open) unix compatility. */ +# define COMPILING_ON_UNIX 1 +#endif +#ifdef __helios +/* start improving parameterisation. Maybe we should also set */ +/* COMPILING_ON_UNIX and use HELIOS as a special subcase? */ +# define COMPILING_ON_HELIOS 1 +#endif +#ifdef __acorn +# define COMPILING_ON_ACORN_KIT 1 +#endif +#ifdef __riscos +# define COMPILING_ON_RISC_OS 1 +#endif +#ifdef __arm +# define COMPILING_ON_ARM 1 /* dying: unix/riscos/acorn suffice */ +#endif +#ifdef __ibm370 +# ifndef COMPILING_ON_UNIX +# define __mvs 1 /* a hack to be removed soon */ +# endif +#endif +#ifdef __mvs +# define COMPILING_ON_MVS 1 +#endif +#ifdef _MSDOS +# define COMPILING_ON_MSDOS 1 +#endif +#ifdef __ZTC__ +# define COMPILING_ON_MSDOS 1 +#endif +#ifdef __WATCOMC__ +# define COMPILING_ON_MSDOS 1 +#endif +#ifdef _MSC_VER +# define COMPILING_ON_MSDOS 1 +#endif +#ifdef macintosh +# define COMPILING_ON_MACINTOSH 1 /* for things that depend on how Macintosh handles filenames, etc. */ +# define COMPILING_ON_MPW 1 /* for things that depend on how MPW handles arguments, i/o, etc. */ +#endif + +/* + * The following typedefs may need alteration for obscure host machines. + */ +#ifdef __alpha +typedef int int32; +typedef unsigned int unsigned32; +#else +typedef long int int32; +typedef unsigned long int unsigned32; +#endif +typedef short int int16; +typedef unsigned short int unsigned16; +typedef signed char int8; +typedef unsigned char unsigned8; +typedef int bool; + +/* + * The following sets ArgvType for 64-bit pointers so that + * DEC Unix (OSF) cc can be used with the -xtaso_short compiler option + * to force pointers to be 32-bit. + */ +#if defined(__alpha) && defined(__osf__) +#pragma pointer_size (save) +#pragma pointer_size (long) +#endif +typedef char *ArgvType; +#if defined(__alpha) && defined(__osf__) +#pragma pointer_size (restore) +#endif + +#define YES 1 +#define TRUE 1 +#define NO 0 +#define FALSE 0 + +/* + * Rotate macros + */ +#define ROL_32(val, n) \ +((((unsigned32)(val) << (n)) | ((unsigned32)(val) >> (32-(n)))) & 0xFFFFFFFFL) +#define ROR_32(val, n) \ +((((unsigned32)(val) >> (n)) | ((unsigned32)(val) << (32-(n)))) & 0xFFFFFFFFL) + +/* The following two lines are a safety play against using ncc with a */ +/* vendor supplied library, many of which refuse to accept "wb". POSIX */ +/* and other unix standards require "wb" and "w" to have the same */ +/* effect and so the following is safe. */ +#ifdef COMPILING_ON_UNIX +# define FOPEN_WB "w" +# define FOPEN_RB "r" +# define FOPEN_RWB "r+" +# ifndef __STDC__ /* caveat RISCiX... */ +# define remove(file) unlink(file) /* a horrid hack, but probably best? */ +# endif +#else +# define FOPEN_WB "wb" +# define FOPEN_RB "rb" +# define FOPEN_RWB "rb+" +#endif + +/* (defined __sparc && defined P_tmpdir) is to detect gcc on SunOS */ +#if !defined __STDC__ || (defined __sparc && defined P_tmpdir) +/* Use bcopy rather than memmove, as memmove is not available. */ +# define memmove(d,s,l) bcopy(s,d,l) +/* BSD/SUN don't have strtoul(), but then strtol() doesn't barf on */ +/* overflow as required by ANSI... This bodge is horrid. */ +# define strtoul(s, ptr, base) strtol(s, ptr, base) +/* strtod is present in the C-library but is not in stdlib.h */ +extern double strtod(const char *str, char **ptr); +#endif + +#ifdef __CC_NORCROFT +# ifndef COMPILING_ON_UNIX /* suppress if maybe non-norcroft lib */ +# define LIBRARY_IS_NORCROFT 1 +# endif +# ifdef LIBRARY_IS_ALIEN /* unify with the 3 previous lines? */ +# undef LIBRARY_IS_NORCROFT +# endif +#endif + +#ifdef LIBRARY_IS_NORCROFT +/* + * Calls to all non-ansi functions are removable by macros here. + */ +#ifdef __cplusplus +extern "C" { +#endif +/* These routines have no floating point abilities. */ +extern int _vfprintf(FILE *stream, const char *format, __va_list arg); +extern int _vsprintf(char *s, const char *format, __va_list arg); +extern int _fprintf(FILE *stream, const char *format, ...); +extern int _sprintf(char *s, const char *format, ...); +#ifdef __cplusplus +} +#endif +#else /* LIBRARY_IS_NORCROFT */ +# define _vfprintf vfprintf +# define _vsprintf vsprintf +# define _fprintf fprintf +# define _sprintf sprintf +#endif /* LIBRARY_IS_NORCROFT */ + +#ifdef COMPILING_ON_MVS + +#define HOST_USES_CCOM_INTERFACE 1 +#define EXIT_warn 4 +#define EXIT_error 8 +#define EXIT_fatal 12 +#define EXIT_syserr 16 + +/* + * The following #included #define's ensure that external symbols are + * limited to 6 chars without gratuitous changes to every file. + */ +#include "sixchar.h" + +#else /* ! COMPILING_ON_MVS */ + +#define EXIT_warn 0 +#define EXIT_error 1 +#define EXIT_fatal 1 + +#ifdef COMPILING_ON_UNIX +# define EXIT_syserr 100 +#else +# define EXIT_syserr 1 +#endif + +#endif /* ! COMPILING_ON_MVS */ + +/* For systems that do not define EXIT_SUCCESS and EXIT_FAILURE */ +#ifndef EXIT_SUCCESS +# define EXIT_SUCCESS 0 +#endif +#ifndef EXIT_FAILURE +# define EXIT_FAILURE EXIT_error +#endif + +#endif + +/* end of host.h */ + \ No newline at end of file -- cgit v1.2.3