]> code.delx.au - gnu-emacs/blobdiff - src/m/hp800.h
(remove-overlays): Fix last change.
[gnu-emacs] / src / m / hp800.h
index ea3f012d5860995754b27a97c25a5a64f3fa4b10..01146e52359132b07084ad49c31d2962ff42195f 100644 (file)
@@ -1,5 +1,6 @@
 /* machine description file for hp9000 series 800 machines.
-   Copyright (C) 1987 Free Software Foundation, Inc.
+   Copyright (C) 1987, 2002, 2003, 2004, 2005,
+                 2006 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
@@ -15,22 +16,14 @@ GNU General Public License for more details.
 
 You should have received a copy of the GNU General Public License
 along with GNU Emacs; see the file COPYING.  If not, write to
-the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
+the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+Boston, MA 02110-1301, USA.  */
 
 
-/* The following line tells the configuration script what sort of 
+/* The following line tells the configuration script what sort of
    operating system this machine is likely to run.
    USUAL-OPSYS="hpux"  */
 
-/* The following three symbols give information on
- the size of various data types.  */
-
-#define SHORTBITS 16           /* Number of bits in a short */
-
-#define INTBITS 32             /* Number of bits in an int */
-
-#define LONGBITS 32            /* Number of bits in a long */
-
 /* Define WORDS_BIG_ENDIAN iff lowest-numbered byte in a word
    is the most significant byte.  */
 
@@ -67,14 +60,25 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
 
 #define EXPLICIT_SIGN_EXTEND
 
-/* Data type of load average, as read out of kmem.  */
+/* The standard definitions of these macros would work ok,
+   but these are faster because the constants are short. */
 
-#define LOAD_AVE_TYPE double
 
-/* Convert that into an integer that is 100 for a load average of 1.0  */
+#define XUINT(a) (((unsigned)(a) << BITS_PER_INT-VALBITS) >> BITS_PER_INT-VALBITS)
 
-#define LOAD_AVE_CVT(x) ((int) (x * 100.0))
+#define XSET(var, type, ptr) \
+   ((var) = ((int)(type) << VALBITS) + (((unsigned) (ptr) << BITS_PER_INT-VALBITS) >> BITS_PER_INT-VALBITS))
+\f
+/* Common definitions for HPUX and GNU/Linux.  */
 
+#if defined (__hpux) || defined (GNU_LINUX)
+/* Now define a symbol for the cpu type, if your compiler
+   does not define it automatically:
+   Ones defined so far include vax, m68000, ns16000, pyramid,
+   orion, tahoe, APOLLO and many others */
+#ifndef hp9000s800
+#     define hp9000s800
+#endif
 
 /* Define CANNOT_DUMP on machines where unexec does not work.
    Then the function dump-emacs will not be defined
@@ -82,6 +86,33 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
 
 #undef CANNOT_DUMP
 
+/* Define NO_REMAP if memory segmentation makes it not work well
+   to change the boundary between the text section and data section
+   when Emacs is dumped.  If you define this, the preloaded Lisp
+   code will not be sharable; but that's better than failing completely.  */
+
+#define NO_REMAP
+
+#endif /* __hpux or GNU_LINUX */
+\f
+/* Stuff for just GNU/Linux.  */
+
+#ifdef GNU_LINUX
+
+/* Data type of load average, as read out of kmem.  */
+
+#define LOAD_AVE_TYPE long
+
+/* Convert that into an integer that is 100 for a load average of 1.0  */
+
+#define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE)
+
+#endif /* GNU_LINUX */
+\f
+/* Stuff for just HPUX.  */
+
+#ifdef __hpux
+
 /* Define VIRT_ADDR_VARIES if the virtual addresses of
    pure and impure space as loaded can vary, and even their
    relative order cannot be relied on.
@@ -90,16 +121,6 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
    numerically.  */
 
 #define VIRT_ADDR_VARIES
-
-/* Define C_ALLOCA if this machine does not support a true alloca
-   and the one written in C should be used instead.
-   Define HAVE_ALLOCA to say that the system provides a properly
-   working alloca function and it should be used.
-   Define neither one if an assembler-language alloca
-   in the file alloca.s should be used.  */
-
-#define C_ALLOCA
-/* #define HAVE_ALLOCA */
 \f
 /* the data segment on this machine always starts at address 0x40000000. */
 
@@ -108,15 +129,6 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
 #define DATA_START    0x40000000
 #define TEXT_START    0x00000000
 
-#define STACK_DIRECTION 1 
-
-/* Define NO_REMAP if memory segmentation makes it not work well
-   to change the boundary between the text section and data section
-   when Emacs is dumped.  If you define this, the preloaded Lisp
-   code will not be sharable; but that's better than failing completely.  */
-
-#define NO_REMAP
-
 /* This machine requires completely different unexec code
    which lives in a separate file.  Specify the file name.  */
 
@@ -125,25 +137,16 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
 #define LIBS_MACHINE
 #define LIBS_DEBUG
 
-/* Define NEED_BSDTTY if you have such. */
-
+/* Include the file bsdtty.h, since this machine has job control.  */
 #define NEED_BSDTTY
-\f
-/* The standard definitions of these macros would work ok,
-   but these are faster because the constants are short. */
-   
 
-#define XUINT(a) (((unsigned)(a) << INTBITS-VALBITS) >> INTBITS-VALBITS)
+/* Data type of load average, as read out of kmem.  */
 
-#define XSET(var, type, ptr) \
-   ((var) = ((int)(type) << VALBITS) + (((unsigned) (ptr) << INTBITS-VALBITS) >> INTBITS-VALBITS))
+#define LOAD_AVE_TYPE double
 
-#define XMARKBIT(a) ((a) < 0)
-#define XSETMARKBIT(a,b) ((a) = ((b) ? (a)|MARKBIT : (a) & ~MARKBIT))
+/* Convert that into an integer that is 100 for a load average of 1.0  */
 
-#if 0  /* Loses when sign bit of type field is set.  */
-#define XUNMARK(a) ((a) = (((a) << INTBITS-GCTYPEBITS-VALBITS) >> INTBITS-GCTYPEBITS-VALBITS))
-#endif
+#define LOAD_AVE_CVT(x) ((int) (x * 100.0))
 
 /* The symbol in the kernel where the load average is found
    is named _avenrun.  At this time there are two major flavors
@@ -165,20 +168,12 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
 #undef S_IFLNK
 #endif
 
-/* Define the BSTRING functions in terms of the sysV functions. */
-/* On HPUX 8.05, including types.h can include strings.h
-   which declares these as functions.  Hence the #ifndef.  */
-
-#ifndef HAVE_BCOPY
-#define bcopy(a,b,s)   memcpy (b,a,s)
-#define bzero(a,s)     memset (a,0,s)
-#define bcmp           memcmp
-#endif
-
 /* On USG systems these have different names. */
 
 #define index strchr
 #define rindex strrchr
 
-/* Include the file bsdtty.h, since this machine has job control.  */
-#define NEED_BSDTTY
+#endif /* __hpux */
+
+/* arch-tag: 809436e6-1645-4b92-b40d-2de5d6e7227c
+   (do not change this comment) */