patch-2.3.99-pre9 linux/include/asm-mips64/sn/kldir.h

Next file: linux/include/asm-mips64/sn/launch.h
Previous file: linux/include/asm-mips64/sn/klconfig.h
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.3.99-pre8/linux/include/asm-mips64/sn/kldir.h linux/include/asm-mips64/sn/kldir.h
@@ -1,4 +1,4 @@
-/* $Id: kldir.h,v 1.1 2000/01/13 00:17:02 ralf Exp $
+/* $Id$
  *
  * This file is subject to the terms and conditions of the GNU General Public
  * License.  See the file "COPYING" in the main directory of this archive
@@ -12,9 +12,14 @@
 #ifndef _ASM_SN_KLDIR_H
 #define _ASM_SN_KLDIR_H
 
+#include <linux/config.h>
+#if defined(CONFIG_SGI_IO)
+#include <asm/hack.h>
+#endif
+
 /*
  * The kldir memory area resides at a fixed place in each node's memory and
- * provides pointers to most other SN0 memory areas.  This allows us to
+ * provides pointers to most other IP27 memory areas.  This allows us to
  * resize and/or relocate memory areas at a later time without breaking all
  * firmware and kernels that use them.  Indices in the array are
  * permanently dedicated to areas listed below.  Some memory areas (marked
@@ -131,6 +136,8 @@
 #define KLDIR_OFF_STRIDE		0x28
 #endif /* LANGUAGE_ASSEMBLY */
 
+#if !defined(CONFIG_SGI_IO)
+
 /*
  * This is defined here because IP27_SYMMON_STK_SIZE must be at least what
  * we define here.  Since it's set up in the prom.  We can't redefine it later
@@ -200,11 +207,17 @@
 #define KLDIR_ENT_SIZE			0x40
 #define KLDIR_MAX_ENTRIES		(0x400 / 0x40)
 
+#endif	/* !CONFIG_SGI_IO */
+
 #ifdef _LANGUAGE_C
 typedef struct kldir_ent_s {
 	u64		magic;		/* Indicates validity of entry      */
 	off_t		offset;		/* Offset from start of node space  */
+#if defined(CONFIG_SGI_IO)	/* FIXME */
+	__psunsigned_t	pointer;	/* Pointer to area in some cases    */
+#else
 	unsigned long	pointer;	/* Pointer to area in some cases    */
+#endif
 	size_t		size;		/* Size in bytes 		    */
 	u64		count;		/* Repeat count if array, 1 if not  */
 	size_t		stride;		/* Stride if array, 0 if not        */
@@ -213,5 +226,23 @@
 	   entry to store partition info. Refer to klpart.h for this. */
 } kldir_ent_t;
 #endif /* _LANGUAGE_C */
+
+#if defined(CONFIG_SGI_IO)
+
+#define KLDIR_ENT_SIZE			0x40
+#define KLDIR_MAX_ENTRIES		(0x400 / 0x40)
+
+/*
+ * The actual offsets of each memory area are machine-dependent
+ */
+#ifdef CONFIG_SGI_IP27
+// Not yet #include <asm/sn/sn0/kldir.h>
+#elif defined(CONFIG_SGI_IP35)
+#include <asm/sn/sn1/kldir.h>
+#else
+#error "kldir.h is currently defined for IP27 and IP35 platforms only"
+#endif
+
+#endif	/* CONFIG_SGI_IO */
 
 #endif /* _ASM_SN_KLDIR_H */

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)