RTEMS CPU Kit with SuperCore  4.10.99.0
rtems/stackchk.h
Go to the documentation of this file.
00001 
00013 /*
00014  *  COPYRIGHT (c) 1989-2009.
00015  *  On-Line Applications Research Corporation (OAR).
00016  *
00017  *  The license and distribution terms for this file may be
00018  *  found in the file LICENSE in this distribution or at
00019  *  http://www.rtems.org/license/LICENSE.
00020  */
00021 
00022 #ifndef _RTEMS_STACKCHK_H
00023 #define _RTEMS_STACKCHK_H
00024 
00025 #include <stdbool.h> /* bool */
00026 
00027 #include <rtems/score/percpu.h> /* Thread_Control */
00028 #include <rtems/bspIo.h>
00029 
00036 #ifdef __cplusplus
00037 extern "C" {
00038 #endif
00039 
00050 bool rtems_stack_checker_is_blown( void );
00051 
00060 void rtems_stack_checker_report_usage( void );
00061 
00073 void rtems_stack_checker_report_usage_with_plugin(
00074   void                  *context,
00075   rtems_printk_plugin_t  print
00076 );
00077 
00078 /*************************************************************
00079  *************************************************************
00080  **  Prototyped only so the user extension can be installed **
00081  *************************************************************
00082  *************************************************************/
00083 
00095 bool rtems_stack_checker_create_extension(
00096   Thread_Control *running,
00097   Thread_Control *the_thread
00098 );
00099 
00109 void rtems_stack_checker_begin_extension(
00110   Thread_Control *the_thread
00111 );
00112 
00124 void rtems_stack_checker_switch_extension(
00125   Thread_Control *running,
00126   Thread_Control *heir
00127 );
00128 
00135 #define RTEMS_STACK_CHECKER_EXTENSION \
00136 { \
00137   rtems_stack_checker_create_extension,        /* rtems_task_create  */ \
00138   0,                                           /* rtems_task_start   */ \
00139   0,                                           /* rtems_task_restart */ \
00140   0,                                           /* rtems_task_delete  */ \
00141   rtems_stack_checker_switch_extension,        /* task_switch  */ \
00142   rtems_stack_checker_begin_extension,         /* task_begin   */ \
00143   0,                                           /* task_exitted */ \
00144   0 /* rtems_stack_checker_fatal_extension */, /* fatal        */ \
00145 }
00146 
00147 #ifdef __cplusplus
00148 }
00149 #endif
00150 
00151 #endif
00152 /* end of include file */