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