vector.h
上传用户:lgb322
上传日期:2013-02-24
资源大小:30529k
文件大小:4k
源码类别:

嵌入式Linux

开发平台:

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