diff options
Diffstat (limited to 'cpukit/libmisc/stackchk/internal.h')
-rw-r--r-- | cpukit/libmisc/stackchk/internal.h | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/cpukit/libmisc/stackchk/internal.h b/cpukit/libmisc/stackchk/internal.h new file mode 100644 index 0000000000..a16a61e30e --- /dev/null +++ b/cpukit/libmisc/stackchk/internal.h @@ -0,0 +1,95 @@ +/* internal.h + * + * This include file contains internal information + * for the RTEMS stack checker. + * + * COPYRIGHT (c) 1989-2006. + * On-Line Applications Research Corporation (OAR). + * + * The license and distribution terms for this file may be + * found in the file LICENSE in this distribution or at + * http://www.rtems.com/license/LICENSE. + * + * $Id$ + */ + +#ifndef __INTERNAL_STACK_CHECK_h +#define __INTERNAL_STACK_CHECK_h + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * This structure is used to fill in and compare the "end of stack" + * marker pattern. + * pattern area must be a multiple of 4 words. + */ + +#ifdef CPU_STACK_CHECK_SIZE +#define PATTERN_SIZE_WORDS (((CPU_STACK_CHECK_SIZE / 4) + 3) & ~0x3) +#else +#define PATTERN_SIZE_WORDS (4) +#endif + +#define PATTERN_SIZE_BYTES (PATTERN_SIZE_WORDS * sizeof(uint32_t)) + +typedef struct { + uint32_t pattern[ PATTERN_SIZE_WORDS ]; +} Stack_check_Control; + +/* + * The pattern used to fill the entire stack. + */ + +#define BYTE_PATTERN 0xA5 +#define U32_PATTERN 0xA5A5A5A5 + +/* + * rtems_stack_checker_create_extension + */ + +bool rtems_stack_checker_create_extension( + Thread_Control *running, + Thread_Control *the_thread +); + +/* + * rtems_stack_checker_begin_extension + */ + +void rtems_stack_checker_begin_extension( + Thread_Control *the_thread +); + +/* + * rtems_stack_checker_switch_extension + */ + +void rtems_stack_checker_switch_extension( + Thread_Control *running, + Thread_Control *heir +); + +/* + * rtems_stack_checker_fatal_extension + */ + +void rtems_stack_checker_fatal_extension( + Internal_errors_Source source, + bool is_internal, + uint32_t status +); + +/* + * rtems_stack_checker_report_usage + */ + +void rtems_stack_checker_report_usage( void ); + +#ifdef __cplusplus +} +#endif + +#endif +/* end of include file */ |