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>
This commit is contained in:
parent
bad03ae476
commit
bcfc082150
@ -361,36 +361,6 @@ static bool die_is_signed_type(Dwarf_Die *tp_die)
|
||||
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 */
|
||||
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,
|
||||
struct probe_trace_arg_ref **ref_ptr = &tvar->ref;
|
||||
Dwarf_Die type;
|
||||
char buf[16];
|
||||
int bsize, boffs, total;
|
||||
int ret;
|
||||
|
||||
/* TODO: check all types */
|
||||
@ -891,11 +862,15 @@ static int convert_variable_type(Dwarf_Die *vr_die,
|
||||
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 */
|
||||
ret = snprintf(buf, 16, "b%d@%d/%zd", die_get_bit_size(vr_die),
|
||||
die_get_bit_offset(vr_die),
|
||||
BYTES_TO_BITS(die_get_byte_size(vr_die)));
|
||||
boffs = dwarf_bitoffset(vr_die);
|
||||
total = dwarf_bytesize(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;
|
||||
}
|
||||
|
||||
@ -943,10 +918,11 @@ static int convert_variable_type(Dwarf_Die *vr_die,
|
||||
return (tvar->type == NULL) ? -ENOMEM : 0;
|
||||
}
|
||||
|
||||
ret = BYTES_TO_BITS(die_get_byte_size(&type));
|
||||
if (!ret)
|
||||
ret = dwarf_bytesize(&type);
|
||||
if (ret <= 0)
|
||||
/* No size ... try to use default type */
|
||||
return 0;
|
||||
ret = BYTES_TO_BITS(ret);
|
||||
|
||||
/* Check the bitwidth */
|
||||
if (ret > MAX_BASIC_TYPE_BITS) {
|
||||
@ -1010,7 +986,7 @@ static int convert_variable_fields(Dwarf_Die *vr_die, const char *varname,
|
||||
else
|
||||
*ref_ptr = ref;
|
||||
}
|
||||
ref->offset += die_get_byte_size(&type) * field->index;
|
||||
ref->offset += dwarf_bytesize(&type) * field->index;
|
||||
if (!field->next)
|
||||
/* Save vr_die for converting types */
|
||||
memcpy(die_mem, vr_die, sizeof(*die_mem));
|
||||
|
Loading…
Reference in New Issue
Block a user