summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGlenn Morris <rgm@gnu.org>2007-03-27 02:36:08 +0000
committerGlenn Morris <rgm@gnu.org>2007-03-27 02:36:08 +0000
commite3fbc89b6a60257eba4270a6beed68a95b23cb3e (patch)
tree43623bd8a9e0607b3d5619d4c5dd34768f44c812 /src
parent084c41ca0af70ac085393b87b71f188bc0f53473 (diff)
downloademacs-e3fbc89b6a60257eba4270a6beed68a95b23cb3e.tar.gz
Restore HP-UX support (removed 2007-01-29).
Diffstat (limited to 'src')
-rw-r--r--src/m/hp800.h77
1 files changed, 74 insertions, 3 deletions
diff --git a/src/m/hp800.h b/src/m/hp800.h
index eed53183569..f48f4c8152e 100644
--- a/src/m/hp800.h
+++ b/src/m/hp800.h
@@ -69,10 +69,9 @@ Boston, MA 02110-1301, USA. */
#define XSET(var, type, ptr) \
((var) = ((int)(type) << VALBITS) + (((unsigned) (ptr) << BITS_PER_INT-VALBITS) >> BITS_PER_INT-VALBITS))
-/* Definitions for GNU/Linux. (HP/UX is unsupported because of the
- removal of unexhp9k800.c due to lack of legal papers.) */
+/* Common definitions for HPUX and GNU/Linux. */
-#ifdef 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,
@@ -94,6 +93,12 @@ Boston, MA 02110-1301, USA. */
#define NO_REMAP
+#endif /* __hpux or GNU_LINUX */
+
+/* Stuff for just GNU/Linux. */
+
+#ifdef GNU_LINUX
+
/* Data type of load average, as read out of kmem. */
#define LOAD_AVE_TYPE long
@@ -104,6 +109,72 @@ Boston, MA 02110-1301, USA. */
#endif /* GNU_LINUX */
+/* 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.
+
+ Otherwise Emacs assumes that text space precedes data space,
+ numerically. */
+
+#define VIRT_ADDR_VARIES
+
+/* the data segment on this machine always starts at address 0x40000000. */
+
+#define DATA_SEG_BITS 0x40000000
+
+#define DATA_START 0x40000000
+#define TEXT_START 0x00000000
+
+/* This machine requires completely different unexec code
+ which lives in a separate file. Specify the file name. */
+
+#define UNEXEC unexhp9k800.o
+
+#define LIBS_MACHINE
+#define LIBS_DEBUG
+
+/* Include the file bsdtty.h, since this machine has job control. */
+#define NEED_BSDTTY
+
+/* Data type of load average, as read out of kmem. */
+
+#define LOAD_AVE_TYPE double
+
+/* Convert that into an integer that is 100 for a load average of 1.0 */
+
+#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
+ of hp-ux (there is the s800 and s300 (s200) flavors). The
+ differences are thusly moved to the corresponding machine description file.
+*/
+
+/* no underscore please */
+#define LDAV_SYMBOL "avenrun"
+
+#if 0 /* Supposedly no longer true. */
+/* In hpux, for unknown reasons, S_IFLNK is defined even though
+ symbolic links do not exist.
+ Make sure our conditionals based on S_IFLNK are not confused.
+
+ Here we assume that stat.h is included before config.h
+ so that we can override it here. */
+
+#undef S_IFLNK
+#endif
+
+/* On USG systems these have different names. */
+
+#define index strchr
+#define rindex strrchr
+
+#endif /* __hpux */
+
/* Systems with GCC don't need to lose. */
#ifdef __NetBSD__
# ifdef __GNUC__