|
|
1.1 root 1: /* m- file for SEQUENT BALANCE machines
2: Copyright (C) 1985, 1986 Free Software Foundation, Inc.
3:
4: This file is part of GNU Emacs.
5:
6: GNU Emacs is free software; you can redistribute it and/or modify
7: it under the terms of the GNU General Public License as published by
8: the Free Software Foundation; either version 1, or (at your option)
9: any later version.
10:
11: GNU Emacs is distributed in the hope that it will be useful,
12: but WITHOUT ANY WARRANTY; without even the implied warranty of
13: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14: GNU General Public License for more details.
15:
16: You should have received a copy of the GNU General Public License
17: along with GNU Emacs; see the file COPYING. If not, write to
18: the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
19:
20:
21: /* NOTE: this file works for DYNIX release 2.0
22: (not tested on 1.3) on NS32000's */
23:
24: /* The following three symbols give information on
25: the size of various data types. */
26:
27: #define SHORTBITS 16 /* Number of bits in a short */
28:
29: #define INTBITS 32 /* Number of bits in an int */
30:
31: #define LONGBITS 32 /* Number of bits in a long */
32:
33: /* Define BIG_ENDIAN iff lowest-numbered byte in a word
34: is the most significant byte. */
35:
36: /* #define BIG_ENDIAN */
37:
38: /* Define NO_ARG_ARRAY if you cannot take the address of the first of a
39: * group of arguments and treat it as an array of the arguments. */
40:
41: /* #define NO_ARG_ARRAY */
42:
43: /* Define WORD_MACHINE if addresses and such have
44: * to be corrected before they can be used as byte counts. */
45:
46: /* #define WORD_MACHINE */
47:
48: /* Define how to take a char and sign-extend into an int.
49: On machines where char is signed, this is a no-op. */
50:
51: #define SIGN_EXTEND_CHAR(c) (c)
52:
53: /* Now define a symbol for the cpu type, if your compiler
54: does not define it automatically:
55: vax, m68000, ns16000, pyramid, orion, tahoe and APOLLO
56: are the ones defined so far. */
57:
58: /* BTW: DYNIX defines sequent, ns32000, and ns16000 (GENIX compatibility) */
59: #ifndef sequent /* pre DYNIX 2.1 releases */
60: # define sequent
61: #endif
62:
63: /* Use type int rather than a union, to represent Lisp_Object */
64: /* This is desirable for most machines. */
65:
66: #define NO_UNION_TYPE
67:
68: /* crt0.c should use the vax-bsd style of entry, with these dummy args. */
69:
70: #define CRT0_DUMMIES bogus_fp,
71:
72: /* crt0.c should define a symbol `start' and do .globl with a dot. */
73:
74: #define DOT_GLOBAL_START
75:
76: /* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
77: the 24-bit bit field into an int. In other words, if bit fields
78: are always unsigned.
79:
80: If you use NO_UNION_TYPE, this flag does not matter. */
81:
82: #define EXPLICIT_SIGN_EXTEND
83:
84: /* Data type of load average, as read out of kmem. */
85:
86: #define LOAD_AVE_TYPE unsigned long
87:
88: /* Convert that into an integer that is 100 for a load average of 1.0 */
89:
90: #define FSCALE 1000.0
91: #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE)
92:
93: /* Define CANNOT_DUMP on machines where unexec does not work.
94: Then the function dump-emacs will not be defined
95: and temacs will do (load "loadup") automatically unless told otherwise. */
96:
97: /* #define CANNOT_DUMP */
98:
99: /* Define VIRT_ADDR_VARIES if the virtual addresses of
100: pure and impure space as loaded can vary, and even their
101: relative order cannot be relied on.
102:
103: Otherwise Emacs assumes that text space precedes data space,
104: numerically. */
105:
106: /* #define VIRT_ADDR_VARIES */
107:
108: /* Define C_ALLOCA if this machine does not support a true alloca
109: and the one written in C should be used instead.
110: Define HAVE_ALLOCA to say that the system provides a properly
111: working alloca function and it should be used.
112: Define neither one if an assembler-language alloca
113: in the file alloca.s should be used. */
114:
115: /* #define C_ALLOCA */
116: #define HAVE_ALLOCA
117:
118: /* Name of file the to look in
119: for the kernel symbol table (for load average) */
120:
121: #undef KERNEL_FILE
122: #define KERNEL_FILE "/dynix"
123:
124: /* Avoids a compiler bug */
125:
126: #define TAHOE_REGISTER_BUG
127:
128: /* Say that the text segment of a.out includes the header;
129: the header actually occupies the first few bytes of the text segment
130: and is counted in hdr.a_text. Furthermore, the value written
131: in the a_text in the file must have N_ADDRADJ added to it. */
132:
133: #define A_TEXT_OFFSET(HDR) (sizeof (HDR) + N_ADDRADJ (HDR))
134:
135: /* (short) negative-int doesn't sign-extend correctly */
136: #define SHORT_CAST_BUG
137:
138: /* Cause compilations to be done in parallel in ymakefile. */
139: #define MAKE_PARALLEL &
140:
141: /* Say that mailer interlocking uses flock. */
142: #define MAIL_USE_FLOCK
143:
144: /* On many 4.2-based systems, there's a rather tricky bug
145: * with the interpretation of the pid/pgrp value given to
146: * the F_SETOWN fcntl() call. It works as documented EXCEPT
147: * when applied to filedescriptors for sockets, in which case
148: * the sign must be reversed. If your emacs subprocesses get
149: * SIGIO's when they shouldn't, while running on a socket
150: * (e.g. under X windows), you should probably define this.
151: */
152:
153: #define F_SETOWN_SOCK_NEG
154:
155: /* Some really obscure 4.2-based systems (like Sequent DYNIX)
156: * do not support asynchronous I/O (using SIGIO) on sockets,
157: * even though it works fine on tty's. If you have one of
158: * these systems, define the following, and then use it in
159: * config.h (or elsewhere) to decide when (not) to use SIGIO.
160: */
161:
162: #define NO_SOCK_SIGIO
163:
164: /* Define how to search all pty names.
165: This is for Dynix 3.0; delete next 5 definitions for older systems. */
166:
167: #define PTY_MAJOR "pqrstuvwPQRSTUVW"
168: #define PTY_MINOR "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
169: #define PTY_ITERATION \
170: register int ma, mi; \
171: for (ma = 0; ma < sizeof(PTY_MAJOR) - 1; ma++) \
172: for (mi = 0; mi < sizeof(PTY_MINOR) - 1; mi++)
173: #define PTY_NAME_SPRINTF \
174: sprintf (pty_name, "/dev/pty%c%c", PTY_MAJOR[ma], PTY_MINOR[mi]);
175: #define PTY_TTY_NAME_SPRINTF \
176: sprintf (pty_name, "/dev/tty%c%c", PTY_MAJOR[ma], PTY_MINOR[mi]);
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.