emulate
bool emulate, const union decode_action *actions,
emulate, actions, checkers);
struct arch_probes_insn *, bool emulate,
bool emulate, const union decode_action *actions,
emulate, actions, checkers);
bool emulate, const union decode_action *actions,
emulate, actions, checkers);
bool emulate, const union decode_action *actions,
bool emulate, const union decode_action *actions,
bool emulate, const union decode_action *actions,
if (emulate)
if (!decode_regs(&insn, regs, emulate))
if (!emulate)
goto emulate;
emulate:
TP_PROTO(unsigned int inst, unsigned long _pc, unsigned int emulate),
TP_ARGS(inst, _pc, emulate),
__field( unsigned int, emulate )
__entry->emulate = emulate;
__entry->inst, __entry->pc, __entry->emulate)
extern void smp_text_poke_single(void *addr, const void *opcode, size_t len, const void *emulate);
extern void smp_text_poke_batch_add(void *addr, const void *opcode, size_t len, const void *emulate);
static void __smp_text_poke_batch_add(void *addr, const void *opcode, size_t len, const void *emulate)
if (!emulate)
emulate = opcode;
ret = insn_decode_kernel(&insn, emulate);
BUG_ON(memcmp(emulate, x86_nops[len], len));
BUG_ON(memcmp(emulate, x86_nops[len], len));
void __ref smp_text_poke_batch_add(void *addr, const void *opcode, size_t len, const void *emulate)
__smp_text_poke_batch_add(addr, opcode, len, emulate);
void __ref smp_text_poke_single(void *addr, const void *opcode, size_t len, const void *emulate)
smp_text_poke_batch_add(addr, opcode, len, emulate);
smp_text_poke_single(insn, code, size, emulate);
const void *emulate = NULL;
emulate = code;
emulate = code;
bool (*emulate)(struct arch_uprobe *, struct pt_regs *);
.emulate = branch_emulate_op,
.emulate = push_emulate_op,
if (auprobe->ops->emulate)
return auprobe->ops->emulate(auprobe, regs);
goto emulate;
emulate:
static bool emulate;
module_param(emulate, bool, 0000);
MODULE_PARM_DESC(emulate, "Force emulation in 9-bit mode");
ret = modesense_handlers[i].emulate(cmd, pc, &buf[length]);
length += modesense_handlers[i].emulate(cmd, pc, &buf[length]);
length = modesense_handlers[i].emulate(cmd, 0, tbuf);
sense_reason_t (*emulate)(struct se_cmd *, unsigned char *);
{ .page = 0x00, .emulate = spc_emulate_evpd_00 },
{ .page = 0x80, .emulate = spc_emulate_evpd_80 },
{ .page = 0x83, .emulate = spc_emulate_evpd_83 },
{ .page = 0x86, .emulate = spc_emulate_evpd_86 },
{ .page = 0xb0, .emulate = spc_emulate_evpd_b0 },
{ .page = 0xb1, .emulate = spc_emulate_evpd_b1 },
{ .page = 0xb2, .emulate = spc_emulate_evpd_b2 },
{ .page = 0xb3, .emulate = spc_emulate_evpd_b3 },
ret = evpd_handlers[p].emulate(cmd, buf);
int (*emulate)(struct se_cmd *, u8, unsigned char *);
{ .page = 0x01, .subpage = 0x00, .emulate = spc_modesense_rwrecovery },
{ .page = 0x08, .subpage = 0x00, .emulate = spc_modesense_caching },
{ .page = 0x0a, .subpage = 0x00, .emulate = spc_modesense_control },
{ .page = 0x1c, .subpage = 0x00, .emulate = spc_modesense_informational_exceptions },