1 /* $Id$
2  *
3  * This file is subject to the terms and conditions of the GNU General Public
4  * License.  See the file "COPYING" in the main directory of this archive
5  * for more details.
6  *
7  * SGI specific setup.
8  *
9  * Copyright (C) 1995-1997,1999,2001-2003 Silicon Graphics, Inc.  All rights reserved.
10  * Copyright (C) 1999 Ralf Baechle (ralf@gnu.org)
11  */
12 #ifndef _ASM_IA64_SN_ARCH_H
13 #define _ASM_IA64_SN_ARCH_H
14 
15 #include <linux/config.h>
16 #include <linux/threads.h>
17 #include <linux/mmzone.h>
18 #include <asm/sn/types.h>
19 
20 #include <asm/sn/sn2/arch.h>
21 
22 typedef u64	shubreg_t;
23 typedef u64	hubreg_t;
24 typedef u64	mmr_t;
25 typedef u64	nic_t;
26 
27 #define CNODE_TO_CPU_BASE(_cnode)	(NODEPDA(_cnode)->node_first_cpu)
28 
29 #define NASID_TO_COMPACT_NODEID(nasid)  (nasid_to_cnodeid(nasid))
30 #define COMPACT_TO_NASID_NODEID(cnode)  (cnodeid_to_nasid(cnode))
31 
32 
33 #define INVALID_NASID		((nasid_t)-1)
34 #define INVALID_CNODEID		((cnodeid_t)-1)
35 #define INVALID_PNODEID		((pnodeid_t)-1)
36 #define INVALID_SLAB            (slabid_t)-1
37 #define INVALID_MODULE		((moduleid_t)-1)
38 #define	INVALID_PARTID		((partid_t)-1)
39 
40 extern cpuid_t cnodetocpu(cnodeid_t);
41 void   sn_flush_all_caches(long addr, long bytes);
42 
43 extern int     is_fine_dirmode(void);
44 
45 
46 #endif /* _ASM_IA64_SN_ARCH_H */
47