elsc.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_SN_KSYS_ELSC_H
  10. #define _ASM_SN_KSYS_ELSC_H
  11. #include <asm/sn/ksys/l1.h>
  12. #define ELSC_ACP_MAX 86 /* 84+cr+lf */
  13. #define ELSC_LINE_MAX (ELSC_ACP_MAX - 2)
  14. typedef sc_cq_t elsc_cq_t;
  15. /*
  16.  * ELSC structure passed around as handle
  17.  */
  18. typedef l1sc_t elsc_t;
  19. void elsc_init(elsc_t *e, nasid_t nasid);
  20. int elsc_process(elsc_t *e);
  21. int elsc_msg_check(elsc_t *e, char *msg, int msg_max);
  22. int elsc_msg_callback(elsc_t *e,
  23.   void (*callback)(void *callback_data, char *msg),
  24.   void *callback_data);
  25. char   *elsc_errmsg(int code);
  26. int elsc_nvram_write(elsc_t *e, int addr, char *buf, int len);
  27. int elsc_nvram_read(elsc_t *e, int addr, char *buf, int len);
  28. int elsc_nvram_magic(elsc_t *e);
  29. int elsc_command(elsc_t *e, int only_if_message);
  30. int elsc_parse(elsc_t *e, char *p1, char *p2, char *p3);
  31. int elsc_ust_write(elsc_t *e, uchar_t c);
  32. int  elsc_ust_read(elsc_t *e, char *c);
  33. /*
  34.  * System controller commands
  35.  */
  36. int elsc_version(elsc_t *e, char *result);
  37. int elsc_debug_set(elsc_t *e, u_char byte1, u_char byte2);
  38. int elsc_debug_get(elsc_t *e, u_char *byte1, u_char *byte2);
  39. int elsc_module_set(elsc_t *e, int module);
  40. int elsc_module_get(elsc_t *e);
  41. int elsc_partition_set(elsc_t *e, int partition);
  42. int elsc_partition_get(elsc_t *e);
  43. int elsc_domain_set(elsc_t *e, int domain);
  44. int elsc_domain_get(elsc_t *e);
  45. int elsc_cluster_set(elsc_t *e, int cluster);
  46. int elsc_cluster_get(elsc_t *e);
  47. int elsc_cell_set(elsc_t *e, int cell);
  48. int elsc_cell_get(elsc_t *e);
  49. int elsc_bist_set(elsc_t *e, char bist_status);
  50. char elsc_bist_get(elsc_t *e);
  51. int elsc_lock(elsc_t *e, int retry_interval_usec, int timeout_usec, u_char lock_val);
  52. int elsc_unlock(elsc_t *e);
  53. int elsc_display_char(elsc_t *e, int led, int chr);
  54. int elsc_display_digit(elsc_t *e, int led, int num, int l_case);
  55. int elsc_display_mesg(elsc_t *e, char *chr); /* 8-char input */
  56. int elsc_password_set(elsc_t *e, char *password); /* 4-char input */
  57. int elsc_password_get(elsc_t *e, char *password); /* 4-char output */
  58. int elsc_rpwr_query(elsc_t *e, int is_master);
  59. int elsc_power_query(elsc_t *e);
  60. int elsc_power_down(elsc_t *e, int sec);
  61. int elsc_power_cycle(elsc_t *e);
  62. int elsc_system_reset(elsc_t *e);
  63. int elsc_dip_switches(elsc_t *e);
  64. int elsc_nic_get(elsc_t *e, uint64_t *nic, int verbose);
  65. int _elsc_hbt(elsc_t *e, int ival, int rdly);
  66. #define elsc_hbt_enable(e, ival, rdly) _elsc_hbt(e, ival, rdly)
  67. #define elsc_hbt_disable(e) _elsc_hbt(e, 0, 0)
  68. #define elsc_hbt_send(e) _elsc_hbt(e, 0, 1)
  69. elsc_t        *get_elsc(void);
  70. /*
  71.  * Error codes
  72.  *
  73.  *   The possible ELSC error codes are a superset of the I2C error codes,
  74.  *   so ELSC error codes begin at -100.
  75.  */
  76. #define ELSC_ERROR_NONE 0
  77. #define ELSC_ERROR_CMD_SEND        (-100) /* Error sending command    */
  78. #define ELSC_ERROR_CMD_CHECKSUM        (-101) /* Command checksum bad     */
  79. #define ELSC_ERROR_CMD_UNKNOWN        (-102) /* Unknown command          */
  80. #define ELSC_ERROR_CMD_ARGS        (-103) /* Invalid argument(s)      */
  81. #define ELSC_ERROR_CMD_PERM        (-104) /* Permission denied     */
  82. #define ELSC_ERROR_CMD_STATE        (-105) /* not allowed in this state*/
  83. #define ELSC_ERROR_RESP_TIMEOUT        (-110) /* ELSC response timeout    */
  84. #define ELSC_ERROR_RESP_CHECKSUM       (-111) /* Response checksum bad    */
  85. #define ELSC_ERROR_RESP_FORMAT        (-112) /* Response format error    */
  86. #define ELSC_ERROR_RESP_DIR        (-113) /* Response direction error */
  87. #define ELSC_ERROR_MSG_LOST        (-120) /* Queue full; msg. lost    */
  88. #define ELSC_ERROR_LOCK_TIMEOUT        (-121) /* ELSC response timeout    */
  89. #define ELSC_ERROR_DATA_SEND        (-122) /* Error sending data       */
  90. #define ELSC_ERROR_NIC        (-123) /* NIC processing error     */
  91. #define ELSC_ERROR_NVMAGIC        (-124) /* Bad magic no. in NVRAM   */
  92. #define ELSC_ERROR_MODULE        (-125) /* Moduleid processing err  */
  93. #endif /* _ASM_SN_KSYS_ELSC_H */