|
@@ -328,6 +328,22 @@ void qemu_plugin_register_vcpu_tb_exec_inline(struct qemu_plugin_tb *tb,
|
|
|
enum qemu_plugin_op op,
|
|
|
void *ptr, uint64_t imm);
|
|
|
|
|
|
+/**
|
|
|
+ * qemu_plugin_register_vcpu_tb_exec_inline_per_vcpu() - execution inline op
|
|
|
+ * @tb: the opaque qemu_plugin_tb handle for the translation
|
|
|
+ * @op: the type of qemu_plugin_op (e.g. ADD_U64)
|
|
|
+ * @entry: entry to run op
|
|
|
+ * @imm: the op data (e.g. 1)
|
|
|
+ *
|
|
|
+ * Insert an inline op on a given scoreboard entry.
|
|
|
+ */
|
|
|
+QEMU_PLUGIN_API
|
|
|
+void qemu_plugin_register_vcpu_tb_exec_inline_per_vcpu(
|
|
|
+ struct qemu_plugin_tb *tb,
|
|
|
+ enum qemu_plugin_op op,
|
|
|
+ qemu_plugin_u64 entry,
|
|
|
+ uint64_t imm);
|
|
|
+
|
|
|
/**
|
|
|
* qemu_plugin_register_vcpu_insn_exec_cb() - register insn execution cb
|
|
|
* @insn: the opaque qemu_plugin_insn handle for an instruction
|
|
@@ -358,6 +374,22 @@ void qemu_plugin_register_vcpu_insn_exec_inline(struct qemu_plugin_insn *insn,
|
|
|
enum qemu_plugin_op op,
|
|
|
void *ptr, uint64_t imm);
|
|
|
|
|
|
+/**
|
|
|
+ * qemu_plugin_register_vcpu_insn_exec_inline_per_vcpu() - insn exec inline op
|
|
|
+ * @insn: the opaque qemu_plugin_insn handle for an instruction
|
|
|
+ * @op: the type of qemu_plugin_op (e.g. ADD_U64)
|
|
|
+ * @entry: entry to run op
|
|
|
+ * @imm: the op data (e.g. 1)
|
|
|
+ *
|
|
|
+ * Insert an inline op to every time an instruction executes.
|
|
|
+ */
|
|
|
+QEMU_PLUGIN_API
|
|
|
+void qemu_plugin_register_vcpu_insn_exec_inline_per_vcpu(
|
|
|
+ struct qemu_plugin_insn *insn,
|
|
|
+ enum qemu_plugin_op op,
|
|
|
+ qemu_plugin_u64 entry,
|
|
|
+ uint64_t imm);
|
|
|
+
|
|
|
/**
|
|
|
* qemu_plugin_tb_n_insns() - query helper for number of insns in TB
|
|
|
* @tb: opaque handle to TB passed to callback
|
|
@@ -583,7 +615,24 @@ void qemu_plugin_register_vcpu_mem_inline(struct qemu_plugin_insn *insn,
|
|
|
enum qemu_plugin_op op, void *ptr,
|
|
|
uint64_t imm);
|
|
|
|
|
|
-
|
|
|
+/**
|
|
|
+ * qemu_plugin_register_vcpu_mem_inline_per_vcpu() - inline op for mem access
|
|
|
+ * @insn: handle for instruction to instrument
|
|
|
+ * @rw: apply to reads, writes or both
|
|
|
+ * @op: the op, of type qemu_plugin_op
|
|
|
+ * @entry: entry to run op
|
|
|
+ * @imm: immediate data for @op
|
|
|
+ *
|
|
|
+ * This registers a inline op every memory access generated by the
|
|
|
+ * instruction.
|
|
|
+ */
|
|
|
+QEMU_PLUGIN_API
|
|
|
+void qemu_plugin_register_vcpu_mem_inline_per_vcpu(
|
|
|
+ struct qemu_plugin_insn *insn,
|
|
|
+ enum qemu_plugin_mem_rw rw,
|
|
|
+ enum qemu_plugin_op op,
|
|
|
+ qemu_plugin_u64 entry,
|
|
|
+ uint64_t imm);
|
|
|
|
|
|
typedef void
|
|
|
(*qemu_plugin_vcpu_syscall_cb_t)(qemu_plugin_id_t id, unsigned int vcpu_index,
|