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

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_SLOTNUM_H
  10. #define _ASM_IA64_SN_SN1_SLOTNUM_H
  11. #define SLOTNUM_MAXLENGTH 16
  12. /*
  13.  * This file attempts to define a slot number space across all slots.
  14.  *
  15.  * Node slots
  16.  * Router slots
  17.  * Crosstalk slots
  18.  *
  19.  * Other slots are children of their parent crosstalk slot:
  20.  * PCI slots
  21.  * VME slots
  22.  *
  23.  * The PCI class has been added since the XBridge ASIC on SN-MIPS
  24.  * has built-in PCI bridges (2). On IBricks, widget E & F serve
  25.  * PCI busses, and on PBricks all widgets serve as PCI busses
  26.  * with the use of the super-bridge mode of the XBridge ASIC.
  27.  */
  28. #define SLOTNUM_NODE_CLASS 0x00 /* Node   */
  29. #define SLOTNUM_ROUTER_CLASS 0x10 /* Router */
  30. #define SLOTNUM_XTALK_CLASS 0x20 /* Xtalk  */
  31. #define SLOTNUM_MIDPLANE_CLASS 0x30 /* Midplane */
  32. #define SLOTNUM_XBOW_CLASS 0x40 /* Xbow  */
  33. #define SLOTNUM_KNODE_CLASS 0x50 /* Kego node */
  34. #define SLOTNUM_PCI_CLASS 0x60 /* PCI widgets on XBridge */
  35. #define SLOTNUM_INVALID_CLASS 0xf0 /* Invalid */
  36. #define SLOTNUM_CLASS_MASK 0xf0
  37. #define SLOTNUM_SLOT_MASK 0x0f
  38. #define SLOTNUM_GETCLASS(_sn) ((_sn) & SLOTNUM_CLASS_MASK)
  39. #define SLOTNUM_GETSLOT(_sn) ((_sn) & SLOTNUM_SLOT_MASK)
  40. /* This determines module to pnode mapping. */
  41. /* NODESLOTS_PER_MODULE has changed from 4 to 6
  42.  * to support the 12P 4IO configuration. This change
  43.  * helps in minimum  number of changes to code which
  44.  * depend on the number of node boards within a module.
  45.  */
  46. #define NODESLOTS_PER_MODULE 6
  47. #define NODESLOTS_PER_MODULE_SHFT 2
  48. #define HIGHEST_I2C_VISIBLE_NODESLOT 4
  49. #define RTRSLOTS_PER_MODULE 2
  50. #if __KERNEL__
  51. #include <asm/sn/xtalk/xtalk.h>
  52. extern slotid_t xbwidget_to_xtslot(int crossbow, int widget);
  53. extern slotid_t hub_slotbits_to_slot(slotid_t slotbits);
  54. extern slotid_t hub_slot_to_crossbow(slotid_t hub_slot);
  55. extern slotid_t router_slotbits_to_slot(slotid_t slotbits);
  56. extern slotid_t get_node_slotid(nasid_t nasid);
  57. extern slotid_t get_my_slotid(void);
  58. extern slotid_t get_node_crossbow(nasid_t);
  59. extern xwidgetnum_t hub_slot_to_widget(slotid_t);
  60. extern void get_slotname(slotid_t, char *);
  61. extern void get_my_slotname(char *);
  62. extern slotid_t get_widget_slotnum(int xbow, int widget);
  63. extern void get_widget_slotname(int, int, char *);
  64. extern void router_slotbits_to_slotname(int, char *);
  65. extern slotid_t meta_router_slotbits_to_slot(slotid_t) ;
  66. extern slotid_t hub_slot_get(void);
  67. extern int node_can_talk_to_elsc(void);
  68. extern int  slot_to_widget(int) ;
  69. #define MAX_IO_SLOT_NUM 12
  70. #define MAX_NODE_SLOT_NUM 4
  71. #define MAX_ROUTER_SLOTNUM 2
  72. #endif /* __KERNEL__ */
  73. #endif /* _ASM_IA64_SN_SN1_SLOTNUM_H */