fe9b01b07e13349dc1e496003c690f8623900a20
[chise/xemacs-chise.git] / src / m / arm.h
1 /* Machine description file for digital/intel arm/strongarm
2    Copyright (C) 1987 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 2, 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 XEmacs; see the file COPYING.  If not, write to
18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19 Boston, MA 02111-1307, USA.  */
20
21 /* Synched up with: FSF 19.31. */
22
23 /* Now define a symbol for the cpu type, if your compiler
24    does not define it automatically:
25    Ones defined so far include vax, m68000, ns16000, pyramid,
26    orion, tahoe, APOLLO and many others */
27
28 #ifndef arm
29 #define arm
30 #endif
31
32 /* crt0.c, if it is used, should use the i386-bsd style of entry.
33    with no extra dummy args.  On USG and XENIX,
34    NO_REMAP says this isn't used. */
35
36 /* Mly 16-Jan-96 16:38:32: this is part of a prototype -- same bug present in 
37    other m*.h files */
38 #define CRT0_DUMMIES int bogus_fp,
39
40 /* crt0.c should define a symbol `start' and do .globl with a dot.  */
41
42 #define DOT_GLOBAL_START
43
44 #ifdef USG5_4 /* Older USG systems do not support the load average.  */
45 /* Data type of load average, as read out of kmem.  */
46
47 #define LOAD_AVE_TYPE long
48
49 /* Convert that into an integer that is 100 for a load average of 1.0  */
50 /* This is totally uncalibrated. */
51
52
53 /* FSHIFT and FSCALE are defined in param.h, but are required by
54    LOAD_AVE_CVT, so they need to be defined here.  */
55
56 #ifndef FSHIFT
57 #define FSHIFT  8       /* bits to right of fixed binary point */
58 #endif
59
60 #ifndef FSCALE
61 #define FSCALE  (1<<FSHIFT)
62 #endif
63
64 #define LOAD_AVE_CVT(x) ((int) (((double) (x)) * 100.0 / FSCALE))
65 #endif
66
67
68 /* Define CANNOT_DUMP on machines where unexec does not work.
69    Then the function dump-emacs will not be defined
70    and temacs will do (load "loadup") automatically unless told otherwise.  */
71
72 #undef CANNOT_DUMP
73
74 /* Define VIRT_ADDR_VARIES if the virtual addresses of
75    pure and impure space as loaded can vary, and even their
76    relative order cannot be relied on.
77
78    Otherwise Emacs assumes that text space precedes data space,
79    numerically.  */
80
81 #undef VIRT_ADDR_VARIES
82
83
84 /* this brings in alloca() if we're using cc */
85 #ifdef USG
86 #define NO_REMAP 
87 #define TEXT_START 0
88 #endif /* USG */
89
90
91 #ifdef MSDOS
92 #define NO_REMAP
93 #endif
94
95 #ifdef WINDOWSNT
96 #define VIRT_ADDR_VARIES
97 #define DATA_END        get_data_end ()
98 #define DATA_START      get_data_start ()
99 #define HAVE_ALLOCA
100 #endif
101
102 #ifdef linux
103 /* libc-linux/sysdeps/linux/i386/ulimit.c says that due to shared library, */
104 /* we cannot get the maximum address for brk */
105 #define ULIMIT_BREAK_VALUE (32*1024*1024)
106
107 #define SEGMENT_MASK ((SEGMENT_SIZE)-1)
108 #endif
109
110 /* XEmacs change: John Hughes <john@AtlanTech.COM> says using vfork
111    under i386-unknown-sysv4.2 makes C-g sometimes cause a SIGSEGV
112    in TTY mode; the problem goes away if you use fork */
113 #ifdef USG5_4_2
114 #define vfork fork
115 #endif