arch.h
上传用户:jlfgdled
上传日期:2013-04-10
资源大小:33168k
文件大小:2k
源码类别:

Linux/Unix编程

开发平台:

Unix_Linux

  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.  * Copyright (C) 1992 - 1997, 2000-2001 Silicon Graphics, Inc. All rights reserved.
  8.  */
  9. #ifndef _ASM_IA64_SN_SN1_ARCH_H
  10. #define _ASM_IA64_SN_SN1_ARCH_H
  11. #if defined(N_MODE)
  12. #error "ERROR constants defined only for M-mode"
  13. #endif
  14. #include <linux/threads.h>
  15. #include <asm/types.h>
  16. #define CPUS_PER_NODE           4       /* CPUs on a single hub */
  17. #define CPUS_PER_SUBNODE        2       /* CPUs on a single hub PI */
  18. /*
  19.  * This is the maximum number of NASIDS that can be present in a system.
  20.  * This include ALL nodes in ALL partitions connected via NUMALINK.
  21.  * (Highest NASID plus one.)
  22.  */
  23. #define MAX_NASIDS              128
  24. /*
  25.  * This is the maximum number of nodes that can be part of a kernel.
  26.  * Effectively, it's the maximum number of compact node ids (cnodeid_t).
  27.  * This is not necessarily the same as MAX_NASIDS.
  28.  */
  29. #define MAX_COMPACT_NODES       128
  30. /*
  31.  * MAX_REGIONS refers to the maximum number of hardware partitioned regions.
  32.  */
  33. #define MAX_REGIONS 64
  34. #define MAX_NONPREMIUM_REGIONS  16
  35. #define MAX_PREMIUM_REGIONS     MAX_REGIONS
  36. /*
  37.  * Slot constants for IP35
  38.  */
  39. #define MAX_MEM_SLOTS    8                     /* max slots per node */
  40. #if defined(N_MODE)
  41. #error "N-mode not supported"
  42. #endif
  43. #define SLOT_SHIFT              (30)
  44. #define SLOT_MIN_MEM_SIZE       (64*1024*1024)
  45. /*
  46.  * MAX_PARITIONS refers to the maximum number of logically defined 
  47.  * partitions the system can support.
  48.  */
  49. #define MAX_PARTITIONS MAX_REGIONS
  50. #define NASID_MASK_BYTES ((MAX_NASIDS + 7) / 8)
  51. /*
  52.  * New stuff in here from Irix sys/pfdat.h.
  53.  */
  54. #define SLOT_PFNSHIFT           (SLOT_SHIFT - PAGE_SHIFT)
  55. #define PFN_NASIDSHFT           (NASID_SHFT - PAGE_SHIFT)
  56. #define slot_getbasepfn(node,slot)  (mkpfn(COMPACT_TO_NASID_NODEID(node), slot<<SLOT_PFNSHIFT))
  57. #define mkpfn(nasid, off)       (((pfn_t)(nasid) << PFN_NASIDSHFT) | (off))
  58. /*
  59.  * two PIs per bedrock, two CPUs per PI
  60.  */
  61. #define NUM_SUBNODES 2
  62. #define SUBNODE_SHFT 1
  63. #define SUBNODE_MASK (0x1 << SUBNODE_SHFT)
  64. #define LOCALCPU_SHFT 0
  65. #define LOCALCPU_MASK (0x1 << LOCALCPU_SHFT)
  66. #define SUBNODE(slice) (((slice) & SUBNODE_MASK) >> SUBNODE_SHFT)
  67. #define LOCALCPU(slice) (((slice) & LOCALCPU_MASK) >> LOCALCPU_SHFT)
  68. #define TO_SLICE(subn, local) (((subn) << SUBNODE_SHFT) | 
  69.  ((local) << LOCALCPU_SHFT))
  70. #endif /* _ASM_IA64_SN_SN1_ARCH_H */