diff options
Diffstat (limited to 'c/src/libmisc/cpuuse')
-rw-r--r-- | c/src/libmisc/cpuuse/.cvsignore | 2 | ||||
-rw-r--r-- | c/src/libmisc/cpuuse/Makefile.am | 42 | ||||
-rw-r--r-- | c/src/libmisc/cpuuse/README | 41 | ||||
-rw-r--r-- | c/src/libmisc/cpuuse/cpuuse.c | 154 | ||||
-rw-r--r-- | c/src/libmisc/cpuuse/cpuuse.h | 40 |
5 files changed, 0 insertions, 279 deletions
diff --git a/c/src/libmisc/cpuuse/.cvsignore b/c/src/libmisc/cpuuse/.cvsignore deleted file mode 100644 index 282522db03..0000000000 --- a/c/src/libmisc/cpuuse/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile -Makefile.in diff --git a/c/src/libmisc/cpuuse/Makefile.am b/c/src/libmisc/cpuuse/Makefile.am deleted file mode 100644 index 5a1646ac01..0000000000 --- a/c/src/libmisc/cpuuse/Makefile.am +++ /dev/null @@ -1,42 +0,0 @@ -## -## $Id$ -## - - -include_rtemsdir = $(includedir)/rtems - -LIBNAME = libcpuuse-tmp -LIB = $(ARCH)/$(LIBNAME).a - -C_FILES = cpuuse.c -C_O_FILES = $(C_FILES:%.c=$(ARCH)/%.$(OBJEXT)) - -include_rtems_HEADERS = cpuuse.h - -OBJS = $(C_O_FILES) - -include $(top_srcdir)/../../../automake/compile.am -include $(top_srcdir)/../../../automake/lib.am - -$(PROJECT_INCLUDE)/rtems: - @$(mkinstalldirs) $@ -$(PROJECT_INCLUDE)/rtems/%.h: %.h - $(INSTALL_DATA) $< $@ - -# -# (OPTIONAL) Add local stuff here using += -# - -$(LIB): $(OBJS) - $(make-library) - -PREINSTALL_FILES = $(PROJECT_INCLUDE)/rtems \ - $(include_rtems_HEADERS:%=$(PROJECT_INCLUDE)/rtems/%) - -all-local: $(ARCH) $(PREINSTALL_FILES) $(OBJS) $(LIB) - -.PRECIOUS: $(LIB) - -EXTRA_DIST = README cpuuse.c - -include $(top_srcdir)/../../../automake/local.am diff --git a/c/src/libmisc/cpuuse/README b/c/src/libmisc/cpuuse/README deleted file mode 100644 index 20e76f07bc..0000000000 --- a/c/src/libmisc/cpuuse/README +++ /dev/null @@ -1,41 +0,0 @@ -# -# $Id$ -# - -This directory contains a stack bounds checker. It provides two -primary features: - - + check for stack overflow at each context switch - + provides an educated guess at each task's stack usage - -The stack overflow check at context switch works by looking for -a 16 byte pattern at the logical end of the stack to be corrupted. -The "guesser" assumes that the entire stack was prefilled with a known -pattern and assumes that the pattern is still in place if the memory -has not been used as a stack. - -Both of these can be fooled by pushing large holes onto the stack -and not writing to them... or (much more unlikely) writing the -magic patterns into memory. - -This code has not been extensively tested. It is provided as a tool -for RTEMS users to catch the most common mistake in multitasking -systems ... too little stack space. Suggestions and comments are appreciated. - -NOTES: - -1. Stack usage information is questionable on CPUs which push - large holes on stack. - -2. The stack checker has a tendency to generate a fault when - trying to print the helpful diagnostic message. If it comes - out, congratulations. If not, then the variable Stack_check_Blown_task - contains a pointer to the TCB of the offending task. This - is usually enough to go on. - -FUTURE: - -1. Determine how/if gcc will generate stack probe calls and support that. - -2. Get accurate stack usage numbers on i960.. it pushes very large - holes on the stack. diff --git a/c/src/libmisc/cpuuse/cpuuse.c b/c/src/libmisc/cpuuse/cpuuse.c deleted file mode 100644 index c984b39751..0000000000 --- a/c/src/libmisc/cpuuse/cpuuse.c +++ /dev/null @@ -1,154 +0,0 @@ -/* - * CPU Usage Reporter - * - * COPYRIGHT (c) 1989-1999. 1996. - * 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.OARcorp.com/rtems/license.html. - * - * $Id$ - * - */ - -#include <rtems.h> - -#include <assert.h> -#include <stdio.h> -#include <string.h> -#include <stdlib.h> -#include <ctype.h> - -#include <rtems/cpuuse.h> - -unsigned32 CPU_usage_Ticks_at_last_reset; - -/*PAGE - * - * CPU_usage_Dump - */ - -void CPU_usage_Dump( void ) -{ - unsigned32 i; - unsigned32 api_index; - Thread_Control *the_thread; - Objects_Information *information; - unsigned32 u32_name; - char name[5]; - unsigned32 total_units = 0; - - for ( api_index = 1 ; - api_index <= OBJECTS_APIS_LAST ; - api_index++ ) { - if ( !_Objects_Information_table[ api_index ] ) - continue; - information = _Objects_Information_table[ api_index ][ 1 ]; - if ( information ) { - for ( i=1 ; i <= information->maximum ; i++ ) { - the_thread = (Thread_Control *)information->local_table[ i ]; - - if ( the_thread ) - total_units += the_thread->ticks_executed; - } - } - } - - printf("CPU Usage by thread\n"); -#if defined(unix) || ( CPU_HARDWARE_FP == TRUE ) - printf( " ID NAME TICKS PERCENT\n" ); -#else - printf( " ID NAME TICKS\n" ); -#endif - - for ( api_index = 1 ; - api_index <= OBJECTS_APIS_LAST ; - api_index++ ) { - if ( !_Objects_Information_table[ api_index ] ) - continue; - information = _Objects_Information_table[ api_index ][ 1 ]; - if ( information ) { - for ( i=1 ; i <= information->maximum ; i++ ) { - the_thread = (Thread_Control *)information->local_table[ i ]; - - if ( !the_thread ) - continue; - - if ( information->is_string ) - u32_name = *(unsigned32 *)the_thread->Object.name; - else - u32_name = (unsigned32)the_thread->Object.name; - - name[ 0 ] = (u32_name >> 24) & 0xff; - name[ 1 ] = (u32_name >> 16) & 0xff; - name[ 2 ] = (u32_name >> 8) & 0xff; - name[ 3 ] = (u32_name >> 0) & 0xff; - name[ 4 ] = '\0'; - - if ( !isprint(name[0]) ) name[0] = '*'; - if ( !isprint(name[1]) ) name[1] = '*'; - if ( !isprint(name[2]) ) name[2] = '*'; - if ( !isprint(name[3]) ) name[3] = '*'; - -#if defined(unix) || ( CPU_HARDWARE_FP == TRUE ) - printf( "0x%08x %4s %8d %5.3f\n", - the_thread->Object.id, - name, - the_thread->ticks_executed, - (total_units) ? - (double)the_thread->ticks_executed / (double)total_units : - (double)total_units - ); -#else - printf( "0x%08x %4s %8d\n", - the_thread->Object.id, - name, - the_thread->ticks_executed - ); -#endif - } - } - } - - printf( - "\nTicks since last reset = %d\n", - _Watchdog_Ticks_since_boot - CPU_usage_Ticks_at_last_reset - ); - printf( "\nTotal Units = %d\n", total_units ); -} - -/*PAGE - * - * CPU_usage_Reset - */ - -void CPU_usage_Reset( void ) -{ - unsigned32 i; - unsigned32 api_index; - Thread_Control *the_thread; - Objects_Information *information; - - CPU_usage_Ticks_at_last_reset = _Watchdog_Ticks_since_boot; - - for ( api_index = 1 ; - api_index <= OBJECTS_APIS_LAST ; - api_index++ ) { - if ( !_Objects_Information_table[ api_index ] ) - continue; - information = _Objects_Information_table[ api_index ][ 1 ]; - if ( information ) { - for ( i=1 ; i <= information->maximum ; i++ ) { - the_thread = (Thread_Control *)information->local_table[ i ]; - - if ( !the_thread ) - continue; - - the_thread->ticks_executed = 0; - } - } - } - -} - diff --git a/c/src/libmisc/cpuuse/cpuuse.h b/c/src/libmisc/cpuuse/cpuuse.h deleted file mode 100644 index 34e2b3ade5..0000000000 --- a/c/src/libmisc/cpuuse/cpuuse.h +++ /dev/null @@ -1,40 +0,0 @@ -/* cpuuse.h - * - * This include file contains information necessary to utilize - * and install the cpu usage reporting mechanism. - * - * COPYRIGHT (c) 1989-1999. 1996. - * 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.OARcorp.com/rtems/license.html. - * - * $Id$ - */ - -#ifndef __CPU_USE_h -#define __CPU_USE_h - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * CPU_usage_Dump - */ - -void CPU_usage_Dump( void ); - -/* - * CPU_usage_Reset - */ - -void CPU_usage_Reset( void ); - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ |