home *** CD-ROM | disk | FTP | other *** search
/ OpenStep 4.2J (Developer) / os42jdev.iso / NextDeveloper / Source / GNU / emacs / src / m-dpx2.h < prev    next >
C/C++ Source or Header  |  1992-04-17  |  8KB  |  287 lines

  1. /* NAME:
  2.  *      m-dpx2.h - machine description for Bull DPX/2 range
  3.  *
  4.  * SYNOPSIS:
  5.  *      #include "s-usg5-3.h"
  6.  *      #include "m-dpx2.h"
  7.  *
  8.  * DESCRIPTION:
  9.  *      This header is part of GNU Emacs, and therefore 
  10.  *      falls under the FSF GPL.  There should be a copy of it 
  11.  *      somewhere on your system (see below).
  12.  *      
  13.  *      This header file, and a _minor_ change to 
  14.  *      config.h-dist are all that are needed to build GNU 
  15.  *      Emacs-18.58 on a Bull DPX/2 model 200 or 300.
  16.  *      The DPX/2 500 should probably use a mips based config.
  17.  *
  18.  *      The only change _needed_ to config.h (copied from 
  19.  *      config.h-dist) is to define the appropriate ncl_{el,mr} 
  20.  *      pre-processor constant.  Hopefully in a future release 
  21.  *      the C compiler will define this automagically :-)
  22.  *      
  23.  *    If you have INET and X11 loaded, define HAVE_X_WINDOWS
  24.  *    before you include this file.  If you have INET but not
  25.  *    X11 loaded define HAVE_SOCKETS in config.h before you
  26.  *    include this file.
  27.  *
  28.  *      If you make changes to this file, please be sure to send 
  29.  *      an update to me:  <sjg@melb.bull.oz.au>
  30.  *      
  31.  *      Please read through this file before attempting to build 
  32.  *      Emacs.  You may need to set SRC_COMPAT=_SYSV in your
  33.  *    environment or in Makefile. 
  34.  *
  35.  *
  36.  * AMENDED:
  37.  *      92/02/06  12:53:06  (sjg)
  38.  *
  39.  * RELEASED:
  40.  *      92/02/06  12:53:07  v1.7
  41.  *
  42.  * BUGS:
  43.  *    There is a problem when running Emacs with its own X
  44.  *    window in that if the invoking process terminates,
  45.  *    Emacs will terminate shortly afterwards.  The following
  46.  *    exercises the bug:
  47.  *        $ ksh
  48.  *        $ emacs &
  49.  *        $ exit
  50.  *    The emacs process will die within a few minutes of the
  51.  *    invoking ksh's termination.  Solution?  Don't do the
  52.  *    above :-)
  53.  *
  54.  * SCCSID:
  55.  *      @(#)m-dpx2.h  1.7  92/02/06  12:53:06  (sjg)
  56.  */
  57.  
  58. /* 
  59.    Copyright (C) 1985, 1986 Free Software Foundation, Inc.
  60.  
  61. This file is part of GNU Emacs.
  62.  
  63. GNU Emacs is free software; you can redistribute it and/or modify
  64. it under the terms of the GNU General Public License as published by
  65. the Free Software Foundation; either version 1, or (at your option)
  66. any later version.
  67.  
  68. GNU Emacs is distributed in the hope that it will be useful,
  69. but WITHOUT ANY WARRANTY; without even the implied warranty of
  70. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  71. GNU General Public License for more details.
  72.  
  73. You should have received a copy of the GNU General Public License
  74. along with GNU Emacs; see the file COPYING.  If not, write to
  75. the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
  76.  
  77. /*
  78.  * You need to either un-comment one of these lines, or copy one 
  79.  * of them to config.h before you include this file.
  80.  * Note that some simply define a constant and others set a value.
  81.  */
  82.  
  83. /* #define ncl_el    /* DPX/2 210,220 etc */
  84. /* #define ncl_mr 1    /* DPX/2 320,340 (and 360,380 ?) */
  85.  
  86.  
  87. /* The following three symbols give information on
  88.  the size of various data types.  */
  89.  
  90. #define SHORTBITS 16        /* Number of bits in a short */
  91.  
  92. #define INTBITS 32        /* Number of bits in an int */
  93.  
  94. #define LONGBITS 32        /* Number of bits in a long */
  95.  
  96. /* Define BIG_ENDIAN iff lowest-numbered byte in a word
  97.    is the most significant byte.  */
  98.  
  99. #define BIG_ENDIAN
  100.  
  101. /* Define NO_ARG_ARRAY if you cannot take the address of the first of a
  102.  * group of arguments and treat it as an array of the arguments.  */
  103.  
  104. #define NO_ARG_ARRAY
  105.  
  106. /* Define WORD_MACHINE if addresses and such have
  107.  * to be corrected before they can be used as byte counts.  */
  108.  
  109. /* #define WORD_MACHINE /**/
  110.  
  111. /* Define how to take a char and sign-extend into an int.
  112.    On machines where char is signed, this is a no-op.  */
  113.  
  114. #define SIGN_EXTEND_CHAR(c) (c)
  115.  
  116. /* Now define a symbol for the cpu type, if your compiler
  117.    does not define it automatically:
  118.    Ones defined so far include vax, m68000, ns16000, pyramid,
  119.    orion, tahoe, APOLLO and many others */
  120.  
  121. /* /bin/cc on ncl_el and ncl_mr define m68k and mc68000 */
  122.  
  123. /* Use type int rather than a union, to represent Lisp_Object */
  124. /* This is desirable for most machines.  */
  125.  
  126. #define NO_UNION_TYPE
  127.  
  128. /* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
  129.    the 24-bit bit field into an int.  In other words, if bit fields
  130.    are always unsigned.
  131.  
  132.    If you use NO_UNION_TYPE, this flag does not matter.  */
  133.  
  134. #define EXPLICIT_SIGN_EXTEND
  135.  
  136. /* Data type of load average, as read out of kmem.  */
  137.  
  138. #define LOAD_AVE_TYPE long
  139.  
  140. /* Convert that into an integer that is 100 for a load average of 1.0  */
  141.  
  142. #define FSCALE 1000.0
  143. #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE)
  144.  
  145. /* Define CANNOT_DUMP on machines where unexec does not work.
  146.    Then the function dump-emacs will not be defined
  147.    and temacs will do (load "loadup") automatically unless told otherwise.  */
  148.  
  149. /* #define CANNOT_DUMP /**/
  150.  
  151. /* Define VIRT_ADDR_VARIES if the virtual addresses of
  152.    pure and impure space as loaded can vary, and even their
  153.    relative order cannot be relied on.
  154.  
  155.    Otherwise Emacs assumes that text space precedes data space,
  156.    numerically.  */
  157.  
  158. /* #define VIRT_ADDR_VARIES /**/
  159.  
  160. /* Define C_ALLOCA if this machine does not support a true alloca
  161.    and the one written in C should be used instead.
  162.    Define HAVE_ALLOCA to say that the system provides a properly
  163.    working alloca function and it should be used.
  164.    Define neither one if an assembler-language alloca
  165.    in the file alloca.s should be used.  */
  166.  
  167. #define C_ALLOCA
  168. /* #define HAVE_ALLOCA /**/
  169.  
  170. /* Define NO_REMAP if memory segmentation makes it not work well
  171.    to change the boundary between the text section and data section
  172.    when Emacs is dumped.  If you define this, the preloaded Lisp
  173.    code will not be sharable; but that's better than failing completely.  */
  174.  
  175. #define NO_REMAP
  176.  
  177. /*
  178.  * end of the standard macro's
  179.  */
  180.  
  181. /*
  182.  * a neat identifier to handle source mods (if needed)
  183.  */
  184. #define DPX2
  185.  
  186. /*
  187.  * if we use X11, libX11.a has these...
  188.  */
  189. #ifdef HAVE_X_WINDOWS
  190. # undef LIBX11_SYSTEM
  191. # define LIBX11_SYSTEM -lnsl
  192. # define BSTRING
  193. # define HAVE_GETWD
  194. # define HAVE_GETTIMEOFDAY
  195. /*
  196.  * Bull's X11R3 and X11R4 libs contain random and friends.
  197.  * The MIT X11R5 lib does not.
  198.  */
  199. # define HAVE_RANDOM
  200. /*
  201.  * we must have INET loaded so we have sockets
  202.  */
  203. # define HAVE_SOCKETS
  204. #endif /* HAVE_X_WINDOWS */
  205.  
  206. /*
  207.  * useful if you have INET loaded
  208.  */
  209. #ifdef HAVE_SOCKETS
  210. # define LIBS_MACHINE -linet
  211. #endif
  212.  
  213.  
  214. #if (defined(ncl_mr) || defined(ncl_el)) && !defined (NBPC)
  215. # define NBPC 4096
  216. #endif
  217.  
  218. /*
  219.  * if SIGIO is defined, much of the emacs
  220.  * code assumes we are BSD !!
  221.  */
  222. #ifdef SIGIO
  223. # undef SIGIO
  224. #endif
  225.  
  226. /*
  227.  * a good idea on multi-user systems :-)
  228.  */
  229. #define CLASH_DETECTION        /* probably a good idea */
  230. #define NO_FCHMOD  /* Use chmod instead.  */
  231.  
  232.  
  233. #ifdef SIGTSTP
  234. /*
  235.  * sysdep.c(sys_suspend) works fine with emacs-18.58
  236.  * and BOS 02.00.45, if you have an earler version
  237.  * of Emacs and/or BOS, or have problems, or just prefer
  238.  * to start a sub-shell rather than suspend-emacs,
  239.  * un-comment out the next line.
  240.  */
  241. /* # undef SIGTSTP /* make suspend-emacs spawn a sub-shell */
  242. # ifdef NOMULTIPLEJOBS
  243. #   undef NOMULTIPLEJOBS
  244. # endif
  245. #endif
  246. /*
  247.  * no we don't want this at all
  248.  */
  249. #ifdef USG_JOBCTRL
  250. # undef USG_JOBCTRL
  251. #endif
  252.  
  253.  
  254. /* 
  255.  * X support _needs_ this
  256.  */
  257. #define HAVE_SELECT
  258. /*
  259.  * and select requires these
  260.  */
  261. #define HAVE_TIMEVAL
  262. #define USE_UTIME
  263.  
  264. /* select also needs this header file--but not in ymakefile.  */
  265. #ifndef NO_SHORTNAMES
  266. #include <sys/types.h>
  267. #include <sys/select.h>
  268. #endif
  269.  
  270. #define TEXT_START 0
  271. /* 
  272.  * Define the direction of stack growth. 
  273.  */
  274. #define STACK_DIRECTION -1
  275.  
  276. /*
  277.  * define _SYSV
  278.  * this is needed by a lot of the B.O.S include files so that 
  279.  * what emacs wants is really included.
  280.  * Causes the POSIX stuff to be skipped.
  281.  */
  282. #ifndef _SYSV
  283. # define _SYSV
  284. #endif
  285.  
  286. /* end of m-dpx2.h */
  287.