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

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-2002 Silicon Graphics, Inc. All rights reserved.
  8.  */
  9. #ifndef _ASM_IA64_SN_VECTOR_H
  10. #define _ASM_IA64_SN_VECTOR_H
  11. #include <linux/config.h>
  12. #define NET_VEC_NULL            ((net_vec_t)  0)
  13. #define NET_VEC_BAD             ((net_vec_t) -1)
  14. #ifdef RTL
  15. #define VEC_POLLS_W 16 /* Polls before write times out */
  16. #define VEC_POLLS_R 16 /* Polls before read times out */
  17. #define VEC_POLLS_X 16 /* Polls before exch times out */
  18. #define VEC_RETRIES_W 1 /* Retries before write fails */
  19. #define VEC_RETRIES_R 1 /* Retries before read fails */
  20. #define VEC_RETRIES_X 1 /* Retries before exch fails */
  21. #else /* RTL */
  22. #define VEC_POLLS_W 128 /* Polls before write times out */
  23. #define VEC_POLLS_R 128 /* Polls before read times out */
  24. #define VEC_POLLS_X 128 /* Polls before exch times out */
  25. #define VEC_RETRIES_W 8 /* Retries before write fails */
  26. #define VEC_RETRIES_R           8 /* Retries before read fails */
  27. #define VEC_RETRIES_X 4 /* Retries before exch fails */
  28. #endif /* RTL */
  29. #if defined(CONFIG_IA64_SGI_SN1) || defined(CONFIG_IA64_GENERIC)
  30. #define VECTOR_PARMS LB_VECTOR_PARMS
  31. #define VECTOR_ROUTE LB_VECTOR_ROUTE
  32. #define VECTOR_DATA LB_VECTOR_DATA
  33. #define VECTOR_STATUS LB_VECTOR_STATUS
  34. #define VECTOR_RETURN LB_VECTOR_RETURN
  35. #define VECTOR_READ_DATA LB_VECTOR_READ_DATA
  36. #define VECTOR_STATUS_CLEAR LB_VECTOR_STATUS_CLEAR
  37. #define VP_PIOID_SHFT LVP_PIOID_SHFT
  38. #define VP_PIOID_MASK LVP_PIOID_MASK
  39. #define VP_WRITEID_SHFT LVP_WRITEID_SHFT
  40. #define VP_WRITEID_MASK LVP_WRITEID_MASK
  41. #define VP_ADDRESS_MASK LVP_ADDRESS_MASK
  42. #define VP_TYPE_SHFT LVP_TYPE_SHFT
  43. #define VP_TYPE_MASK LVP_TYPE_MASK
  44. #define VS_VALID LVS_VALID
  45. #define VS_OVERRUN LVS_OVERRUN
  46. #define VS_TARGET_SHFT LVS_TARGET_SHFT
  47. #define VS_TARGET_MASK LVS_TARGET_MASK
  48. #define VS_PIOID_SHFT LVS_PIOID_SHFT
  49. #define VS_PIOID_MASK LVS_PIOID_MASK
  50. #define VS_WRITEID_SHFT LVS_WRITEID_SHFT
  51. #define VS_WRITEID_MASK LVS_WRITEID_MASK
  52. #define VS_ADDRESS_MASK LVS_ADDRESS_MASK
  53. #define VS_TYPE_SHFT LVS_TYPE_SHFT
  54. #define VS_TYPE_MASK LVS_TYPE_MASK
  55. #define VS_ERROR_MASK LVS_ERROR_MASK
  56. #endif
  57. #define NET_ERROR_NONE 0 /* No error */
  58. #define NET_ERROR_HARDWARE (-1) /* Hardware error */
  59. #define NET_ERROR_OVERRUN (-2) /* Extra response(s) */
  60. #define NET_ERROR_REPLY (-3) /* Reply parms mismatch */
  61. #define NET_ERROR_ADDRESS (-4) /* Addr error response */
  62. #define NET_ERROR_COMMAND (-5) /* Cmd error response */
  63. #define NET_ERROR_PROT (-6) /* Prot error response */
  64. #define NET_ERROR_TIMEOUT (-7) /* Too many retries */
  65. #define NET_ERROR_VECTOR (-8) /* Invalid vector/path */
  66. #define NET_ERROR_ROUTERLOCK (-9) /* Timeout locking rtr */
  67. #define NET_ERROR_INVAL (-10) /* Invalid vector request */
  68. #ifndef __ASSEMBLY__
  69. #include <linux/types.h>
  70. #include <asm/sn/types.h>
  71. typedef uint64_t              net_reg_t;
  72. typedef uint64_t              net_vec_t;
  73. int             vector_write(net_vec_t dest,
  74.                               int write_id, int address,
  75.                               uint64_t value);
  76. int             vector_read(net_vec_t dest,
  77.                              int write_id, int address,
  78.                              uint64_t *value);
  79. int             vector_write_node(net_vec_t dest, nasid_t nasid,
  80.                               int write_id, int address,
  81.                               uint64_t value);
  82. int             vector_read_node(net_vec_t dest, nasid_t nasid,
  83.                              int write_id, int address,
  84.                              uint64_t *value);
  85. int             vector_length(net_vec_t vec);
  86. net_vec_t       vector_get(net_vec_t vec, int n);
  87. net_vec_t       vector_prefix(net_vec_t vec, int n);
  88. net_vec_t       vector_modify(net_vec_t entry, int n, int route);
  89. net_vec_t       vector_reverse(net_vec_t vec);
  90. net_vec_t       vector_concat(net_vec_t vec1, net_vec_t vec2);
  91. char *net_errmsg(int);
  92. #ifndef _STANDALONE
  93. int hub_vector_write(cnodeid_t cnode, net_vec_t vector, int writeid,
  94. int addr, net_reg_t value);
  95. int hub_vector_read(cnodeid_t cnode, net_vec_t vector, int writeid,
  96. int addr, net_reg_t *value);
  97. #endif
  98. #endif /* __ASSEMBLY__ */
  99. #endif /* _ASM_IA64_SN_VECTOR_H */