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

Linux/Unix编程

开发平台:

Unix_Linux

  1. /*
  2.  * BK Id: SCCS/s.error_log.h 1.5 05/17/01 18:14:21 cort
  3.  */
  4. #ifndef __ERROR_LOG_H__
  5. #define __ERROR_LOG_H__
  6. #define VERBOSE_ERRORS 1 /* Maybe I enlarge the kernel too much */
  7. #undef VERBOSE_ERRORS
  8. /* Event classes */
  9. /* XXX: Endianess correct? NOW*/
  10. #define INTERNAL_ERROR 0x80000000 /* set bit 0 */
  11. #define EPOW_WARNING 0x40000000 /* set bit 1 */
  12. #define POWERMGM_EVENTS 0x20000000 /* set bit 2 */
  13. /* event-scan returns */
  14. #define SEVERITY_FATAL 0x5
  15. #define SEVERITY_ERROR 0x4
  16. #define SEVERITY_ERROR_SYNC 0x3
  17. #define SEVERITY_WARNING 0x2
  18. #define SEVERITY_EVENT 0x1
  19. #define SEVERITY_NO_ERROR 0x0
  20. #define DISP_FULLY_RECOVERED 0x0
  21. #define DISP_LIMITED_RECOVERY 0x1
  22. #define DISP_NOT_RECOVERED 0x2
  23. #define PART_PRESENT 0x0
  24. #define PART_NOT_PRESENT 0x1
  25. #define INITIATOR_UNKNOWN 0x0
  26. #define INITIATOR_CPU 0x1
  27. #define INITIATOR_PCI 0x2
  28. #define INITIATOR_ISA 0x3
  29. #define INITIATOR_MEMORY 0x4
  30. #define INITIATOR_POWERMGM 0x5
  31. #define TARGET_UNKNOWN 0x0
  32. #define TARGET_CPU 0x1
  33. #define TARGET_PCI 0x2
  34. #define TARGET_ISA 0x3
  35. #define TARGET_MEMORY 0x4
  36. #define TARGET_POWERMGM 0x5
  37. #define TYPE_RETRY 0x01
  38. #define TYPE_TCE_ERR 0x02
  39. #define TYPE_INTERN_DEV_FAIL 0x03
  40. #define TYPE_TIMEOUT 0x04
  41. #define TYPE_DATA_PARITY 0x05
  42. #define TYPE_ADDR_PARITY 0x06
  43. #define TYPE_CACHE_PARITY 0x07
  44. #define TYPE_ADDR_INVALID 0x08
  45. #define TYPE_ECC_UNCORR 0x09
  46. #define TYPE_ECC_CORR 0x0a
  47. #define TYPE_EPOW 0x40
  48. /* I don't add PowerMGM events right now, this is a different topic */ 
  49. #define TYPE_PMGM_POWER_SW_ON 0x60
  50. #define TYPE_PMGM_POWER_SW_OFF 0x61
  51. #define TYPE_PMGM_LID_OPEN 0x62
  52. #define TYPE_PMGM_LID_CLOSE 0x63
  53. #define TYPE_PMGM_SLEEP_BTN 0x64
  54. #define TYPE_PMGM_WAKE_BTN 0x65
  55. #define TYPE_PMGM_BATTERY_WARN 0x66
  56. #define TYPE_PMGM_BATTERY_CRIT 0x67
  57. #define TYPE_PMGM_SWITCH_TO_BAT 0x68
  58. #define TYPE_PMGM_SWITCH_TO_AC 0x69
  59. #define TYPE_PMGM_KBD_OR_MOUSE 0x6a
  60. #define TYPE_PMGM_ENCLOS_OPEN 0x6b
  61. #define TYPE_PMGM_ENCLOS_CLOSED 0x6c
  62. #define TYPE_PMGM_RING_INDICATE 0x6d
  63. #define TYPE_PMGM_LAN_ATTENTION 0x6e
  64. #define TYPE_PMGM_TIME_ALARM 0x6f
  65. #define TYPE_PMGM_CONFIG_CHANGE 0x70
  66. #define TYPE_PMGM_SERVICE_PROC 0x71
  67. typedef struct _rtas_error_log {
  68. unsigned long version:8; /* Architectural version */
  69. unsigned long severity:3; /* Severity level of error */
  70. unsigned long disposition:2; /* Degree of recovery */
  71. unsigned long extended:1; /* extended log present? */
  72. unsigned long /* reserved */ :2; /* Reserved for future use */
  73. unsigned long initiator:4; /* Initiator of event */
  74. unsigned long target:4; /* Target of failed operation */
  75. unsigned long type:8; /* General event or error*/
  76. unsigned long extended_log_length:32; /* length in bytes */
  77. } rtas_error_log;
  78. /* ****************************************************************** */
  79. #define ppc_rtas_errorlog_check_severity(x) 
  80. (_errlog_severity[x.severity])
  81. #define ppc_rtas_errorlog_check_target(x) 
  82. (_errlog_target[x.target])
  83. #define ppc_rtas_errorlog_check_initiator(x) 
  84. (_errlog_initiator[x.initiator])
  85. #define ppc_rtas_errorlog_check_extended(x) 
  86. (_errlog_extended[x.extended])
  87. #define ppc_rtas_errorlog_disect_extended(x) 
  88. do { /* implement me */ } while(0)
  89. extern const char * ppc_rtas_errorlog_check_type (rtas_error_log error_log);
  90. extern int ppc_rtas_errorlog_scan(void);
  91. #endif /* __ERROR_LOG_H__ */