Skip to content

Commit 185c5bc

Browse files
committed
Move operand info generation to frame buffer
1 parent 615f9bc commit 185c5bc

File tree

3 files changed

+18
-16
lines changed

3 files changed

+18
-16
lines changed

contrib/plugins/bap-tracing/frame_buffer.c

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,12 @@ bool frame_buffer_new_frame_std(WLOCKED FrameBuffer *buf,
9696
return true;
9797
}
9898

99-
bool frame_buffer_append_op_info(WLOCKED FrameBuffer *buf, OperandInfo *oi) {
99+
bool frame_buffer_append_reg_info(WLOCKED FrameBuffer *buf, const char *name,
100+
const GByteArray *content,
101+
OperandAccess acc) {
102+
OperandInfo *rinfo =
103+
frame_init_reg_operand_info(name, content->data, content->len, acc);
104+
g_assert(rinfo);
100105
Frame *frame = buf->fbuf[buf->idx];
101106
if (!frame) {
102107
qemu_plugin_outs(
@@ -107,7 +112,8 @@ bool frame_buffer_append_op_info(WLOCKED FrameBuffer *buf, OperandInfo *oi) {
107112
}
108113

109114
OperandInfo *frame_init_reg_operand_info(const char *name, const uint8_t *value,
110-
size_t value_size, OperandAccess access) {
115+
size_t value_size,
116+
OperandAccess access) {
111117
RegOperand *ro = g_new(RegOperand, 1);
112118
reg_operand__init(ro);
113119
ro->name = strdup(name);

contrib/plugins/bap-tracing/frame_buffer.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,9 @@ bool frame_buffer_new_frame_std(WLOCKED FrameBuffer *buf,
4343
/**
4444
* \brief Appends the given operand info to the open frame.
4545
*/
46-
bool frame_buffer_append_op_info(WLOCKED FrameBuffer *buf, OperandInfo *oi);
46+
bool frame_buffer_append_reg_info(WLOCKED FrameBuffer *buf, const char *name,
47+
const GByteArray *content,
48+
OperandAccess acc);
4749

4850
OperandInfo *frame_init_reg_operand_info(const char *name, const uint8_t *value,
4951
size_t value_size,

contrib/plugins/bap-tracing/tracing.c

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -14,23 +14,20 @@ static void log_insn_mem_access(unsigned int vcpu_index,
1414

1515
static void add_post_reg_state(VCPU *vcpu, unsigned int vcpu_index,
1616
GArray *current_regs, FrameBuffer *fbuf) {
17-
GByteArray *rtmp = g_byte_array_new();
17+
GByteArray *rdata = g_byte_array_new();
1818
for (size_t i = 0; i < current_regs->len; ++i) {
1919
Register *prev_reg = vcpu->registers->pdata[i];
2020

2121
qemu_plugin_reg_descriptor *reg =
2222
&g_array_index(current_regs, qemu_plugin_reg_descriptor, i);
23-
int s = qemu_plugin_read_register(reg->handle, rtmp);
23+
int s = qemu_plugin_read_register(reg->handle, rdata);
2424
assert(s == prev_reg->content->len);
25-
if (!memcmp(rtmp->data, prev_reg->content->data, s)) {
25+
if (!memcmp(rdata->data, prev_reg->content->data, s)) {
2626
// No change
2727
continue;
2828
}
2929

30-
OperandInfo *rinfo = frame_init_reg_operand_info(prev_reg->name, rtmp->data,
31-
rtmp->len, OperandWritten);
32-
g_assert(rinfo);
33-
if (!frame_buffer_append_op_info(fbuf, rinfo)) {
30+
if (!frame_buffer_append_reg_info(fbuf, reg->name, rdata, OperandWritten)) {
3431
qemu_plugin_outs("Failed to append opinfo.\n");
3532
g_assert(false);
3633
}
@@ -39,15 +36,12 @@ static void add_post_reg_state(VCPU *vcpu, unsigned int vcpu_index,
3936

4037
static void add_pre_reg_state(VCPU *vcpu, unsigned int vcpu_index,
4138
GArray *current_regs, FrameBuffer *fbuf) {
42-
GByteArray *rtmp = g_byte_array_new();
39+
GByteArray *rdata = g_byte_array_new();
4340
for (size_t i = 0; i < current_regs->len; ++i) {
4441
qemu_plugin_reg_descriptor *reg =
4542
&g_array_index(current_regs, qemu_plugin_reg_descriptor, i);
46-
qemu_plugin_read_register(reg->handle, rtmp);
47-
OperandInfo *rinfo =
48-
frame_init_reg_operand_info(reg->name, rtmp->data, rtmp->len, OperandRead);
49-
g_assert(rinfo);
50-
frame_buffer_append_op_info(fbuf, rinfo);
43+
qemu_plugin_read_register(reg->handle, rdata);
44+
frame_buffer_append_reg_info(fbuf, reg->name, rdata, OperandRead);
5145
}
5246
}
5347

0 commit comments

Comments
 (0)