1/* machine description file for Hitachi SR2001/SR2201 machines. 2 Copyright (C) 1996, 2001, 2002, 2003, 2004, 2005, 3 2006, 2007 Free Software Foundation, Inc. 4 5This file is part of GNU Emacs. 6 7GNU Emacs is free software; you can redistribute it and/or modify 8it under the terms of the GNU General Public License as published by 9the Free Software Foundation; either version 2, or (at your option) 10any later version. 11 12GNU Emacs is distributed in the hope that it will be useful, 13but WITHOUT ANY WARRANTY; without even the implied warranty of 14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15GNU General Public License for more details. 16 17You should have received a copy of the GNU General Public License 18along with GNU Emacs; see the file COPYING. If not, write to 19the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 20Boston, MA 02110-1301, USA. */ 21 22 23/* The following line tells the configuration script what sort of 24 operating system this machine is likely to run. 25 USUAL-OPSYS="hpux" */ 26 27/* Define WORDS_BIG_ENDIAN iff lowest-numbered byte in a word 28 is the most significant byte. */ 29 30#define WORDS_BIG_ENDIAN 31 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 */ 46#ifndef hp9000s800 47# define hp9000s800 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 56 the bit field into an int. In other words, if bit fields 57 are always unsigned. 58 59 If you use NO_UNION_TYPE, this flag does not matter. */ 60 61#define EXPLICIT_SIGN_EXTEND 62 63/* The standard definitions of these macros would work ok, 64 but these are faster because the constants are short. */ 65 66 67#define XUINT(a) (((unsigned)(a) << BITS_PER_INT-VALBITS) >> BITS_PER_INT-VALBITS) 68 69#define XSET(var, type, ptr) \ 70 ((var) = ((int)(type) << VALBITS) + (((unsigned) (ptr) << BITS_PER_INT-VALBITS) >> BITS_PER_INT-VALBITS)) 71 72/* #ifdef __hpux */ 73/* Now define a symbol for the cpu type, if your compiler 74 does not define it automatically: 75 Ones defined so far include vax, m68000, ns16000, pyramid, 76 orion, tahoe, APOLLO and many others */ 77 78#ifndef hp9000s800 79# define hp9000s800 80#endif 81 82 83/* Data type of load average, as read out of kmem. */ 84 85#define LOAD_AVE_TYPE double 86 87/* Convert that into an integer that is 100 for a load average of 1.0 */ 88 89#define LOAD_AVE_CVT(x) ((int) (x * 100.0)) 90 91 92/* Define CANNOT_DUMP on machines where unexec does not work. 93 Then the function dump-emacs will not be defined 94 and temacs will do (load "loadup") automatically unless told otherwise. */ 95 96#undef CANNOT_DUMP 97 98/* Define VIRT_ADDR_VARIES if the virtual addresses of 99 pure and impure space as loaded can vary, and even their 100 relative order cannot be relied on. 101 102 Otherwise Emacs assumes that text space precedes data space, 103 numerically. */ 104 105#define VIRT_ADDR_VARIES 106 107/* the data segment on this machine always starts at address 0x40000000. */ 108 109#define DATA_SEG_BITS 0x40000000 110 111#define DATA_START 0x40000000 112#define TEXT_START 0x00000000 113 114/* Define NO_REMAP if memory segmentation makes it not work well 115 to change the boundary between the text section and data section 116 when Emacs is dumped. If you define this, the preloaded Lisp 117 code will not be sharable; but that's better than failing completely. */ 118 119#define NO_REMAP 120 121/* This machine requires completely different unexec code 122 which lives in a separate file. Specify the file name. */ 123 124#define UNEXEC unexhp9k800.o 125 126#define LIBS_MACHINE 127#define LIBS_DEBUG 128 129/* Include the file bsdtty.h, since this machine has job control. */ 130/* #define NEED_BSDTTY */ 131 132/* The symbol in the kernel where the load average is found 133 is named _avenrun. At this time there are two major flavors 134 of hp-ux (there is the s800 and s300 (s200) flavors). The 135 differences are thusly moved to the corresponding machine description file. 136*/ 137 138/* no underscore please */ 139#define LDAV_SYMBOL "avenrun" 140 141#if 0 /* Supposedly no longer true. */ 142/* In hpux, for unknown reasons, S_IFLNK is defined even though 143 symbolic links do not exist. 144 Make sure our conditionals based on S_IFLNK are not confused. 145 146 Here we assume that stat.h is included before config.h 147 so that we can override it here. */ 148 149#undef S_IFLNK 150#endif 151 152/* On USG systems these have different names. */ 153 154#define index strchr 155#define rindex strrchr 156 157/* #endif */ 158 159/* arch-tag: 4ced5b51-ffe6-4be1-9954-eb40657023a5 160 (do not change this comment) */ 161