diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 1999-01-31 19:12:46 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 1999-01-31 19:12:46 +0000 |
commit | 379d2ed5a965fc1bdb2785bcd0fe0f95cf4a59d9 (patch) | |
tree | b427e8abd37c0f2edfbcbd7d7bb8248674e0ec16 /c/src/lib | |
parent | Patch from Eric Norum <eric@skatter.usask.ca> to avoid dereferencing a (diff) | |
download | rtems-379d2ed5a965fc1bdb2785bcd0fe0f95cf4a59d9.tar.bz2 |
New files added to ease debugging.
Diffstat (limited to 'c/src/lib')
-rw-r--r-- | c/src/lib/libmisc/dumpbuf/Makefile.in | 55 | ||||
-rw-r--r-- | c/src/lib/libmisc/dumpbuf/dumpbuf.c | 75 | ||||
-rw-r--r-- | c/src/lib/libmisc/dumpbuf/dumpbuf.h | 21 |
3 files changed, 151 insertions, 0 deletions
diff --git a/c/src/lib/libmisc/dumpbuf/Makefile.in b/c/src/lib/libmisc/dumpbuf/Makefile.in new file mode 100644 index 0000000000..1b404e5557 --- /dev/null +++ b/c/src/lib/libmisc/dumpbuf/Makefile.in @@ -0,0 +1,55 @@ +# +# $Id$ +# + +@SET_MAKE@ +srcdir = @srcdir@ +VPATH = @srcdir@ +RTEMS_ROOT = @top_srcdir@ +PROJECT_ROOT = @PROJECT_ROOT@ + +LIB=${ARCH}/libdumpbuf-tmp.a + +# C source names, if any, go here -- minus the .c +C_PIECES=dumpbuf +C_FILES=$(C_PIECES:%=%.c) +C_O_FILES=$(C_PIECES:%=${ARCH}/%.o) + +H_FILES= +INSTALLED_H_FILES=$(srcdir)/dumpbuf.h + +SRCS=$(C_FILES) $(H_FILES) $(INSTALLED_H_FILES) +OBJS=$(C_O_FILES) + +include $(RTEMS_ROOT)/make/custom/$(RTEMS_BSP).cfg +include $(RTEMS_ROOT)/make/lib.cfg + +# +# (OPTIONAL) Add local stuff here using += +# + +DEFINES += +CPPFLAGS += -I. +CFLAGS += + +LD_PATHS += +LD_LIBS += +LDFLAGS += + +# +# Add your list of files to delete here. The config files +# already know how to delete some stuff, so you may want +# to just run 'make clean' first to see what gets missed. +# 'make clobber' already includes 'make clean' +# + +CLEAN_ADDITIONS += +CLOBBER_ADDITIONS += + +${LIB}: ${SRCS} preinstall ${OBJS} + $(make-library) + +all: ${ARCH} $(SRCS) preinstall $(LIB) + +preinstall: + $(INSTALL) -m 444 ${INSTALLED_H_FILES} $(PROJECT_INCLUDE)/rtems diff --git a/c/src/lib/libmisc/dumpbuf/dumpbuf.c b/c/src/lib/libmisc/dumpbuf/dumpbuf.c new file mode 100644 index 0000000000..1e41f52bbf --- /dev/null +++ b/c/src/lib/libmisc/dumpbuf/dumpbuf.c @@ -0,0 +1,75 @@ +/* + * COPYRIGHT (c) 1997. + * On-Line Applications Research Corporation (OAR). + * + * The license and distribution terms for this file may in + * the file LICENSE in this distribution or at + * http://www.OARcorp.com/rtems/license.html. + * + * $Id$ + */ + +#include <stdio.h> +#include <string.h> +#include <ctype.h> +#include <rtems/dumpbuf.h> + +/* + * Put the body below Dump_Buffer so it won't get inlined. + */ + +static inline void Dump_Line( + unsigned char *buffer, + int length +); + +void Dump_Buffer( + unsigned char *buffer, + int length +) +{ + + int i, mod, max; + + if ( !length ) return; + + mod = length % 16; + + max = length - mod; + + for ( i=0 ; i<max ; i+=16 ) + Dump_Line( &buffer[ i ], 16 ); + + if ( mod ) + Dump_Line( &buffer[ max ], mod ); +} + +static inline void Dump_Line( + unsigned char *buffer, + int length +) +{ + + int i; + char line_buffer[120]; + + line_buffer[0] = '\0'; + + for( i=0 ; i<length ; i++ ) + sprintf( line_buffer, "%s%02x ", line_buffer, buffer[ i ] ); + + for( ; i<16 ; i++ ) + strcat( line_buffer, " " ); + + strcat( line_buffer, "|" ); + for( i=0 ; i<length ; i++ ) + sprintf( line_buffer, "%s%c", line_buffer, + isprint( buffer[ i ] ) ? buffer[ i ] : '.' ); + + for( ; i<16 ; i++ ) + strcat( line_buffer, " " ); + + strcat( line_buffer, "|\n" ); + + printf( line_buffer ); +} diff --git a/c/src/lib/libmisc/dumpbuf/dumpbuf.h b/c/src/lib/libmisc/dumpbuf/dumpbuf.h new file mode 100644 index 0000000000..3af196e8d1 --- /dev/null +++ b/c/src/lib/libmisc/dumpbuf/dumpbuf.h @@ -0,0 +1,21 @@ +/* + * COPYRIGHT (c) 1997. + * On-Line Applications Research Corporation (OAR). + * + * The license and distribution terms for this file may in + * the file LICENSE in this distribution or at + * http://www.OARcorp.com/rtems/license.html. + * + * $Id$ + */ + +#ifndef __DUMP_BUFFER_h +#define __DUMP_BUFFER_h + +void Dump_Buffer( + unsigned char *buffer, + int length +); + +#endif +/* end of include file */ |