# HG changeset patch # User Jim Blandy # Date 738709071 0 # Node ID 4bf437bb0180801c4cc6e6ed33e7f209df517d30 # Parent a5e5e1e04331b5d46ae073b439cea81da2903f47 Initial revision diff -r a5e5e1e04331 -r 4bf437bb0180 src/m/tekxd88.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/m/tekxd88.h Sat May 29 20:57:51 1993 +0000 @@ -0,0 +1,184 @@ ++/* m- file for Tektronix XD88 running UTekV 3.2e to be used with s-usg5-3.h, ++ contributed by Kaveh Ghazi (ghazi@caip.rutgers.edu) 1/15/93. ++ You probably need to use gnu make (version 3.63 or higher.) ++ Copyright (C) 1993 Free Software Foundation, Inc. ++ ++This file is part of GNU Emacs. ++ ++GNU Emacs is distributed in the hope that it will be useful, ++but WITHOUT ANY WARRANTY. No author or distributor ++accepts responsibility to anyone for the consequences of using it ++or for whether it serves any particular purpose or works at all, ++unless he says so in writing. Refer to the GNU Emacs General Public ++License for full details. ++ ++Everyone is granted permission to copy, modify and redistribute ++GNU Emacs, but only under the conditions described in the ++GNU Emacs General Public License. A copy of this license is ++supposed to have been given to you along with GNU Emacs so you ++can know your rights and responsibilities. It should be in a ++file named COPYING. Among other things, the copyright notice ++and this notice must be preserved on all copies. */ ++ ++/* The following three symbols give information on ++ the size of various data types. */ ++#define SHORTBITS 16 /* Number of bits in a short */ ++#define INTBITS 32 /* Number of bits in an int */ ++#define LONGBITS 32 /* Number of bits in a long */ ++ ++/* Define BIG_ENDIAN iff lowest-numbered byte in a word ++ is the most significant byte. */ ++#define BIG_ENDIAN ++ ++/* Define NO_ARG_ARRAY if you cannot take the address of the first of a ++ * group of arguments and treat it as an array of the arguments. */ ++#define NO_ARG_ARRAY ++ ++/* Define WORD_MACHINE if addresses and such have ++ * to be corrected before they can be used as byte counts. */ ++/* #define WORD_MACHINE */ ++ ++/* Now define a symbol for the cpu type, if your compiler ++ does not define it automatically: ++ Ones defined so far include vax, m68000, ns16000, pyramid, ++ orion, tahoe, APOLLO and many others */ ++#ifndef m88000 /* Some 88k C compilers already define this */ ++#define m88000 ++#endif ++ ++/* Define how to take a char and sign-extend into an int. ++ On machines where char is signed, this is a no-op. */ ++#define SIGN_EXTEND_CHAR(c) (c) ++ ++/* Now define a symbol for the cpu type, if your compiler ++ does not define it automatically. */ ++ ++ ++/* Use type int rather than a union, to represent Lisp_Object */ ++/* This is desirable for most machines. */ ++#define NO_UNION_TYPE ++ ++/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend ++ the 24-bit bit field into an int. In other words, if bit fields ++ are always unsigned. ++ ++ If you use NO_UNION_TYPE, this flag does not matter. */ ++/* #define EXPLICIT_SIGN_EXTEND */ ++ ++/* Data type of load average, as read out of kmem. */ ++/* No load average on XD88 machines. */ ++/* #define LOAD_AVE_TYPE double */ ++ ++/* Convert that into an integer that is 100 for a load average of 1.0 */ ++/* #define LOAD_AVE_CVT(x) ((int) ((x) * 100.0)) */ ++ ++/* Define CANNOT_DUMP on machines where unexec does not work. ++ Then the function dump-emacs will not be defined ++ and temacs will do (load "loadup") automatically unless told otherwise. */ ++#define CANNOT_DUMP /* oh well, maybe someday ... */ ++ ++/* Define VIRT_ADDR_VARIES if the virtual addresses of ++ pure and impure space as loaded can vary, and even their ++ relative order cannot be relied on. ++ ++ Otherwise Emacs assumes that text space precedes data space, ++ numerically. */ ++/* #define VIRT_ADDR_VARIES */ ++ ++/* Define NO_REMAP if memory segmentation makes it not work well ++ to change the boundary between the text section and data section ++ when Emacs is dumped. If you define this, the preloaded Lisp ++ code will not be sharable; but that's better than failing completely. */ ++#define NO_REMAP ++ ++/* Define C_ALLOCA if this machine does not support a true alloca ++ and the one written in C should be used instead. ++ Define HAVE_ALLOCA to say that the system provides a properly ++ working alloca function and it should be used. ++ Define neither one if an assembler-language alloca ++ in the file alloca.s should be used. */ ++#ifdef __GNUC__ ++# define alloca __builtin_alloca /* Use the gcc builtin alloca() ... */ ++# define HAVE_ALLOCA /* ... and be sure that no other ones are tried out. */ ++# undef C_ALLOCA ++# define C_OPTIMIZE_SWITCH -O2 ++#else /* not __GNUC__ */ ++# undef HAVE_ALLOCA ++# define C_ALLOCA /* Use the alloca() supplied in alloca.c. */ ++# define STACK_DIRECTION -1 /* The stack grows towards lower addresses. */ ++# define C_OPTIMIZE_SWITCH -O ++#endif /* __GNUC__ */ ++ ++/*#define C_DEBUG_SWITCH C_OPTIMIZE_SWITCH*/ /* Uncomment this to optimize */ ++ ++/* XD88 SysV has PTYs. Not all usg3-5 systems do, so this is defined here. */ ++#define HAVE_PTYS ++#define SYSV_PTYS /* Requires */ ++ ++/* we have job control */ ++#undef NOMULTIPLEJOBS ++ ++/* ++ * sockets are available ++ */ ++#define HAVE_SOCKETS ++ ++/* ++ * we have Berkeley style ++ */ ++#define HAVE_TIMEVAL ++ ++/* XD88 has select(). */ ++#define HAVE_SELECT ++#define BROKEN_FIONREAD /* is this needed ? */ ++ ++/* ++ * don't use utimes, we ain't got one - use utime() instead ++ */ ++#define USE_UTIME ++ ++#define NO_SIOCTL_H ++ ++/* We need HAVE_TCATTR to prevent Ctrl-Z from suspending Emacs before ++ suspend-emacs has been called. */ ++/*#define HAVE_TCATTR*/ ++/* TCATTR gives bogus baud rates. Use the following for OSPEED instead. */ ++/*#define OSPEED(str) (cfgetospeed(&(str)))*/ ++#define HAVE_TERMIOS ++#undef HAVE_TERMIO ++ ++#define BSTRING /* its in libc but not declared in any <*.h> file. */ ++#define HAVE_TZSET ++#define HAVE_SETSID ++#define HAVE_RENAME ++ ++#ifdef ghs /* Stands for "Green Hills Software", defined in /bin/cc */ ++/* Only required for use with the Green Hills compiler: ++ -X18 Do not allocate programmer-defined local variables to a ++ register unless they are declared register. (From building ++ perl-4.036 Green Hills hints. Might be needed for setjmp.) ++ */ ++#define C_SWITCH_MACHINE -X18 ++/* We need /lib/default.ld so the bundled ld can read its link directives. */ ++#define LD_SWITCH_SYSTEM /lib/default.ld ++#endif /* ghs */ ++ ++/* XD88 does not have the random() and srandom() calls in the base system, ++ but they exist in libX11.a. So, if you are building with X11 then you ++ will need to define HAVE_RANDOM. */ ++#ifdef HAVE_X_WINDOWS ++#define HAVE_RANDOM ++#undef LIB_X11_LIB /* don't use the shared library default from usg5-3.h */ ++#undef LIBX11_SYSTEM ++#endif /* HAVE_X_WINDOWS */ ++ ++/*#define SYSTEM_MALLOC*/ ++ ++#ifndef UTEKV ++#define UTEKV /* system specific symbol */ ++#endif /* !UTEKV */ ++ ++/* stuff to hopefully someday get dumping working ... */ ++/*#define SECTION_ALIGNMENT 0x1ff*/ ++/*#define SEGMENT_MASK 0xff*/ ++/*#define A_TEXT_OFFSET(HDR) sizeof(HDR)*/