aboutsummaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorMasami Hiramatsu <masami.hiramatsu.pt@hitachi.com>2011-06-27 03:27:21 -0400
committerSteven Rostedt <rostedt@goodmis.org>2011-07-15 16:04:47 -0400
commitbcfc082150c6b1e9443c1277bca8be80094150b5 (patch)
treefcb522f8c9bd2ab926065cfb9799defbddb4353b /tools
parentbad03ae476214d9d66bb96be02b630385936f788 (diff)
perf probe: Remove redundant dwarf functions
Since there are dwarf_bitsize, dwarf_bitoffset and dwarf_bytesize defined in libdw, we don't need die_get_bit_size, die_get_bit_offset and die_get_byte_size anymore. Signed-off-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Frederic Weisbecker <fweisbec@gmail.com> Cc: Paul Mackerras <paulus@samba.org> Cc: Ingo Molnar <mingo@elte.hu> Cc: Arnaldo Carvalho de Melo <acme@ghostprotocols.net> Link: http://lkml.kernel.org/r/20110627072721.6528.2747.stgit@fedora15 Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Diffstat (limited to 'tools')
-rw-r--r--tools/perf/util/probe-finder.c50
1 files changed, 13 insertions, 37 deletions
diff --git a/tools/perf/util/probe-finder.c b/tools/perf/util/probe-finder.c
index 459ebe8b04f3..d443b643957f 100644
--- a/tools/perf/util/probe-finder.c
+++ b/tools/perf/util/probe-finder.c
@@ -361,36 +361,6 @@ static bool die_is_signed_type(Dwarf_Die *tp_die)
361 ret == DW_ATE_signed_fixed); 361 ret == DW_ATE_signed_fixed);
362} 362}
363 363
364static int die_get_byte_size(Dwarf_Die *tp_die)
365{
366 Dwarf_Word ret;
367
368 if (die_get_attr_udata(tp_die, DW_AT_byte_size, &ret))
369 return 0;
370
371 return (int)ret;
372}
373
374static int die_get_bit_size(Dwarf_Die *tp_die)
375{
376 Dwarf_Word ret;
377
378 if (die_get_attr_udata(tp_die, DW_AT_bit_size, &ret))
379 return 0;
380
381 return (int)ret;
382}
383
384static int die_get_bit_offset(Dwarf_Die *tp_die)
385{
386 Dwarf_Word ret;
387
388 if (die_get_attr_udata(tp_die, DW_AT_bit_offset, &ret))
389 return 0;
390
391 return (int)ret;
392}
393
394/* Get data_member_location offset */ 364/* Get data_member_location offset */
395static int die_get_data_member_location(Dwarf_Die *mb_die, Dwarf_Word *offs) 365static int die_get_data_member_location(Dwarf_Die *mb_die, Dwarf_Word *offs)
396{ 366{
@@ -882,6 +852,7 @@ static int convert_variable_type(Dwarf_Die *vr_die,
882 struct probe_trace_arg_ref **ref_ptr = &tvar->ref; 852 struct probe_trace_arg_ref **ref_ptr = &tvar->ref;
883 Dwarf_Die type; 853 Dwarf_Die type;
884 char buf[16]; 854 char buf[16];
855 int bsize, boffs, total;
885 int ret; 856 int ret;
886 857
887 /* TODO: check all types */ 858 /* TODO: check all types */
@@ -891,11 +862,15 @@ static int convert_variable_type(Dwarf_Die *vr_die,
891 return (tvar->type == NULL) ? -ENOMEM : 0; 862 return (tvar->type == NULL) ? -ENOMEM : 0;
892 } 863 }
893 864
894 if (die_get_bit_size(vr_die) != 0) { 865 bsize = dwarf_bitsize(vr_die);
866 if (bsize > 0) {
895 /* This is a bitfield */ 867 /* This is a bitfield */
896 ret = snprintf(buf, 16, "b%d@%d/%zd", die_get_bit_size(vr_die), 868 boffs = dwarf_bitoffset(vr_die);
897 die_get_bit_offset(vr_die), 869 total = dwarf_bytesize(vr_die);
898 BYTES_TO_BITS(die_get_byte_size(vr_die))); 870 if (boffs < 0 || total < 0)
871 return -ENOENT;
872 ret = snprintf(buf, 16, "b%d@%d/%zd", bsize, boffs,
873 BYTES_TO_BITS(total));
899 goto formatted; 874 goto formatted;
900 } 875 }
901 876
@@ -943,10 +918,11 @@ static int convert_variable_type(Dwarf_Die *vr_die,
943 return (tvar->type == NULL) ? -ENOMEM : 0; 918 return (tvar->type == NULL) ? -ENOMEM : 0;
944 } 919 }
945 920
946 ret = BYTES_TO_BITS(die_get_byte_size(&type)); 921 ret = dwarf_bytesize(&type);
947 if (!ret) 922 if (ret <= 0)
948 /* No size ... try to use default type */ 923 /* No size ... try to use default type */
949 return 0; 924 return 0;
925 ret = BYTES_TO_BITS(ret);
950 926
951 /* Check the bitwidth */ 927 /* Check the bitwidth */
952 if (ret > MAX_BASIC_TYPE_BITS) { 928 if (ret > MAX_BASIC_TYPE_BITS) {
@@ -1010,7 +986,7 @@ static int convert_variable_fields(Dwarf_Die *vr_die, const char *varname,
1010 else 986 else
1011 *ref_ptr = ref; 987 *ref_ptr = ref;
1012 } 988 }
1013 ref->offset += die_get_byte_size(&type) * field->index; 989 ref->offset += dwarf_bytesize(&type) * field->index;
1014 if (!field->next) 990 if (!field->next)
1015 /* Save vr_die for converting types */ 991 /* Save vr_die for converting types */
1016 memcpy(die_mem, vr_die, sizeof(*die_mem)); 992 memcpy(die_mem, vr_die, sizeof(*die_mem));