text_poke
return text_poke(addr, opcode, len);
extern void *text_poke(void *addr, const void *opcode, size_t len);
text_poke(ptr, ((unsigned char []){0xf0}), 1);
text_poke(ptr, ((unsigned char []){0x3E}), 1);
text_poke(text_poke_addr(&text_poke_array.vec[i]), &int3, INT3_INSN_SIZE);
text_poke(text_poke_addr(&text_poke_array.vec[i]) + INT3_INSN_SIZE,
text_poke(text_poke_addr(&text_poke_array.vec[i]), &byte, INT3_INSN_SIZE);
text_poke(p->ainsn.insn, buf, len);
text_poke(p->addr, &int3, 1);
text_poke(p->addr, &p->opcode, 1);
text_poke(slot, buf, len);
text_poke(addr, new, INT3_INSN_SIZE);
text_poke(addr + INT3_INSN_SIZE,
write = text_poke;
text_poke : 1, /* include text poke events */
return event->attr.text_poke;
if (event->attr.text_poke)
attr->context_switch || attr->text_poke ||
if (event->attr.text_poke)
text_poke : 1, /* include text poke events */
struct perf_record_text_poke_event text_poke;
opts->text_poke = true;
gs->tool.text_poke = guest_session__repipe;
inject->tool.text_poke = host__repipe;
inject.tool.text_poke = perf_event__repipe;
rec->opts.text_poke = true;
if (rec->opts.text_poke) {
if (evsel->core.attr.text_poke)
evsel->core.attr.text_poke = 1;
script->tool.text_poke = process_text_poke_events;
struct perf_record_text_poke_event *tp = &event->text_poke;
if (!opts->text_poke)
u64 addr = event->text_poke.addr + event->text_poke.new_len - 1;
int cnt = 4096 + event->text_poke.new_len;
if (!event->text_poke.new_len)
if (addr < event->text_poke.addr)
if (addr + e->byte_cnt + e->length <= event->text_poke.addr) {
struct map *map = maps__find(machine__kernel_maps(machine), event->text_poke.addr);
if (!event->text_poke.new_len)
u8 *new_bytes = event->text_poke.bytes + event->text_poke.old_len;
event->text_poke.addr,
event->text_poke.new_len);
if (ret != event->text_poke.new_len)
event->text_poke.addr);
event->text_poke.addr);
evsel->core.attr.text_poke = 1;
PRINT_ATTRf(text_poke, p_unsigned);
bool text_poke;
return tool->text_poke(tool, event, sample, machine);
event->text_poke.addr = bswap_64(event->text_poke.addr);
event->text_poke.old_len = bswap_16(event->text_poke.old_len);
event->text_poke.new_len = bswap_16(event->text_poke.new_len);
size_t len = sizeof(event->text_poke.old_len) +
sizeof(event->text_poke.new_len) +
event->text_poke.old_len +
event->text_poke.new_len;
void *data = &event->text_poke.old_len;
tool->text_poke = perf_event__process_text_poke;
CREATE_DELEGATE_OP(text_poke);
tool->tool.text_poke = delegate_text_poke;
text_poke;