diff options
author | hunt <hunt> | 2007-01-31 20:13:02 +0000 |
---|---|---|
committer | hunt <hunt> | 2007-01-31 20:13:02 +0000 |
commit | 1b276fc2991255d65c28fa2df03b7b9ecc7d4f7b (patch) | |
tree | 09dddc7115d2691e05ee392c2316c0793013a709 /runtime/sym.c | |
parent | dcc4fec4fbb6caddbc82c758f57c014cfc37d088 (diff) | |
download | systemtap-steved-1b276fc2991255d65c28fa2df03b7b9ecc7d4f7b.tar.gz systemtap-steved-1b276fc2991255d65c28fa2df03b7b9ecc7d4f7b.tar.xz systemtap-steved-1b276fc2991255d65c28fa2df03b7b9ecc7d4f7b.zip |
2007-01-31 Martin Hunt <hunt@redhat.com>
* string.c (_stp_string_init): Deleted.
(_stp_sprintf): Deleted.
(_stp_vsprintf): Deleted.
(_stp_string_cat_cstr): Deleted.
(_stp_string_cat_string): Deleted.
(_stp_string_cat_char): Deleted.
(_stp_string_ptr): Deleted.
(_stp_string_cat): Deleted.
(_stp_snprintf): Moved from vsprintf.c.
(_stp_vscnprintf): Moved from vsprintf.c.
* string.h (STP_STRING_SIZE): Deleted.
(STP_NUM_STRINGS): Deleted.
Remove all references to type "String".
* vsprintf.c (_stp_vscnprintf): Moved to string.c.
(_stp_snprintf): Moved to string.c
* sym.c (_stp_symbol_sprint): Replaced with
_stp_symbol_print, which writes to the print buffer.
(_stp_symbol_sprint_basic): Replaced with
_stp_symbol_snprint.
* runtime.h: Include io.c.
* stat-common.c: Use new _stp_print* functions.
* stat.c: Ditto.
* regs.c: Renamed to regs-ia64.c.
* current.c: Renamed regs.c.
* regs-ia64.c: New file (renamed from regs.c).
* stack.c (_stp_stack_sprint): Renamed _stp_stack_print
and now just prints to the print buffer. Calls
__stp_stack_print instead of __stp_stack_sprint.
(_stp_stack_snprint): New function. Calls _stp_stack_print and
then copies the print buffer into a string.
(_stp_stack_printj): Deleted.
(_stp_ustack_sprint): Deleted.
* stack-*.c: Rewritten to print instead of writing to strings.
Uses new _stp_print* functions.
* print.c (_stp_printf): Create new function instead of macro.
(_stp_print): Ditto.
(_stp_print_char): New function.
* map.c: Use _stp_print() and _stp_print_char()
instead of _stp_print_cstr().
* io.c (_stp_vlog): Use _stp_print() instead
of _stp_string_cat_cstr().
* copy.c (_stp_string_from_user): Deleted.
Diffstat (limited to 'runtime/sym.c')
-rw-r--r-- | runtime/sym.c | 52 |
1 files changed, 15 insertions, 37 deletions
diff --git a/runtime/sym.c b/runtime/sym.c index 2a823ca9..1e9de765 100644 --- a/runtime/sym.c +++ b/runtime/sym.c @@ -1,6 +1,6 @@ /* -*- linux-c -*- * Symbolic Lookup Functions - * Copyright (C) 2005 Red Hat Inc. + * Copyright (C) 2005, 2006, 2007 Red Hat Inc. * Copyright (C) 2006 Intel Corporation. * * This file is part of systemtap, and is free software. You can @@ -142,14 +142,13 @@ static const char * _stp_kallsyms_lookup ( return NULL; } -/** Write addresses symbolically into a String - * @param str String +/** Print an address symbolically. * @param address The address to lookup. * @note Symbolic lookups should not normally be done within * a probe because it is too time-consuming. Use at module exit time. */ -String _stp_symbol_sprint (String str, unsigned long address) +void _stp_symbol_print (unsigned long address) { char *modname; const char *name; @@ -158,36 +157,17 @@ String _stp_symbol_sprint (String str, unsigned long address) name = _stp_kallsyms_lookup(address, &size, &offset, &modname, namebuf); - _stp_sprintf (str, "%p", (void *)address); + _stp_printf ("%p", (void *)address); if (name) { if (modname) - _stp_sprintf (str, " : %s+%#lx/%#lx [%s]", name, offset, size, modname); + _stp_printf (" : %s+%#lx/%#lx [%s]", name, offset, size, modname); else - _stp_sprintf (str, " : %s+%#lx/%#lx", name, offset, size); + _stp_printf (" : %s+%#lx/%#lx", name, offset, size); } - return str; } - -/** Print addresses symbolically to the print buffer. - * @param address The address to lookup. - * @note Symbolic lookups should not normally be done within - * a probe because it is too time-consuming. Use at module exit time. - */ - -#define _stp_symbol_print(address) _stp_symbol_sprint(_stp_stdout,address) - - -/** Write addresses symbolically into a char buffer - * @param str Destination buffer - * @param len Length of destination buffer - * @param address The address to lookup. - * @note Symbolic lookups should not normally be done within - * a probe because it is too time-consuming. Use at module exit time. - */ - -const char *_stp_symbol_sprint_basic (char *str, size_t len, unsigned long address) +void _stp_symbol_snprint (char *str, size_t len, unsigned long address) { char *modname; const char *name; @@ -195,18 +175,16 @@ const char *_stp_symbol_sprint_basic (char *str, size_t len, unsigned long addre char namebuf[KSYM_NAME_LEN+1]; if (len > KSYM_NAME_LEN) { - name = _stp_kallsyms_lookup(address, &size, &offset, &modname, str); - if (!name) - snprintf(str, len, "%p", (void *)address); + name = _stp_kallsyms_lookup(address, &size, &offset, &modname, str); + if (!name) + snprintf(str, len, "%p", (void *)address); } else { - name = _stp_kallsyms_lookup(address, &size, &offset, &modname, namebuf); - if (name) - strlcpy(str, namebuf, len); - else - snprintf(str, len, "%p", (void *)address); + name = _stp_kallsyms_lookup(address, &size, &offset, &modname, namebuf); + if (name) + strlcpy(str, namebuf, len); + else + snprintf(str, len, "%p", (void *)address); } - - return str; } /** @} */ |