Commit bcfc0821 authored by Masami Hiramatsu's avatar Masami Hiramatsu Committed by Steven Rostedt

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: default avatarMasami 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@fedora15Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
parent bad03ae4
...@@ -361,36 +361,6 @@ static bool die_is_signed_type(Dwarf_Die *tp_die) ...@@ -361,36 +361,6 @@ static bool die_is_signed_type(Dwarf_Die *tp_die)
ret == DW_ATE_signed_fixed); ret == DW_ATE_signed_fixed);
} }
static int die_get_byte_size(Dwarf_Die *tp_die)
{
Dwarf_Word ret;
if (die_get_attr_udata(tp_die, DW_AT_byte_size, &ret))
return 0;
return (int)ret;
}
static int die_get_bit_size(Dwarf_Die *tp_die)
{
Dwarf_Word ret;
if (die_get_attr_udata(tp_die, DW_AT_bit_size, &ret))
return 0;
return (int)ret;
}
static int die_get_bit_offset(Dwarf_Die *tp_die)
{
Dwarf_Word ret;
if (die_get_attr_udata(tp_die, DW_AT_bit_offset, &ret))
return 0;
return (int)ret;
}
/* Get data_member_location offset */ /* Get data_member_location offset */
static int die_get_data_member_location(Dwarf_Die *mb_die, Dwarf_Word *offs) static int die_get_data_member_location(Dwarf_Die *mb_die, Dwarf_Word *offs)
{ {
...@@ -882,6 +852,7 @@ static int convert_variable_type(Dwarf_Die *vr_die, ...@@ -882,6 +852,7 @@ static int convert_variable_type(Dwarf_Die *vr_die,
struct probe_trace_arg_ref **ref_ptr = &tvar->ref; struct probe_trace_arg_ref **ref_ptr = &tvar->ref;
Dwarf_Die type; Dwarf_Die type;
char buf[16]; char buf[16];
int bsize, boffs, total;
int ret; int ret;
/* TODO: check all types */ /* TODO: check all types */
...@@ -891,11 +862,15 @@ static int convert_variable_type(Dwarf_Die *vr_die, ...@@ -891,11 +862,15 @@ static int convert_variable_type(Dwarf_Die *vr_die,
return (tvar->type == NULL) ? -ENOMEM : 0; return (tvar->type == NULL) ? -ENOMEM : 0;
} }
if (die_get_bit_size(vr_die) != 0) { bsize = dwarf_bitsize(vr_die);
if (bsize > 0) {
/* This is a bitfield */ /* This is a bitfield */
ret = snprintf(buf, 16, "b%d@%d/%zd", die_get_bit_size(vr_die), boffs = dwarf_bitoffset(vr_die);
die_get_bit_offset(vr_die), total = dwarf_bytesize(vr_die);
BYTES_TO_BITS(die_get_byte_size(vr_die))); if (boffs < 0 || total < 0)
return -ENOENT;
ret = snprintf(buf, 16, "b%d@%d/%zd", bsize, boffs,
BYTES_TO_BITS(total));
goto formatted; goto formatted;
} }
...@@ -943,10 +918,11 @@ static int convert_variable_type(Dwarf_Die *vr_die, ...@@ -943,10 +918,11 @@ static int convert_variable_type(Dwarf_Die *vr_die,
return (tvar->type == NULL) ? -ENOMEM : 0; return (tvar->type == NULL) ? -ENOMEM : 0;
} }
ret = BYTES_TO_BITS(die_get_byte_size(&type)); ret = dwarf_bytesize(&type);
if (!ret) if (ret <= 0)
/* No size ... try to use default type */ /* No size ... try to use default type */
return 0; return 0;
ret = BYTES_TO_BITS(ret);
/* Check the bitwidth */ /* Check the bitwidth */
if (ret > MAX_BASIC_TYPE_BITS) { if (ret > MAX_BASIC_TYPE_BITS) {
...@@ -1010,7 +986,7 @@ static int convert_variable_fields(Dwarf_Die *vr_die, const char *varname, ...@@ -1010,7 +986,7 @@ static int convert_variable_fields(Dwarf_Die *vr_die, const char *varname,
else else
*ref_ptr = ref; *ref_ptr = ref;
} }
ref->offset += die_get_byte_size(&type) * field->index; ref->offset += dwarf_bytesize(&type) * field->index;
if (!field->next) if (!field->next)
/* Save vr_die for converting types */ /* Save vr_die for converting types */
memcpy(die_mem, vr_die, sizeof(*die_mem)); memcpy(die_mem, vr_die, sizeof(*die_mem));
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment