From 333b605b2afd472b823aeda0adf0e8b1ea9843c0 Mon Sep 17 00:00:00 2001 From: fishsoupisgood Date: Mon, 27 May 2019 02:41:51 +0100 Subject: initial commit from asl-1.41r8.tar.gz --- sysdefs.h | 774 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 774 insertions(+) create mode 100644 sysdefs.h (limited to 'sysdefs.h') diff --git a/sysdefs.h b/sysdefs.h new file mode 100644 index 0000000..d145cd5 --- /dev/null +++ b/sysdefs.h @@ -0,0 +1,774 @@ +/*---------------------------------------------------------------------------*/ +/* unify 68K platforms */ + +#ifdef __mc68020 +#ifndef __m68k +#define __m68k +#endif +#endif + +#ifdef m68000 +#ifndef __m68k +#define __m68k +#endif +#endif + +#ifdef __mc68000 +#ifndef __m68k +#define __m68k +#endif +#endif + +/*---------------------------------------------------------------------------*/ +/* ditto for i386 platforms */ + +/* MSDOS only runs on x86s... */ + +#ifdef __MSDOS__ +#define __i386 +#endif + +/* For IBMC... */ + +#ifdef _M_I386 +#define __i386 +#endif + +#ifdef __i386__ +#ifndef __i386 +#define __i386 +#endif +#endif + +/*---------------------------------------------------------------------------*/ +/* If the compiler claims to be ANSI, we surely can use prototypes */ + +#ifdef __STDC__ +#define __PROTOS__ +#endif + +/*---------------------------------------------------------------------------*/ +/* just a hack to allow distinguishing SunOS from Solaris on Sparcs... */ + +#ifdef sparc +#ifndef __sparc +#define __sparc +#endif +#endif + +#ifdef __sparc +#ifndef __SVR4 +#define __sunos__ +#else +#define __solaris__ +#endif +#endif + +/*---------------------------------------------------------------------------*/ +/* similar on Sun 3's... */ + +#ifdef __m68k +#ifndef __NetBSD__ +#ifndef __MUNIX__ +#define __sunos__ +#endif +#endif +#endif + +/*===========================================================================*/ +/* 68K platforms */ + +#ifdef __m68k + +#define ARCHPRNAME "m68k" + +/*---------------------------------------------------------------------------*/ +/* SUN/3 with SunOS 4.x: + + see my SunOS quarrels in the Sparc section... */ + +#ifdef __sunos__ +#define ARCHSYSNAME "sun-sunos" +#define DEFSMADE +#define OPENRDMODE "r" +#define OPENWRMODE "w" +#define OPENUPMODE "r+" +#define IEEEFLOAT +#define NEEDS_CASECMP +#define BROKEN_SPRINTF +typedef signed char Integ8; +typedef unsigned char Card8; +typedef signed short Integ16; +typedef unsigned short Card16; +#define HAS16 +typedef signed int Integ32; +typedef unsigned int Card32; +#ifdef __GNUC__ +typedef signed long long Integ64; +typedef unsigned long long Card64; +#define HAS64 +#else +#define NOLONGLONG +#endif +#define memmove(s1,s2,len) bcopy(s2,s1,len) +extern void bcopy(); +#define NO_NLS +#endif + +/*---------------------------------------------------------------------------*/ +/* SUN/3 with NetBSD 1.x: + + quite a normal 32-Bit-UNIX system */ + +#ifdef __NetBSD__ +#define ARCHSYSNAME "sun-netbsd" +#define DEFSMADE +#define OPENRDMODE "r" +#define OPENWRMODE "w" +#define OPENUPMODE "r+" +#define IEEEFLOAT +typedef signed char Integ8; +typedef unsigned char Card8; +typedef signed short Integ16; +typedef unsigned short Card16; +#define HAS16 +typedef signed int Integ32; +typedef unsigned int Card32; +typedef signed long long Integ64; +typedef unsigned long long Card64; +#define HAS64 +#define LOCALE_NLS +#endif + +/*---------------------------------------------------------------------------*/ +/* PCS/Cadmus: + + quite a bare system, lots of work required... */ + +#ifdef __MUNIX__ +#define ARCHSYSNAME "pcs-munix" +#define DEFSMADE +#define OPENRDMODE "r" +#define OPENWRMODE "w" +#define OPENUPMODE "r+" +#define IEEEFLOAT +#define NEEDS_CASECMP +#define NEEDS_STRSTR +typedef char Integ8; +typedef unsigned char Card8; +typedef short Integ16; +typedef unsigned short Card16; +#define HAS16 +typedef int Integ32; +typedef unsigned int Card32; +#define NOLONGLONG +#define memmove(s1,s2,len) bcopy(s2,s1,len) +extern double strtod(); +extern char *getenv(); +#define NO_NLS +#endif +/*---------------------------------------------------------------------------*/ +/* Linux/68K: + + quite a normal 32-Bit-UNIX system */ + +#ifdef __linux__ +#define ARCHSYSNAME "unknown-linux" +#define DEFSMADE +#define OPENRDMODE "r" +#define OPENWRMODE "w" +#define OPENUPMODE "r+" +#define IEEEFLOAT +typedef signed char Integ8; +typedef unsigned char Card8; +typedef signed short Integ16; +typedef unsigned short Card16; +#define HAS16 +typedef signed int Integ32; +typedef unsigned int Card32; +typedef signed long long Integ64; +typedef unsigned long long Card64; +#define HAS64 +#define NO_NLS +#endif + +#endif /* __m68k */ + +/*===========================================================================*/ +/* SPARC platforms */ + +#ifdef __sparc + +#define ARCHPRNAME "sparc" + +/*---------------------------------------------------------------------------*/ +/* SUN Sparc with SunOS 4.1.x: + + don't try cc, use gcc, it's hopeless without an ANSI-compliant compiler... + SunOS does have NLS support, but it does not have D_FMT and T_FMT + I should change this ... + Though the manual pages claim that memmove and atexit exist, I could not + find them in any library :-( Fortunately, bcopy claims to be safe for + overlapping arrays, we just have to reverse source and destination pointers. + The sources themselves contain a switch to use on_exit instead of atexit + (it uses a different callback scheme, so we cannot just make a #define here...) + To get rid of most of the messages about missing prototypes, add + -D__USE_FIXED_PROTOTYPES__ to your compiler flags! + Apart from these few points, one could claim SunOS to be quite a normal + 32-bit-UNIX... */ + +#ifdef __sunos__ +#define ARCHSYSNAME "sun-sunos" +#define DEFSMADE +#define OPENRDMODE "r" +#define OPENWRMODE "w" +#define OPENUPMODE "r+" +#define IEEEFLOAT +typedef signed char Integ8; +typedef unsigned char Card8; +typedef signed short Integ16; +typedef unsigned short Card16; +#define HAS16 +typedef signed int Integ32; +typedef unsigned int Card32; +#ifdef __GNUC__ +typedef signed long long Integ64; +typedef unsigned long long Card64; +#define HAS64 +#else +#define NOLONGLONG +#endif +#define fpos_t long +#ifdef __STDC__ +extern void bcopy(); +#endif +#define memmove(s1,s2,len) bcopy(s2,s1,len) +#define NO_NLS +#endif + +/*---------------------------------------------------------------------------*/ +/* SUN Sparc with Solaris 2.x: + + quite a normal 32-Bit-UNIX system */ + +#ifdef __solaris__ +#define ARCHSYSNAME "sun-solaris" +#define DEFSMADE +#define OPENRDMODE "r" +#define OPENWRMODE "w" +#define OPENUPMODE "r+" +#define IEEEFLOAT +typedef signed char Integ8; +typedef unsigned char Card8; +typedef signed short Integ16; +typedef unsigned short Card16; +#define HAS16 +typedef signed int Integ32; +typedef unsigned int Card32; +typedef signed long long Integ64; +typedef unsigned long long Card64; +#define HAS64 +#define LOCALE_NLS +#endif + +#endif /* __sparc */ + +/*===========================================================================*/ +/* Mips platforms */ + +#ifdef __mips + +#define ARCHPRNAME "mips" + +/*---------------------------------------------------------------------------*/ +/* R3000 with Ultrix 4.3: + + nl_langinfo prototype is there, but no function in library ?! + use long long only if you have gcc, c89 doesn't like them ! + cc isn't worth trying, believe me! */ + +#ifdef __ultrix +#define ARCHSYSNAME "dec-ultrix" +#define DEFSMADE +#define OPENRDMODE "r" +#define OPENWRMODE "w" +#define OPENUPMODE "r+" +#define IEEEFLOAT +#define NEEDS_STRDUP +#define BROKEN_SPRINTF +typedef signed char Integ8; +typedef unsigned char Card8; +typedef signed short Integ16; +typedef unsigned short Card16; +#define HAS16 +typedef signed int Integ32; +typedef unsigned int Card32; +#ifdef __GNUC__ +typedef signed long long Integ64; +typedef unsigned long long Card64; +#define HAS64 +#else +#define NOLONGLONG +#endif +#define NO_NLS +#endif + +/*---------------------------------------------------------------------------*/ +/* R2000/3000 with NetBSD 1.2: + + quite a normal 32-Bit-UNIX system */ + +#ifdef __NetBSD__ +#define ARCHSYSNAME "dec-netbsd" +#define DEFSMADE +#define OPENRDMODE "r" +#define OPENWRMODE "w" +#define OPENUPMODE "r+" +#define IEEEFLOAT +typedef signed char Integ8; +typedef unsigned char Card8; +typedef signed short Integ16; +typedef unsigned short Card16; +#define HAS16 +typedef signed int Integ32; +typedef unsigned int Card32; +typedef signed long long Integ64; +typedef unsigned long long Card64; +#define HAS64 +#define LOCALE_NLS +#endif + +/*---------------------------------------------------------------------------*/ +/* R3000/4x00 with Irix 5.x: + + quite a normal 32-Bit-UNIX system + seems also to work with 6.2... */ + +#ifdef __sgi +#define ARCHSYSNAME "sgi-irix" +#define DEFSMADE +#define OPENRDMODE "r" +#define OPENWRMODE "w" +#define OPENUPMODE "r+" +#define IEEEFLOAT +typedef signed char Integ8; +typedef unsigned char Card8; +typedef signed short Integ16; +typedef unsigned short Card16; +#define HAS16 +typedef signed int Integ32; +typedef unsigned int Card32; +typedef signed long long Integ64; +typedef unsigned long long Card64; +#define HAS64 +#define LOCALE_NLS +#endif + +#endif /* __mips */ + +/*===========================================================================*/ +/* HP-PA platforms */ + +#ifdef __hppa + +#define ARCHPRNAME "parisc" + +/*---------------------------------------------------------------------------*/ +/* HP-PA 1.x with HP-UX: */ + +#ifdef __hpux +#define ARCHSYSNAME "hp-hpux" +#define DEFSMADE +#define OPENRDMODE "r" +#define OPENWRMODE "w" +#define OPENUPMODE "r+" +#define IEEEFLOAT +typedef signed char Integ8; +typedef unsigned char Card8; +typedef signed short Integ16; +typedef unsigned short Card16; +#define HAS16 +typedef signed int Integ32; +typedef unsigned int Card32; +typedef signed long long Integ64; +typedef unsigned long long Card64; +#define HAS64 +#define LOCALE_NLS +#endif + +#endif /* __hppa */ + +/*===========================================================================*/ +/* POWER platforms */ + +#ifdef _POWER + +#define ARCHPRNAME "rs6000" + +/*---------------------------------------------------------------------------*/ +/* POWER with AIX 4.1: */ + +#ifdef _AIX +#define ARCHSYSNAME "ibm-aix" +#define DEFSMADE +#define OPENRDMODE "r" +#define OPENWRMODE "w" +#define OPENUPMODE "r+" +#define IEEEFLOAT +typedef signed char Integ8; +typedef unsigned char Card8; +typedef signed short Integ16; +typedef unsigned short Card16; +#define HAS16 +typedef signed int Integ32; +typedef unsigned int Card32; +typedef signed long long Integ64; +typedef unsigned long long Card64; +#define HAS64 +#define LOCALE_NLS +#endif + +#endif /* _POWER */ + + +/*===========================================================================*/ +/* VAX platforms */ + +#ifdef vax + +#define ARCHPRNAME "vax" + +/*---------------------------------------------------------------------------*/ +/* VAX with Ultrix: */ + +#ifdef ultrix +#define ARCHSYSNAME "dec-ultrix" +#define DEFSMADE +#define OPENRDMODE "r" +#define OPENWRMODE "w" +#define OPENUPMODE "r+" +#define VAXFLOAT +#define NEEDS_STRDUP +#define NEEDS_CASECMP +#define BKOKEN_SPRINTF +typedef signed char Integ8; +typedef unsigned char Card8; +typedef signed short Integ16; +typedef unsigned short Card16; +#define HAS16 +typedef signed int Integ32; +typedef unsigned int Card32; +#define NOLONGLONG +#define NO_NLS +#endif + +#endif + +/*===========================================================================*/ +/* DEC Alpha platforms */ + +#ifdef __alpha + +#define ARCHPRNAME "alpha" + +/*---------------------------------------------------------------------------*/ +/* DEC Alpha with Digital UNIX and DEC C / GCC: + + Alpha is a 64 bit machine, so we do not need to use extra longs + OSF has full NLS support */ + +#ifdef __osf__ +#define ARCHSYSNAME "dec-osf" +#define DEFSMADE +#define OPENRDMODE "r" +#define OPENWRMODE "w" +#define OPENUPMODE "r+" +#define IEEEFLOAT +typedef signed char Integ8; +typedef unsigned char Card8; +typedef signed short Integ16; +typedef unsigned short Card16; +#define HAS16 +typedef signed int Integ32; +typedef unsigned int Card32; +typedef signed long Integ64; +typedef unsigned long Card64; +#define HAS64 +#define LOCALE_NLS +#endif + +/*---------------------------------------------------------------------------*/ +/* DEC Alpha with Linux and GCC: + + see OSF... + NLS still missing...well, my Linux/Alpha is stone-age and still + ECOFF-based... */ + +#ifdef __linux__ +#define ARCHSYSNAME "unknown-linux" +#define DEFSMADE +#define OPENRDMODE "r" +#define OPENWRMODE "w" +#define OPENUPMODE "r+" +#define IEEEFLOAT +typedef signed char Integ8; +typedef unsigned char Card8; +typedef signed short Integ16; +typedef unsigned short Card16; +#define HAS16 +typedef signed int Integ32; +typedef unsigned int Card32; +typedef signed long Integ64; +typedef unsigned long Card64; +#define HAS64 +#define LOCALE_NLS +#endif + +#endif /* __alpha */ + +/*===========================================================================*/ +/* Intel i386 platforms */ + +#ifdef __i386 + +#define ARCHPRNAME "i386" + +/*---------------------------------------------------------------------------*/ +/* Intel i386 with Linux and GCC: + + principally, a normal 32-bit *NIX */ + +#ifdef __linux__ +#define ARCHSYSNAME "unknown-linux" +#define DEFSMADE +#define OPENRDMODE "r" +#define OPENWRMODE "w" +#define OPENUPMODE "r+" +#define IEEEFLOAT +typedef signed char Integ8; +typedef unsigned char Card8; +typedef signed short Integ16; +typedef unsigned short Card16; +#define HAS16 +typedef signed int Integ32; +typedef unsigned int Card32; +typedef signed long long Integ64; +typedef unsigned long long Card64; +#define HAS64 +#define LOCALE_NLS +#endif + +/*---------------------------------------------------------------------------*/ +/* Intel i386 with FreeBSD and GCC: + + principally, a normal 32-bit *NIX */ + +#ifdef __FreeBSD__ +#define ARCHSYSNAME "unknown-freebsd" +#define DEFSMADE +#define OPENRDMODE "r" +#define OPENWRMODE "w" +#define OPENUPMODE "r+" +#define IEEEFLOAT +typedef signed char Integ8; +typedef unsigned char Card8; +typedef signed short Integ16; +typedef unsigned short Card16; +#define HAS16 +typedef signed int Integ32; +typedef unsigned int Card32; +typedef signed long long Integ64; +typedef unsigned long long Card64; +#define HAS64 +#define NO_NLS +#endif + +/*---------------------------------------------------------------------------*/ +/* Intel i386 with WIN32 and Cygnus GCC: + + well, not really a UNIX... */ + +#ifdef _WIN32 +#define ARCHSYSNAME "unknown-win32" +#define DEFSMADE +#define OPENRDMODE "rb" +#define OPENWRMODE "wb" +#define OPENUPMODE "rb+" +#define IEEEFLOAT +#define PATHSEP '\\' +#define SPATHSEP "\\" +#define DIRSEP ';' +#define SDIRSEP ";" +/*#define DRSEP ':' +#define SDRSEP ":"*/ +#define NULLDEV "NUL" +typedef signed char Integ8; +typedef unsigned char Card8; +typedef signed short Integ16; +typedef unsigned short Card16; +#define HAS16 +typedef signed int Integ32; +typedef unsigned int Card32; +typedef signed long long Integ64; +typedef unsigned long long Card64; +#define HAS64 +#define NO_NLS +#endif + +/*---------------------------------------------------------------------------*/ +/* Intel i386 with OS/2 and emx-GCC: + + well, not really a UNIX... */ + +#ifdef __EMX__ +#define ARCHSYSNAME "unknown-os2" +#define DEFSMADE +#define OPENRDMODE "rb" +#define OPENWRMODE "wb" +#define OPENUPMODE "rb+" +#define IEEEFLOAT +#define PATHSEP '\\' +#define SPATHSEP "\\" +#define DIRSEP ';' +#define SDIRSEP ";" +#define DRSEP ':' +#define SDRSEP ":" +#define NULLDEV "NUL" +#define NEEDS_CASECMP +typedef signed char Integ8; +typedef unsigned char Card8; +typedef signed short Integ16; +typedef unsigned short Card16; +#define HAS16 +typedef signed int Integ32; +typedef unsigned int Card32; +typedef signed long long Integ64; +typedef unsigned long long Card64; +#define HAS64 +#define OS2_NLS +#endif + +/*---------------------------------------------------------------------------*/ +/* Intel i386 with OS/2 and IBMC: + +well, not really a UNIX... */ + +#ifdef __IBMC__ +#define DEFSMADE +#define NODUP +#define OPENRDMODE "rb" +#define OPENWRMODE "wb" +#define OPENUPMODE "rb+" +#define PATHSEP '\\' +#define SPATHSEP "\\" +#define DRSEP ':' +#define SDRSEP ":" +#define NULLDEV "NUL" +#define NEEDS_CASECMP +typedef signed char Integ8; +typedef unsigned char Card8; +typedef signed short Integ16; +typedef unsigned short Card16; +#define HAS16 +typedef signed int Integ32; +typedef unsigned int Card32; +#define NOLONGLONG +#define OS2_NLS +#endif + +/*---------------------------------------------------------------------------*/ +/* Intel x86 with MS-DOS and Borland-C: + + well, not really a UNIX... + assure we get a usable memory model */ + +#ifdef __MSDOS__ +#ifdef __TURBOC__ +#ifndef __LARGE__ +#error Wrong memory model - use large! +#endif +#undef ARCHPRNAME +#ifdef __DPMI16__ +#define ARCHPRNAME "i286" +#define ARCHSYSNAME "unknown-dpmi" +#else +#define ARCHPRNAME "i86" +#define ARCHSYSNAME "unknown-msdos" +#endif +#define CKMALLOC +#define DEFSMADE +#define OPENRDMODE "rb" +#define OPENWRMODE "wb" +#define OPENUPMODE "rb+" +#define IEEEFLOAT +#define PATHSEP '\\' +#define SPATHSEP "\\" +#define DIRSEP ';' +#define SDIRSEP ";" +#define DRSEP ':' +#define SDRSEP ":" +#define NULLDEV "NUL" +#define NEEDS_CASECMP +typedef signed char Integ8; +typedef unsigned char Card8; +typedef signed short Integ16; +typedef unsigned short Card16; +#define HAS16 +typedef signed long Integ32; +typedef unsigned long Card32; +#define NOLONGLONG +#define DOS_NLS +#define __PROTOS__ +#endif +#endif + +#endif /* __i386 */ + +/*===========================================================================*/ +/* Misc... */ + +/*---------------------------------------------------------------------------*/ +/* Just for curiosity, it won't work without 16 bit int's... */ + +#ifdef _CRAYMPP +#define OPENRDMODE "r" +#define OPENWRMODE "w" +#define OPENUPMODE "r+" +#define IEEEFLOAT +typedef signed char Integ8; +typedef unsigned char Card8; +typedef signed short Integ32; +typedef unsigned short Card32; +typedef signed int Integ64; +typedef unsigned int Card64; +#define HAS64 +#define LOCALE_NLS +#endif + +/*===========================================================================*/ +/* Post-Processing: check for definition, add defaults */ + + +#ifdef DEFSMADE +#ifndef PATHSEP +#define PATHSEP '/' +#define SPATHSEP "/" +#define DIRSEP ':' +#define SDIRSEP ":" +#endif +#ifndef NULLDEV +#define NULLDEV "/dev/null" +#endif +#else +#error "your platform so far is not included in AS's header files!" +#error "please edit sysdefs.h!" +#endif + +#ifdef CKMALLOC +#define malloc(s) ckmalloc(s) +#define realloc(p,s) ckrealloc(p,s) + +extern void *ckmalloc(size_t s); + +extern void *ckrealloc(void *p, size_t s); +#endif -- cgit v1.2.3