annotate src/m/luna88k.h @ 428:3ecd8885ac67 r21-2-22

Import from CVS: tag r21-2-22
author cvs
date Mon, 13 Aug 2007 11:28:15 +0200
parents
children abe6d1db359e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1 /* m- file for LUNA 88000 running Mach.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3 originaly wrote by
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4 Jun. 26th '90
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5 Akitoshi MORISHIMA
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6 ohm@astem.or.jp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8 modified for mule-2.0 by
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
9 Sep. 10th '94
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
10 MUKAIGAWA Shin'ichi
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
11 shin@ari.ncl.omron.co.jp
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
12
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
13 Copyright (C) 1990 Free Software Foundation, Inc.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
14
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
15 This file is part of GNU Emacs.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
16
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
17 GNU Emacs is distributed in the hope that it will be useful,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
18 but WITHOUT ANY WARRANTY. No author or distributor
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
19 accepts responsibility to anyone for the consequences of using it
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
20 or for whether it serves any particular purpose or works at all,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
21 unless he says so in writing. Refer to the GNU Emacs General Public
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
22 License for full details.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
23
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
24 Everyone is granted permission to copy, modify and redistribute
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
25 GNU Emacs, but only under the conditions described in the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
26 GNU Emacs General Public License. A copy of this license is
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
27 supposed to have been given to you along with GNU Emacs so you
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
28 can know your rights and responsibilities. It should be in a
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
29 file named COPYING. Among other things, the copyright notice
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
30 and this notice must be preserved on all copies. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
31
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
32 /* Synched up with: Mule 2.0. Not in FSF. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
33
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
34 /* Define how to take a char and sign-extend into an int.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
35 On machines where char is signed, this is a no-op. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
36
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
37 #define SIGN_EXTEND_CHAR(c) (c)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
38
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
39 /* XINT must explicitly sign-extend */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
40
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
41 #define EXPLICIT_SIGN_EXTEND
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
42
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
43 /* Data type of load average, as read out of kmem. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
44
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
45 #define LOAD_AVE_TYPE long
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
46
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
47 /* Convert that into an integer that is 100 for a load average of 1.0 */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
48
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
49 #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
50
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
51 /* On Mach, LSCALE is defined instead of FSCALE, in h/kernel.h, as 1000. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
52
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
53 #define FSCALE 1000
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
54
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
55 /* Mask for address bits within a memory segment */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
56 /* In other words, data segment starts from the address that is end of
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
57 text segment rounded up to next (SEGMENT_MASK + 1) boundary. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
58
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
59 #define SEGSIZ 0x20000
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
60 #define SEGMENT_MASK (SEGSIZ - 1)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
61
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
62 /* macros to make unexec work right */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
63
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
64 #define A_TEXT_OFFSET(HDR) sizeof(HDR)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
65 #define A_TEXT_SEEK(HDR) sizeof(HDR)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
66
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
67 /* Define HAVE_ALLOCA to say that the system provides a properly
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
68 working alloca function and it should be used.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
69 At least, gcc for 88000 supports inline alloca. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
70
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
71 #define HAVE_ALLOCA
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
72
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
73 /* Memory management mechanism is different on Mach, so emacs-supplied
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
74 malloc.c does not work. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
75
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
76 #define SYSTEM_MALLOC
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
77
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
78 /* We want errno in crt0.c */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
79
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
80 #define NEED_ERRNO
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
81
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
82 /* Mach has 'init_process()' in libc.a, conflicting with emacs'
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
83 'init_process()', causing make to stop. So redefining that. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
84
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
85 #define init_process init_process_emacs
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
86
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
87 #define C_COMPILER gcc
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
88
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
89 #define LOAD_AVE_MACH
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
90
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
91 #define LIBS_MACHINE "-lmach"
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
92
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
93 #define LIB_X11_LIB "-L/usr/lib/X11 -lX11 -lXwchar"
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
94
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
95 #define CRT0_COMPILE "cc -c -O -Demacs $(ALL_CFLAGS)"