RTEMS CPU Kit with SuperCore  4.10.99.0
rtems/score/interr.h
Go to the documentation of this file.
00001 
00010 /*
00011  *  COPYRIGHT (c) 1989-2009.
00012  *  On-Line Applications Research Corporation (OAR).
00013  *
00014  *  The license and distribution terms for this file may be
00015  *  found in the file LICENSE in this distribution or at
00016  *  http://www.rtems.com/license/LICENSE.
00017  */
00018 
00019 #ifndef _RTEMS_SCORE_INTERR_H
00020 #define _RTEMS_SCORE_INTERR_H
00021 
00022 #include <stdbool.h>
00023 #include <stdint.h>
00024 
00025 #include <rtems/system.h>
00026 
00037 #ifdef __cplusplus
00038 extern "C" {
00039 #endif
00040 
00045 typedef enum {
00046   INTERNAL_ERROR_CORE,
00047   INTERNAL_ERROR_RTEMS_API,
00048   INTERNAL_ERROR_POSIX_API,
00049 
00055   RTEMS_FATAL_SOURCE_BDBUF,
00056 
00062   RTEMS_FATAL_SOURCE_APPLICATION,
00063 
00069   RTEMS_FATAL_SOURCE_EXIT,
00070 
00079   RTEMS_FATAL_SOURCE_BSP_GENERIC,
00080 
00086   RTEMS_FATAL_SOURCE_BSP_SPECIFIC,
00087 
00095   RTEMS_FATAL_SOURCE_ASSERT,
00096 
00102   RTEMS_FATAL_SOURCE_STACK_CHECKER,
00103 
00111   RTEMS_FATAL_SOURCE_EXCEPTION,
00112 
00119   RTEMS_FATAL_SOURCE_LAST = 0xffffffff
00120 } Internal_errors_Source;
00121 
00125 typedef enum {
00126   INTERNAL_ERROR_NO_CONFIGURATION_TABLE,
00127   INTERNAL_ERROR_NO_CPU_TABLE,
00128   INTERNAL_ERROR_TOO_LITTLE_WORKSPACE,
00129   INTERNAL_ERROR_WORKSPACE_ALLOCATION,
00130   INTERNAL_ERROR_INTERRUPT_STACK_TOO_SMALL,
00131   INTERNAL_ERROR_THREAD_EXITTED,
00132   INTERNAL_ERROR_INCONSISTENT_MP_INFORMATION,
00133   INTERNAL_ERROR_INVALID_NODE,
00134   INTERNAL_ERROR_NO_MPCI,
00135   INTERNAL_ERROR_BAD_PACKET,
00136   INTERNAL_ERROR_OUT_OF_PACKETS,
00137   INTERNAL_ERROR_OUT_OF_GLOBAL_OBJECTS,
00138   INTERNAL_ERROR_OUT_OF_PROXIES,
00139   INTERNAL_ERROR_INVALID_GLOBAL_ID,
00140   INTERNAL_ERROR_BAD_STACK_HOOK,
00141   INTERNAL_ERROR_BAD_ATTRIBUTES,
00142   INTERNAL_ERROR_IMPLEMENTATION_KEY_CREATE_INCONSISTENCY,
00143   INTERNAL_ERROR_IMPLEMENTATION_BLOCKING_OPERATION_CANCEL,
00144   INTERNAL_ERROR_MUTEX_OBTAIN_FROM_BAD_STATE,
00145   INTERNAL_ERROR_UNLIMITED_AND_MAXIMUM_IS_0,
00146   INTERNAL_ERROR_SHUTDOWN_WHEN_NOT_UP,
00147   INTERNAL_ERROR_GXX_KEY_ADD_FAILED,
00148   INTERNAL_ERROR_GXX_MUTEX_INIT_FAILED,
00149   INTERNAL_ERROR_NO_MEMORY_FOR_HEAP,
00150   INTERNAL_ERROR_CPU_ISR_INSTALL_VECTOR
00151 } Internal_errors_Core_list;
00152 
00153 typedef uint32_t Internal_errors_t;
00154 
00158 typedef struct {
00160   Internal_errors_Source  the_source;
00162   bool                    is_internal;
00164   Internal_errors_t       the_error;
00165 } Internal_errors_Information;
00166 
00170 extern Internal_errors_Information _Internal_errors_What_happened;
00171 
00208 void _Internal_error_Occurred(
00209   Internal_errors_Source  the_source,
00210   bool                    is_internal,
00211   Internal_errors_t       the_error
00212 ) RTEMS_COMPILER_NO_RETURN_ATTRIBUTE;
00213 
00214 #ifdef __cplusplus
00215 }
00216 #endif
00217 
00220 #endif
00221 /* end of include file */