159809Shibler /* m- file for hp9000 series 200 or 300
259809Shibler    Copyright (C) 1985 Free Software Foundation, Inc.
359809Shibler 
459809Shibler This file is part of GNU Emacs.
559809Shibler 
659809Shibler GNU Emacs is free software; you can redistribute it and/or modify
759809Shibler it under the terms of the GNU General Public License as published by
859809Shibler the Free Software Foundation; either version 1, or (at your option)
959809Shibler any later version.
1059809Shibler 
1159809Shibler GNU Emacs is distributed in the hope that it will be useful,
1259809Shibler but WITHOUT ANY WARRANTY; without even the implied warranty of
1359809Shibler MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1459809Shibler GNU General Public License for more details.
1559809Shibler 
1659809Shibler You should have received a copy of the GNU General Public License
1759809Shibler along with GNU Emacs; see the file COPYING.  If not, write to
1859809Shibler the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
1959809Shibler 
2059809Shibler 
2159809Shibler 
2259809Shibler /* Define NOMULTIPLEJOBS on versions of HPUX before 6.5.  */
2359809Shibler 
2459809Shibler /* #define NOMULTIPLEJOBS */
2559809Shibler 
2659809Shibler /* Define this symbol if you are running a version of HP-UX
2759809Shibler    which predates version 6.01 */
2859809Shibler 
2959809Shibler /* #define HPUX_5 */
3059809Shibler 
3159809Shibler /* The following three symbols give information on
3259809Shibler  the size of various data types.  */
3359809Shibler 
3459809Shibler #define SHORTBITS 16		/* Number of bits in a short */
3559809Shibler 
3659809Shibler #define INTBITS 32		/* Number of bits in an int */
3759809Shibler 
3859809Shibler #define LONGBITS 32		/* Number of bits in a long */
3959809Shibler 
4059809Shibler /* Define BIG_ENDIAN iff lowest-numbered byte in a word
4159809Shibler    is the most significant byte.  */
4259809Shibler 
43*60297Shibler #ifndef BIG_ENDIAN
4459809Shibler #define BIG_ENDIAN
45*60297Shibler #endif
4659809Shibler 
4759809Shibler /* Define NO_ARG_ARRAY if you cannot take the address of the first of a
4859809Shibler  * group of arguments and treat it as an array of the arguments.  */
4959809Shibler 
5059809Shibler /* #define NO_ARG_ARRAY */
5159809Shibler 
5259809Shibler /* Define WORD_MACHINE if addresses and such have
5359809Shibler  * to be corrected before they can be used as byte counts.  */
5459809Shibler 
5559809Shibler /* #define WORD_MACHINE */
5659809Shibler 
5759809Shibler /* Define how to take a char and sign-extend into an int.
5859809Shibler    On machines where char is signed, this is a no-op.  */
5959809Shibler 
6059809Shibler #define SIGN_EXTEND_CHAR(c) (c)
6159809Shibler 
6259809Shibler /* Now define a symbol for the cpu type, if your compiler
6359809Shibler    does not define it automatically.  */
6459809Shibler 
6559809Shibler #ifndef hp9000s300
6659809Shibler #define hp9000s300
6759809Shibler #endif
6859809Shibler 
6959809Shibler /* Use type int rather than a union, to represent Lisp_Object */
7059809Shibler /* This is desirable for most machines.  */
7159809Shibler 
7259809Shibler #define NO_UNION_TYPE
7359809Shibler 
7459809Shibler /* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
7559809Shibler    the 24-bit bit field into an int.  In other words, if bit fields
7659809Shibler    are always unsigned.
7759809Shibler 
7859809Shibler    If you use NO_UNION_TYPE, this flag does not matter.  */
7959809Shibler 
8059809Shibler #define EXPLICIT_SIGN_EXTEND
8159809Shibler 
8259809Shibler /* Data type of load average, as read out of kmem.  */
8359809Shibler 
8459809Shibler #define LOAD_AVE_TYPE double
8559809Shibler 
8659809Shibler /* Convert that into an integer that is 100 for a load average of 1.0  */
8759809Shibler 
8859809Shibler #define LOAD_AVE_CVT(x) ((int) ((x) * 100.0))
8959809Shibler 
9059809Shibler /* Define CANNOT_DUMP on machines where unexec does not work.
9159809Shibler    Then the function dump-emacs will not be defined
9259809Shibler    and temacs will do (load "loadup") automatically unless told otherwise.  */
9359809Shibler 
9459809Shibler /* #define CANNOT_DUMP */
9559809Shibler 
9659809Shibler /* Define VIRT_ADDR_VARIES if the virtual addresses of
9759809Shibler    pure and impure space as loaded can vary, and even their
9859809Shibler    relative order cannot be relied on.
9959809Shibler 
10059809Shibler    Otherwise Emacs assumes that text space precedes data space,
10159809Shibler    numerically.  */
10259809Shibler 
10359809Shibler /* #define VIRT_ADDR_VARIES */
10459809Shibler 
105*60297Shibler /* For University of Utah 4.3bsd and standard 4.4bsd on HP300s.  */
10659809Shibler 
10759809Shibler #ifdef BSD4_3
10859809Shibler /* Tell crt0.c that this is an ordinary 68020.  */
10959809Shibler #undef hp9000s300
11059809Shibler #define CRT0_DUMMIES		bogus_a6,
11159809Shibler 
11259809Shibler #define HAVE_ALLOCA
11359809Shibler 
114*60297Shibler #ifndef HAVE_GETLOADAVG
11559809Shibler #undef LOAD_AVE_TYPE
11659809Shibler #undef LOAD_AVE_CVT
11759809Shibler #define LOAD_AVE_TYPE long
11859809Shibler #define LOAD_AVE_CVT(x) ((int) (((double) (x)) / 2048.0 * 100.0))
11959809Shibler #endif
12059809Shibler 
12159809Shibler #endif /* BSD4_3 */
12259809Shibler 
12359809Shibler #ifndef BSD4_3
12459809Shibler /* The following definitions are for HPUX only.  */
12559809Shibler 
12659809Shibler /* The symbol in the kernel where the load average is found
12759809Shibler    is named _avenrun on this machine.  */
12859809Shibler 
12959809Shibler #define LDAV_SYMBOL "_avenrun"
13059809Shibler 
13159809Shibler /* This library is needed with -g, on the 200/300 only.  */
13259809Shibler 
13359809Shibler #if !defined(__GNUC__) || defined(__HPUX_ASM__)
13459809Shibler #define LIBS_DEBUG /usr/lib/end.o
13559809Shibler #endif
13659809Shibler 
13759809Shibler /* The symbol FIONREAD is defined, but the feature does not work
13859809Shibler    on the 200/300.  */
13959809Shibler 
14059809Shibler #define BROKEN_FIONREAD
14159809Shibler 
14259809Shibler /* In older versions of hpux, for unknown reasons, S_IFLNK is defined
14359809Shibler    even though symbolic links do not exist.
14459809Shibler    Make sure our conditionals based on S_IFLNK are not confused.
14559809Shibler 
14659809Shibler    Here we assume that stat.h is included before config.h
14759809Shibler    so that we can override it here.
14859809Shibler 
14959809Shibler    Version 6 of HP-UX has symbolic links.  */
15059809Shibler 
15159809Shibler #ifdef HPUX_5
15259809Shibler #undef S_IFLNK
15359809Shibler #endif
15459809Shibler 
15559809Shibler /* Define the BSTRING functions in terms of the sysV functions.
15659809Shibler    Version 6 of HP-UX supplies these in the BSD library,
15759809Shibler    but that library has reported bugs in `signal'.  */
15859809Shibler 
15959809Shibler /* #ifdef HPUX_5 */
16059809Shibler #define bcopy(a,b,s)	memcpy (b,a,s)
16159809Shibler #define bzero(a,s)	memset (a,0,s)
16259809Shibler #define bcmp		memcmp
16359809Shibler /* #endif */
16459809Shibler 
16559809Shibler /* On USG systems these have different names.
16659809Shibler    Version 6 of HP-UX supplies these in the BSD library,
16759809Shibler    which we currently want to avoid using.  */
16859809Shibler 
16959809Shibler /* #ifdef HPUX_5 */
17059809Shibler #define index strchr
17159809Shibler #define rindex strrchr
17259809Shibler /* #endif */
17359809Shibler 
17459809Shibler /* Define C_SWITCH_MACHINE to be +X if you want the s200/300
17559809Shibler  * Emacs to run on both 68010 and 68020 based hp-ux's.
17659809Shibler  *
17759809Shibler  * Define OLD_HP_ASSEMBLER if you have an ancient assembler
17859809Shibler  *
17959809Shibler  * Define HPUX_68010 if you are using the new assembler but
18059809Shibler  * compiling for a s200 (upgraded) or s310.  68010 based
18159809Shibler  * processor without 68881.
18259809Shibler  */
18359809Shibler 
18459809Shibler /* These switches increase the size of some internal C compiler tables.
18559809Shibler    They are required for compiling the X11 interface files. */
18659809Shibler 
18759809Shibler #ifndef HPUX_5
18859809Shibler #ifndef __GNUC__
18959809Shibler #define C_SWITCH_MACHINE -Wc,-Nd4000,-Ns3000
19059809Shibler #endif
19159809Shibler #endif
19259809Shibler 
19359809Shibler /* Define NEED_BSDTTY if you have such. */
19459809Shibler 
19559809Shibler #ifndef NOMULTIPLEJOBS
19659809Shibler #define NEED_BSDTTY
19759809Shibler #endif
19859809Shibler 
19959809Shibler #endif /* not BSD4_3 */
200