/* IBM_PROLOG_BEGIN_TAG */ /* This is an automatically generated prolog. */ /* */ /* bos720 src/bos/kernel/sys/kerrors.h 1.1 */ /* */ /* Licensed Materials - Property of IBM */ /* */ /* COPYRIGHT International Business Machines Corp. 2005 */ /* All Rights Reserved */ /* */ /* US Government Users Restricted Rights - Use, duplication or */ /* disclosure restricted by GSA ADP Schedule Contract with IBM Corp. */ /* */ /* IBM_PROLOG_END_TAG */ /* @(#)21 1.1 src/bos/kernel/sys/kerrors.h, syserrchk, bos720 3/17/05 00:31:55 */ /* * COMPONENT_NAME: (sysras) RAS Component Infrastructure * * FUNCTIONS: * */ #ifndef _H_SYS_KERRORS #define _H_SYS_KERRORS /* * Severity classifications of errors discovered by components * are defined as follows. The severities are component specific and the * components can choose to assign error severities based on the context in * which the error occurs. */ enum error_severity { LOW_SEVERITY = 1, /* Unexpected error that occurs within the * normal component design. (heap exhaustion) */ MEDIUM_SEVERITY, /* Design or Implementation flaw * (parameter error) */ HIGH_SEVERITY /* Irrecoverable fatal errors. (corruption of * critical data structures) */ }; typedef enum error_severity error_severity_t; /* * The following are the error dispositions or the ways a system reacts to an * error of certain severity. The list describes the possible disposition for * each severity. Note: The disposition for HIGH_SEVERITY errors is * ERROR_SYSTEM_DUMP, which produces a full system dump. This disposition * cannot be changed. * Other error dispositions can be set on a per component basis. * * The various error dispositions are defined reasonably apart with the * notion that the higher the numerical value of the disposition, the more * severe it is. This allows room for future definitions to be added * appropriately. * * Currently the values start with ERROR_IGNORE and increment by * ERROR_DISP_SHIFT (0x10). So the values are 0x30, 0x40, 0x50, 0x60 and * 0x70. * * For example, if another disposition is added in the future and inserted * after ERROR_IGNORE, it would take the successive value of 0x31. * */ #define ERROR_DISP_FIRST 0x30 #define ERROR_DISP_SHIFT 0x10 enum error_disposition { /* No action. The system continues to operate * */ ERROR_IGNORE = ERROR_DISP_FIRST, /* * On detecting an error, the system performs * minimal error analysis and may record an errlog entry. */ ERROR_LOG = ERROR_IGNORE + ERROR_DISP_SHIFT, /* * A live component dump is taken on error. */ ERROR_LIVE_DUMP = ERROR_LOG + ERROR_DISP_SHIFT, /* * Isolate the failure, preserving state for offline analysis */ ERROR_ISOLATE = ERROR_LIVE_DUMP + ERROR_DISP_SHIFT, /* * Produce a full system dump. */ ERROR_SYSTEM_DUMP = ERROR_ISOLATE + ERROR_DISP_SHIFT }; #define ERROR_DISP_LAST ERROR_SYSTEM_DUMP typedef enum error_disposition error_disposition_t; #endif /* _H_SYS_KERRORS */