RTEMS 6.1-rc1
Files | Data Structures | Macros | Typedefs | Functions
Stack Checker Mechanism

Files

file  stackchk.h
 Stack Checker Information.
 
file  check.c
 Stack Overflow Check User Extension Set.
 

Data Structures

struct  rtems_stack_checker_info
 This structure contains the stack information provided by the stack checker for a stack. More...
 

Macros

#define RTEMS_STACK_CHECKER_EXTENSION
 Stack Checker Extension Set Definition. More...
 

Typedefs

typedef void(* rtems_stack_checker_visitor) (const rtems_stack_checker_info *info, void *arg)
 Visitor routines invoked by rtems_stack_checker_iterate() shall have this type. More...
 

Functions

bool rtems_stack_checker_is_blown (void)
 Checks if current task is blown its stack. More...
 
void rtems_stack_checker_report_usage (void)
 Print the stack usage report using printk. More...
 
void rtems_stack_checker_report_usage_with_plugin (const rtems_printer *printer)
 Print the stack usage report using caller's routine. More...
 
void rtems_stack_checker_iterate (rtems_stack_checker_visitor visit, void *arg)
 Iterates over all stacks used by the system and invokes the visitor routine for each stack. More...
 
bool rtems_stack_checker_create_extension (rtems_tcb *running, rtems_tcb *the_thread)
 Stack Checker Task Create Extension. More...
 
void rtems_stack_checker_begin_extension (rtems_tcb *executing)
 
void rtems_stack_checker_switch_extension (rtems_tcb *running, rtems_tcb *heir)
 Stack Checker Task Context Switch Extension. More...
 

Detailed Description

Macro Definition Documentation

◆ RTEMS_STACK_CHECKER_EXTENSION

#define RTEMS_STACK_CHECKER_EXTENSION
Value:
{ \
rtems_stack_checker_create_extension, /* rtems_task_create */ \
0, /* rtems_task_start */ \
0, /* rtems_task_restart */ \
0, /* rtems_task_delete */ \
rtems_stack_checker_switch_extension, /* task_switch */ \
rtems_stack_checker_begin_extension, /* task_begin */ \
0, /* task_exitted */ \
0, /* fatal */ \
0 /* terminate */ \
}

Stack Checker Extension Set Definition.

This macro defines the user extension handler set for the stack checker. This macro is normally only used by confdefs.h.

Typedef Documentation

◆ rtems_stack_checker_visitor

typedef void(* rtems_stack_checker_visitor) (const rtems_stack_checker_info *info, void *arg)

Visitor routines invoked by rtems_stack_checker_iterate() shall have this type.

Parameters
infois the stack information.
argis the argument passed to rtems_stack_checker_iterate().

Function Documentation

◆ rtems_stack_checker_create_extension()

bool rtems_stack_checker_create_extension ( rtems_tcb running,
rtems_tcb the_thread 
)

Stack Checker Task Create Extension.

This method is the task create extension for the stack checker.

Parameters
[in]runningpoints to the currently executing task
[in]the_threadpoints to the newly created task
Note
If this this the first task created, the stack checker will automatically intialize itself.

◆ rtems_stack_checker_is_blown()

bool rtems_stack_checker_is_blown ( void  )

Checks if current task is blown its stack.

This method is used to determine if the current stack pointer of the currently executing task is within bounds.

Return values
Thismethod returns true if the currently executing task has blown its stack.

◆ rtems_stack_checker_iterate()

void rtems_stack_checker_iterate ( rtems_stack_checker_visitor  visit,
void *  arg 
)

Iterates over all stacks used by the system and invokes the visitor routine for each stack.

This method prints a stack usage report for the curently executing task.

Parameters
visitoris the visitor routine invoked for each stack.
argis the argument passed to each visitor routine invocation during the iteration.

◆ rtems_stack_checker_report_usage()

void rtems_stack_checker_report_usage ( void  )

Print the stack usage report using printk.

This method prints a stack usage report for the curently executing task.

Note
It uses printk to print the report.

◆ rtems_stack_checker_report_usage_with_plugin()

void rtems_stack_checker_report_usage_with_plugin ( const rtems_printer printer)

Print the stack usage report using caller's routine.

This method prints a stack usage report for the curently executing task.

Parameters
[in]contextis the context to pass to the print handler
[in]printis the print handler
Note
It uses the caller's routine to print the report.

◆ rtems_stack_checker_switch_extension()

void rtems_stack_checker_switch_extension ( rtems_tcb running,
rtems_tcb heir 
)

Stack Checker Task Context Switch Extension.

This method is the task context switch extension for the stack checker.

Parameters
[in]runningpoints to the currently executing task which is being context switched out
[in]runningpoints to the heir task which we are switching to
Note
This is called from the internal method _Thread_Dispatch.