aboutsummaryrefslogtreecommitdiff
path: root/src/benchmarks/espresso/port.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/benchmarks/espresso/port.h')
-rw-r--r--src/benchmarks/espresso/port.h263
1 files changed, 263 insertions, 0 deletions
diff --git a/src/benchmarks/espresso/port.h b/src/benchmarks/espresso/port.h
new file mode 100644
index 0000000..d84a1b5
--- /dev/null
+++ b/src/benchmarks/espresso/port.h
@@ -0,0 +1,263 @@
+#ifndef PORT_H
+#define PORT_H
+
+#ifdef _WIN32
+#include <assert.h>
+#include <stdio.h>
+#endif
+
+#ifndef NULL
+#define NULL 0
+#endif /* NULL */
+
+#ifndef _WIN32
+
+#ifdef SABER
+#define volatile
+#endif
+
+#ifdef _IBMR2
+#define _BSD
+#ifndef _POSIX_SOURCE
+#define _POSIX_SOURCE /* Argh! IBM strikes again */
+#endif
+#ifndef _ALL_SOURCE
+#define _ALL_SOURCE /* Argh! IBM strikes again */
+#endif
+#ifndef _ANSI_C_SOURCE
+#define _ANSI_C_SOURCE /* Argh! IBM strikes again */
+#endif
+#endif
+
+/*
+ * int32 should be defined as the most economical sized integer capable of
+ * holding a 32 bit quantity
+ * int16 should be similarly defined
+ */
+
+/* XXX hack */
+#ifndef MACHDEP_INCLUDED
+#define MACHDEP_INCLUDED
+#ifdef vax
+typedef int int32;
+typedef short int16;
+#else
+ /* Ansi-C promises that these definitions should always work */
+typedef long int32;
+typedef int int16;
+#endif /* vax */
+#endif /* MACHDEP_INCLUDED */
+
+
+#ifndef __STDC__
+#ifndef __DATE__
+#ifdef CUR_DATE
+#define __DATE__ CUR_DATE
+#else
+#define __DATE__ "unknown-date"
+#endif /* CUR_DATE */
+#endif /* __DATE__ */
+
+#ifndef __TIME__
+#ifdef CUR_TIME
+#define __TIME__ CUR_TIME
+#else
+#define __TIME__ "unknown-time"
+#endif /* CUR_TIME */
+#endif /* __TIME__ */
+#endif /* __STDC__ */
+
+#ifdef sun386
+#define PORTAR
+#endif
+
+#include <stdio.h>
+#include <ctype.h>
+#include <sys/types.h>
+#undef HUGE
+#include <math.h>
+#include <signal.h>
+
+#if defined(ultrix) /* { */
+#if defined(_SIZE_T_) /* { */
+#define ultrix4
+#else /* } else { */
+#if defined(SIGLOST) /* { */
+#define ultrix3
+#else /* } else { */
+#define ultrix2
+#endif /* } */
+#endif /* } */
+#endif /* } */
+
+#if defined(ultrix3) && defined(mips)
+extern double rint();
+extern double trunc();
+#endif
+
+#if defined(sun) && defined(FD_SETSIZE)
+#define sunos4
+#else
+#define sunos3
+#endif
+
+#if defined(sequent) || defined(news800)
+#define LACK_SYS5
+#endif
+
+#if defined(ultrix3) || defined(sunos4) || defined(_IBMR2)
+#define SIGNAL_FN void
+#else
+/* sequent, ultrix2, 4.3BSD (vax, hp), sunos3 */
+#define SIGNAL_FN int
+#endif
+
+/* Some systems have 'fixed' certain functions which used to be int */
+#if defined(ultrix) || defined(SABER) || defined(hpux) || defined(aiws) || defined(apollo) || defined(__STDC__)
+#define VOID_HACK void
+#else
+#define VOID_HACK int
+#endif
+
+/*
+ * CHARBITS should be defined only if the compiler lacks "unsigned char".
+ * It should be a mask, e.g. 0377 for an 8-bit machine.
+ */
+
+#ifndef CHARBITS
+# define UNSCHAR(c) ((unsigned char)(c))
+#else
+# define UNSCHAR(c) ((c)&CHARBITS)
+#endif
+
+#define SIZET int
+
+#ifdef __STDC__
+#define CONST const
+#define VOIDSTAR void *
+#else
+#define CONST
+#define VOIDSTAR char *
+#endif /* __STDC__ */
+
+
+/* Some machines fail to define some functions in stdio.h */
+#if !defined(__STDC__) && !defined(sprite)
+extern FILE *popen(), *tmpfile();
+extern int pclose();
+#ifndef clearerr /* is a macro on many machines, but not all */
+extern VOID_HACK clearerr();
+#endif /* clearerr */
+#ifndef rewind
+extern VOID_HACK rewind();
+#endif /* rewind */
+#endif /* __STDC__ */
+
+
+/* most machines don't give us a header file for these */
+#if defined(__STDC__) || defined(sprite)
+#include <stdlib.h>
+#else
+#ifdef hpux
+extern int abort();
+extern void free(), exit(), perror();
+#else
+extern VOID_HACK abort(), free(), exit(), perror();
+#endif /* hpux */
+extern char *getenv();
+#ifdef ultrix4
+extern void *malloc(), *realloc(), *calloc();
+#else
+extern char *malloc(), *realloc(), *calloc();
+#endif
+#if defined(aiws) || defined(hpux)
+extern int sprintf();
+#else
+extern char *sprintf();
+#endif
+extern int system();
+extern double atof();
+extern long atol();
+extern int sscanf();
+#endif /* __STDC__ */
+
+
+/* some call it strings.h, some call it string.h; others, also have memory.h */
+#if defined(__STDC__) || defined(sprite)
+#include <string.h>
+#else
+/* ANSI C string.h -- 1/11/88 Draft Standard */
+#if defined(ultrix4) || defined(hpux)
+#include <strings.h>
+#else
+extern char *strcpy(), *strncpy(), *strcat(), *strncat(), *strerror();
+extern char *strpbrk(), *strtok(), *strchr(), *strrchr(), *strstr();
+extern int strcoll(), strxfrm(), strncmp(), strlen(), strspn(), strcspn();
+extern char *memmove(), *memccpy(), *memchr(), *memcpy(), *memset();
+extern int memcmp(), strcmp();
+#endif /* ultrix4 */
+#endif /* __STDC__ */
+
+#ifdef lint
+#undef putc /* correct lint '_flsbuf' bug */
+#endif /* lint */
+
+/* a few extras */
+#if defined(hpux)
+extern VOID_HACK srand();
+extern int rand();
+#define random() rand()
+#define srandom(a) srand(a)
+#define bzero(a,b) memset(a, 0, b)
+#else
+extern VOID_HACK srandom();
+extern long random();
+#endif
+
+/*
+** _std_h is defined in /usr/local/lib/g++-include/std.h
+*/
+#if ! defined(_std_h)
+#if defined(ultrix3) || defined(ultrix4) || defined(hpux)
+extern unsigned sleep();
+#else
+extern VOID_HACK sleep();
+#endif
+#endif /* _std_h */
+/* assertion macro */
+
+#ifndef assert
+#if defined(__STDC__) || defined(sprite)
+#include <assert.h>
+#else
+#ifndef NDEBUG
+#define assert(ex) {\
+ if (! (ex)) {\
+ (void) fprintf(stderr, "Assertion failed: file %s, line %d\n",\
+ __FILE__, __LINE__);\
+ (void) fflush(stdout);\
+ abort();\
+ }\
+}
+#else
+#define assert(ex) {;}
+#endif
+#endif
+#endif
+
+/* handle the various limits */
+#if defined(__STDC__) || defined(POSIX)
+#include <limits.h>
+#else
+#define USHRT_MAX (~ (unsigned short int) 0)
+#define UINT_MAX (~ (unsigned int) 0)
+#define ULONG_MAX (~ (unsigned long int) 0)
+#define SHRT_MAX ((short int) (USHRT_MAX >> 1))
+#define INT_MAX ((int) (UINT_MAX >> 1))
+#define LONG_MAX ((long int) (ULONG_MAX >> 1))
+#endif
+
+#endif
+
+#endif /* PORT_H */
+