![]() |
![]() |
![]() |
> Module > HealthMonitor > SystemHMTable > SystemState |
Module
/Module/HealthMonitor/SystemHMTable/SystemState/ErrorIDLevel
/ConfigRecord/Module/HealthMonitor/SystemHMTable/SystemState/ErrorIDLevel
The ErrorIDLevel element identifies the health monitor level to be invoked when a particular type of error occurs. It is used to map an error identifier specified by the attribute to a health monitor level specified by the ErrorLevel attribute.
The following example shows a minimal system health monitor table that maps every event type to be handled at the level at which it was injected.
<HealthMonitor> <SystemHMTable Name="systemHm"> <SystemState SystemState="HM_PARTITION_MODE"> <ErrorIDLevel ErrorIdentifier="HME_DEFAULT" ErrorLevel="HM_PARTITION_LVL"/> </SystemState> <SystemState SystemState="HM_MODULE_MODE"> <ErrorIDLevel ErrorIdentifier="HME_DEFAULT" ErrorLevel="HM_MODULE_LVL"/> </SystemState> <SystemState SystemState="HM_PROCESS_MODE"> <ErrorIDLevel ErrorIdentifier="HME_DEFAULT" ErrorLevel="HM_PROCESS_LVL"/> </SystemState> </SystemHMTable> </HealthMonitor>
Required, unbounded
None
None
The type of the error to be handled at the health monitor level specified by the ErrorLevel attribute of the current element. The value must be one of the values of the HM_CODE enumeration type, which are defined in hmTypes.h.
Required
ConfigRecord
Unsigned 32 bit integer
N/A
HME_APEX_INTERNAL_ERROR: A catch-all error code for errors in the APEX API.
HME_APPLICATION_ERROR: Equivalent to the ARINC 653 APPLICATION_ERROR error code.
HME_CONFIG_ERROR: A configuration error in the health monitor system.
HME_DATA_LOSS: The reformatting of an event has resulted in loss of data.
HME_DEADLINE_MISSED: Equivalent to the ARINC 653 DEADLINE_MISSED error code.
HME_DEFAULT: A catch all for any event not specifically mapped in the table.
HME_HARDWARE_FAULT: Equivalent to the ARINC 653 HARDWARE_FAULT error code.
HME_HMQ_OVERFLOW: An event has been injected that resulted in a health monitor queue containing more events than specified in its threshold value. (This event is placed on the queue and is therefore received only when the queue is processed. If additional events were injected before the queue was cleared, they would have been reformatted as HME_HM_ERROR events and dispatched to the module level.) An HME_HMQ_OVERFLOW injected in HM_PROCESS_MODE is always routed to HM_PARTITION_LEVEL. This routing cannot be changed.
HME_HM_DEADLINE_MISSED: The watchdog timer (specified by /CoreOSDescription/KernelConfiguration/@watchDogTimerDuration) for a task-locked task has expired while the health monitor was waiting to handle an event injected at interrupt level.
HME_HM_ERROR: An error has occurred during health monitor event processing. An HME_HM_ERROR injected in HM_PROCESS_MODE is always routed to HM_PARTITION_LEVEL. This routing cannot be changed.
HME_HM_INTERNAL_ERROR: A catch-all error code for errors in the health monitor system. An HME_INTERNAL_ERROR event injected in HM_PROCESS_MODE is always routed to HM_PARTITION_LEVEL. This mapping cannot be changed.
HME_ILLEGAL_REQUEST: Equivalent to the ARINC 653 ILLEGAL_REQUEST error code.
HME_INIT_ERROR: Equivalent to the VxWorks 653 VX_ERROR_INIT_ERROR error code as defined in vxworks.h.
HME_KERNEL: Equivalent to the VxWorks 653 VX_ERROR_KERNEL error code.
HME_LOST_TICKS: Equivalent to the VxWorks 653 VX_ERROR_LOST_TICKS error code as defined in vxworks.h.
HME_MEMORY_VIOLATION: Equivalent to the ARINC 653 MEMORY_VIOLATION error code.
HME_NUMERIC_ERROR: Equivalent to the ARINC 653 NUMERIC_ERROR error code.
HME_OTHER: Miscellaneous errors.
HME_PARTITION_MODE_SET: Equivalent to the VxWorks 653 VX_ERROR_PARTITION_MODE_SET error code as defined in vxworks.h.
HME_PARTITION_OVERFLOW: Equivalent to the VxWorks 653 VX_ERROR_PARTITION_OVERFLOW error code as defined in vxworks.h.
HME_PORT_INTERNAL_ERROR: A catch-all error code for errors in the APEX ports subsystem.
HME_POWER_FAIL: Equivalent to the ARINC 653 POWER_FAIL error code.
HME_STACK_OVERFLOW: Equivalent to the ARINC 653 STACK_OVERFLOW error code.
HME_UNKNOWN: Obsolete code retained for backward compatibility.
HM_MSG: The HM_MSG event type has hard coded dispatch rules at the system level. HM_MSG events injected at the process or partition level will be handled at the partition level. Those injected at the module level will be injected at the module level. These routings cannot be changed.
You must provide a health monitor table entry for HME_DEFAULT.
The dispatch level as defined by the HM_DISPATCH_LVL enumeration type, which is defined in hmTypes.h. The attribute defines whether the partition health monitor, module health monitor, or the process health monitor in the partition will handle this event type.
Required
ConfigRecord
Unsigned 32 bit integer
N/A
HM_MODULE_LVL: The event will be handled by the module health monitor.
HM_NO_LVL: The event will be ignored.
HM_PARTITION_LVL: The event will be handled by the partition health monitor.
HM_PROCESS_LVL: The event will be handled by user code in the partition.
An event may not be mapped to a lower level than the one at which it was injected. That is, for example, an event that was injected in HM_PROCESS_MODE can be mapped to HM_PARTITION_LVL, but an event raised at HM_MODULE_MODE cannot be mapped to HM_PARTITION_LVL. Thus the set of values allowed for this attribute is dictated by the system state specified in the SystemState attribute of its containing SystemState element.
There must be a mapping for the event type HME_DEFAULT in the system state HM_MODULE_MODE.
The value must be one of HM_PROCESS_LVL, HM_PARTITION_LVL, HM_MODULE_LVL, or HM_NO_LVL.
Generated on 2007-10-15 17:17:22.