Mercurial > emacs
annotate src/m/hp800.h @ 72863:526dc1f36b09
(produce_image_glyph): Automatically crop wide images at
right window edge so we can draw the cursor on the same row to
avoid confusing redisplay by placing the cursor outside the visible
window area.
author | Kim F. Storm <storm@cua.dk> |
---|---|
date | Thu, 14 Sep 2006 09:37:44 +0000 |
parents | 3bd95f4f2941 |
children | bdb161691a87 c5406394f567 |
rev | line source |
---|---|
456 | 1 /* machine description file for hp9000 series 800 machines. |
68651
3bd95f4f2941
Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
64767
diff
changeset
|
2 Copyright (C) 1987, 2002, 2003, 2004, 2005, |
3bd95f4f2941
Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
64767
diff
changeset
|
3 2006 Free Software Foundation, Inc. |
456 | 4 |
5 This file is part of GNU Emacs. | |
6 | |
7 GNU Emacs is free software; you can redistribute it and/or modify | |
8 it under the terms of the GNU General Public License as published by | |
3699 | 9 the Free Software Foundation; either version 2, or (at your option) |
456 | 10 any later version. |
11 | |
12 GNU Emacs is distributed in the hope that it will be useful, | |
13 but WITHOUT ANY WARRANTY; without even the implied warranty of | |
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
15 GNU General Public License for more details. | |
16 | |
17 You should have received a copy of the GNU General Public License | |
18 along with GNU Emacs; see the file COPYING. If not, write to | |
64083 | 19 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
20 Boston, MA 02110-1301, USA. */ | |
456 | 21 |
22 | |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48438
diff
changeset
|
23 /* The following line tells the configuration script what sort of |
456 | 24 operating system this machine is likely to run. |
25 USUAL-OPSYS="hpux" */ | |
26 | |
9095
23f72b18b420
(WORDS_BIG_ENDIAN): define or undef appropriately, superseding BIG_ENDIAN.
Karl Heuer <kwzh@gnu.org>
parents:
9040
diff
changeset
|
27 /* Define WORDS_BIG_ENDIAN iff lowest-numbered byte in a word |
23f72b18b420
(WORDS_BIG_ENDIAN): define or undef appropriately, superseding BIG_ENDIAN.
Karl Heuer <kwzh@gnu.org>
parents:
9040
diff
changeset
|
28 is the most significant byte. */ |
23f72b18b420
(WORDS_BIG_ENDIAN): define or undef appropriately, superseding BIG_ENDIAN.
Karl Heuer <kwzh@gnu.org>
parents:
9040
diff
changeset
|
29 |
23f72b18b420
(WORDS_BIG_ENDIAN): define or undef appropriately, superseding BIG_ENDIAN.
Karl Heuer <kwzh@gnu.org>
parents:
9040
diff
changeset
|
30 #define WORDS_BIG_ENDIAN |
23f72b18b420
(WORDS_BIG_ENDIAN): define or undef appropriately, superseding BIG_ENDIAN.
Karl Heuer <kwzh@gnu.org>
parents:
9040
diff
changeset
|
31 |
456 | 32 /* Define NO_ARG_ARRAY if you cannot take the address of the first of a |
33 * group of arguments and treat it as an array of the arguments. */ | |
34 | |
35 #define NO_ARG_ARRAY | |
36 | |
37 /* Define WORD_MACHINE if addresses and such have | |
38 * to be corrected before they can be used as byte counts. */ | |
39 | |
40 #undef WORD_MACHINE | |
41 | |
42 /* Now define a symbol for the cpu type, if your compiler | |
43 does not define it automatically: | |
44 Ones defined so far include vax, m68000, ns16000, pyramid, | |
45 orion, tahoe, APOLLO and many others */ | |
7159
2b5401aa9630
Renamed from hp9000s800.h.
Richard M. Stallman <rms@gnu.org>
parents:
7146
diff
changeset
|
46 #ifndef hp9000s800 |
2b5401aa9630
Renamed from hp9000s800.h.
Richard M. Stallman <rms@gnu.org>
parents:
7146
diff
changeset
|
47 # define hp9000s800 |
456 | 48 #endif |
49 | |
50 /* Use type int rather than a union, to represent Lisp_Object */ | |
51 /* This is desirable for most machines. */ | |
52 | |
53 #define NO_UNION_TYPE | |
54 | |
55 /* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend | |
10362
f145d62266f6
(VALBITS, GCTYPEBITS): Deleted; default is better.
Karl Heuer <kwzh@gnu.org>
parents:
9258
diff
changeset
|
56 the bit field into an int. In other words, if bit fields |
456 | 57 are always unsigned. |
58 | |
59 If you use NO_UNION_TYPE, this flag does not matter. */ | |
60 | |
61 #define EXPLICIT_SIGN_EXTEND | |
62 | |
14135
51d3a3fa828c
Conditionalize many macro definitions on __hpux.
Karl Heuer <kwzh@gnu.org>
parents:
13365
diff
changeset
|
63 /* The standard definitions of these macros would work ok, |
51d3a3fa828c
Conditionalize many macro definitions on __hpux.
Karl Heuer <kwzh@gnu.org>
parents:
13365
diff
changeset
|
64 but these are faster because the constants are short. */ |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48438
diff
changeset
|
65 |
14135
51d3a3fa828c
Conditionalize many macro definitions on __hpux.
Karl Heuer <kwzh@gnu.org>
parents:
13365
diff
changeset
|
66 |
51d3a3fa828c
Conditionalize many macro definitions on __hpux.
Karl Heuer <kwzh@gnu.org>
parents:
13365
diff
changeset
|
67 #define XUINT(a) (((unsigned)(a) << BITS_PER_INT-VALBITS) >> BITS_PER_INT-VALBITS) |
51d3a3fa828c
Conditionalize many macro definitions on __hpux.
Karl Heuer <kwzh@gnu.org>
parents:
13365
diff
changeset
|
68 |
51d3a3fa828c
Conditionalize many macro definitions on __hpux.
Karl Heuer <kwzh@gnu.org>
parents:
13365
diff
changeset
|
69 #define XSET(var, type, ptr) \ |
51d3a3fa828c
Conditionalize many macro definitions on __hpux.
Karl Heuer <kwzh@gnu.org>
parents:
13365
diff
changeset
|
70 ((var) = ((int)(type) << VALBITS) + (((unsigned) (ptr) << BITS_PER_INT-VALBITS) >> BITS_PER_INT-VALBITS)) |
51d3a3fa828c
Conditionalize many macro definitions on __hpux.
Karl Heuer <kwzh@gnu.org>
parents:
13365
diff
changeset
|
71 |
41942
c22a32af6f1c
Split the __hpux conditional into the parts
Richard M. Stallman <rms@gnu.org>
parents:
14186
diff
changeset
|
72 /* Common definitions for HPUX and GNU/Linux. */ |
c22a32af6f1c
Split the __hpux conditional into the parts
Richard M. Stallman <rms@gnu.org>
parents:
14186
diff
changeset
|
73 |
c22a32af6f1c
Split the __hpux conditional into the parts
Richard M. Stallman <rms@gnu.org>
parents:
14186
diff
changeset
|
74 #if defined (__hpux) || defined (GNU_LINUX) |
14135
51d3a3fa828c
Conditionalize many macro definitions on __hpux.
Karl Heuer <kwzh@gnu.org>
parents:
13365
diff
changeset
|
75 /* Now define a symbol for the cpu type, if your compiler |
51d3a3fa828c
Conditionalize many macro definitions on __hpux.
Karl Heuer <kwzh@gnu.org>
parents:
13365
diff
changeset
|
76 does not define it automatically: |
51d3a3fa828c
Conditionalize many macro definitions on __hpux.
Karl Heuer <kwzh@gnu.org>
parents:
13365
diff
changeset
|
77 Ones defined so far include vax, m68000, ns16000, pyramid, |
51d3a3fa828c
Conditionalize many macro definitions on __hpux.
Karl Heuer <kwzh@gnu.org>
parents:
13365
diff
changeset
|
78 orion, tahoe, APOLLO and many others */ |
51d3a3fa828c
Conditionalize many macro definitions on __hpux.
Karl Heuer <kwzh@gnu.org>
parents:
13365
diff
changeset
|
79 #ifndef hp9000s800 |
51d3a3fa828c
Conditionalize many macro definitions on __hpux.
Karl Heuer <kwzh@gnu.org>
parents:
13365
diff
changeset
|
80 # define hp9000s800 |
51d3a3fa828c
Conditionalize many macro definitions on __hpux.
Karl Heuer <kwzh@gnu.org>
parents:
13365
diff
changeset
|
81 #endif |
51d3a3fa828c
Conditionalize many macro definitions on __hpux.
Karl Heuer <kwzh@gnu.org>
parents:
13365
diff
changeset
|
82 |
456 | 83 /* Define CANNOT_DUMP on machines where unexec does not work. |
84 Then the function dump-emacs will not be defined | |
85 and temacs will do (load "loadup") automatically unless told otherwise. */ | |
86 | |
87 #undef CANNOT_DUMP | |
88 | |
41942
c22a32af6f1c
Split the __hpux conditional into the parts
Richard M. Stallman <rms@gnu.org>
parents:
14186
diff
changeset
|
89 /* Define NO_REMAP if memory segmentation makes it not work well |
c22a32af6f1c
Split the __hpux conditional into the parts
Richard M. Stallman <rms@gnu.org>
parents:
14186
diff
changeset
|
90 to change the boundary between the text section and data section |
c22a32af6f1c
Split the __hpux conditional into the parts
Richard M. Stallman <rms@gnu.org>
parents:
14186
diff
changeset
|
91 when Emacs is dumped. If you define this, the preloaded Lisp |
c22a32af6f1c
Split the __hpux conditional into the parts
Richard M. Stallman <rms@gnu.org>
parents:
14186
diff
changeset
|
92 code will not be sharable; but that's better than failing completely. */ |
c22a32af6f1c
Split the __hpux conditional into the parts
Richard M. Stallman <rms@gnu.org>
parents:
14186
diff
changeset
|
93 |
c22a32af6f1c
Split the __hpux conditional into the parts
Richard M. Stallman <rms@gnu.org>
parents:
14186
diff
changeset
|
94 #define NO_REMAP |
c22a32af6f1c
Split the __hpux conditional into the parts
Richard M. Stallman <rms@gnu.org>
parents:
14186
diff
changeset
|
95 |
c22a32af6f1c
Split the __hpux conditional into the parts
Richard M. Stallman <rms@gnu.org>
parents:
14186
diff
changeset
|
96 #endif /* __hpux or GNU_LINUX */ |
c22a32af6f1c
Split the __hpux conditional into the parts
Richard M. Stallman <rms@gnu.org>
parents:
14186
diff
changeset
|
97 |
c22a32af6f1c
Split the __hpux conditional into the parts
Richard M. Stallman <rms@gnu.org>
parents:
14186
diff
changeset
|
98 /* Stuff for just GNU/Linux. */ |
c22a32af6f1c
Split the __hpux conditional into the parts
Richard M. Stallman <rms@gnu.org>
parents:
14186
diff
changeset
|
99 |
c22a32af6f1c
Split the __hpux conditional into the parts
Richard M. Stallman <rms@gnu.org>
parents:
14186
diff
changeset
|
100 #ifdef GNU_LINUX |
c22a32af6f1c
Split the __hpux conditional into the parts
Richard M. Stallman <rms@gnu.org>
parents:
14186
diff
changeset
|
101 |
c22a32af6f1c
Split the __hpux conditional into the parts
Richard M. Stallman <rms@gnu.org>
parents:
14186
diff
changeset
|
102 /* Data type of load average, as read out of kmem. */ |
c22a32af6f1c
Split the __hpux conditional into the parts
Richard M. Stallman <rms@gnu.org>
parents:
14186
diff
changeset
|
103 |
c22a32af6f1c
Split the __hpux conditional into the parts
Richard M. Stallman <rms@gnu.org>
parents:
14186
diff
changeset
|
104 #define LOAD_AVE_TYPE long |
c22a32af6f1c
Split the __hpux conditional into the parts
Richard M. Stallman <rms@gnu.org>
parents:
14186
diff
changeset
|
105 |
c22a32af6f1c
Split the __hpux conditional into the parts
Richard M. Stallman <rms@gnu.org>
parents:
14186
diff
changeset
|
106 /* Convert that into an integer that is 100 for a load average of 1.0 */ |
c22a32af6f1c
Split the __hpux conditional into the parts
Richard M. Stallman <rms@gnu.org>
parents:
14186
diff
changeset
|
107 |
c22a32af6f1c
Split the __hpux conditional into the parts
Richard M. Stallman <rms@gnu.org>
parents:
14186
diff
changeset
|
108 #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE) |
c22a32af6f1c
Split the __hpux conditional into the parts
Richard M. Stallman <rms@gnu.org>
parents:
14186
diff
changeset
|
109 |
c22a32af6f1c
Split the __hpux conditional into the parts
Richard M. Stallman <rms@gnu.org>
parents:
14186
diff
changeset
|
110 #endif /* GNU_LINUX */ |
c22a32af6f1c
Split the __hpux conditional into the parts
Richard M. Stallman <rms@gnu.org>
parents:
14186
diff
changeset
|
111 |
c22a32af6f1c
Split the __hpux conditional into the parts
Richard M. Stallman <rms@gnu.org>
parents:
14186
diff
changeset
|
112 /* Stuff for just HPUX. */ |
c22a32af6f1c
Split the __hpux conditional into the parts
Richard M. Stallman <rms@gnu.org>
parents:
14186
diff
changeset
|
113 |
c22a32af6f1c
Split the __hpux conditional into the parts
Richard M. Stallman <rms@gnu.org>
parents:
14186
diff
changeset
|
114 #ifdef __hpux |
c22a32af6f1c
Split the __hpux conditional into the parts
Richard M. Stallman <rms@gnu.org>
parents:
14186
diff
changeset
|
115 |
456 | 116 /* Define VIRT_ADDR_VARIES if the virtual addresses of |
117 pure and impure space as loaded can vary, and even their | |
118 relative order cannot be relied on. | |
119 | |
120 Otherwise Emacs assumes that text space precedes data space, | |
121 numerically. */ | |
122 | |
123 #define VIRT_ADDR_VARIES | |
124 | |
125 /* the data segment on this machine always starts at address 0x40000000. */ | |
126 | |
127 #define DATA_SEG_BITS 0x40000000 | |
128 | |
129 #define DATA_START 0x40000000 | |
130 #define TEXT_START 0x00000000 | |
131 | |
132 /* This machine requires completely different unexec code | |
133 which lives in a separate file. Specify the file name. */ | |
134 | |
135 #define UNEXEC unexhp9k800.o | |
136 | |
137 #define LIBS_MACHINE | |
138 #define LIBS_DEBUG | |
139 | |
14135
51d3a3fa828c
Conditionalize many macro definitions on __hpux.
Karl Heuer <kwzh@gnu.org>
parents:
13365
diff
changeset
|
140 /* Include the file bsdtty.h, since this machine has job control. */ |
456 | 141 #define NEED_BSDTTY |
41942
c22a32af6f1c
Split the __hpux conditional into the parts
Richard M. Stallman <rms@gnu.org>
parents:
14186
diff
changeset
|
142 |
c22a32af6f1c
Split the __hpux conditional into the parts
Richard M. Stallman <rms@gnu.org>
parents:
14186
diff
changeset
|
143 /* Data type of load average, as read out of kmem. */ |
c22a32af6f1c
Split the __hpux conditional into the parts
Richard M. Stallman <rms@gnu.org>
parents:
14186
diff
changeset
|
144 |
c22a32af6f1c
Split the __hpux conditional into the parts
Richard M. Stallman <rms@gnu.org>
parents:
14186
diff
changeset
|
145 #define LOAD_AVE_TYPE double |
c22a32af6f1c
Split the __hpux conditional into the parts
Richard M. Stallman <rms@gnu.org>
parents:
14186
diff
changeset
|
146 |
c22a32af6f1c
Split the __hpux conditional into the parts
Richard M. Stallman <rms@gnu.org>
parents:
14186
diff
changeset
|
147 /* Convert that into an integer that is 100 for a load average of 1.0 */ |
c22a32af6f1c
Split the __hpux conditional into the parts
Richard M. Stallman <rms@gnu.org>
parents:
14186
diff
changeset
|
148 |
c22a32af6f1c
Split the __hpux conditional into the parts
Richard M. Stallman <rms@gnu.org>
parents:
14186
diff
changeset
|
149 #define LOAD_AVE_CVT(x) ((int) (x * 100.0)) |
c22a32af6f1c
Split the __hpux conditional into the parts
Richard M. Stallman <rms@gnu.org>
parents:
14186
diff
changeset
|
150 |
456 | 151 /* The symbol in the kernel where the load average is found |
152 is named _avenrun. At this time there are two major flavors | |
153 of hp-ux (there is the s800 and s300 (s200) flavors). The | |
154 differences are thusly moved to the corresponding machine description file. | |
155 */ | |
156 | |
157 /* no underscore please */ | |
158 #define LDAV_SYMBOL "avenrun" | |
159 | |
160 #if 0 /* Supposedly no longer true. */ | |
161 /* In hpux, for unknown reasons, S_IFLNK is defined even though | |
162 symbolic links do not exist. | |
163 Make sure our conditionals based on S_IFLNK are not confused. | |
164 | |
165 Here we assume that stat.h is included before config.h | |
166 so that we can override it here. */ | |
167 | |
168 #undef S_IFLNK | |
169 #endif | |
170 | |
171 /* On USG systems these have different names. */ | |
172 | |
173 #define index strchr | |
174 #define rindex strrchr | |
175 | |
14135
51d3a3fa828c
Conditionalize many macro definitions on __hpux.
Karl Heuer <kwzh@gnu.org>
parents:
13365
diff
changeset
|
176 #endif /* __hpux */ |
52401 | 177 |
178 /* arch-tag: 809436e6-1645-4b92-b40d-2de5d6e7227c | |
179 (do not change this comment) */ |