From: "Alex Bennée" <alex.bennee@linaro.org>
To: peter.maydell@linaro.org
Cc: "Alex Bennée" <alex.bennee@linaro.org>, qemu-devel@nongnu.org
Subject: [PULL v2 11/15] plugins: expand kernel-doc for instruction query and instrumentation
Date: Wed, 17 Mar 2021 07:22:12 +0000 [thread overview]
Message-ID: <20210317072216.16316-12-alex.bennee@linaro.org> (raw)
In-Reply-To: <20210317072216.16316-1-alex.bennee@linaro.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20210312172821.31647-12-alex.bennee@linaro.org>
diff --git a/include/qemu/qemu-plugin.h b/include/qemu/qemu-plugin.h
index a3805bb299..ad9dc4b69d 100644
--- a/include/qemu/qemu-plugin.h
+++ b/include/qemu/qemu-plugin.h
@@ -327,21 +327,70 @@ void qemu_plugin_register_vcpu_insn_exec_inline(struct qemu_plugin_insn *insn,
enum qemu_plugin_op op,
void *ptr, uint64_t imm);
-/*
- * Helpers to query information about the instructions in a block
+/**
+ * qemu_plugin_tb_n_insns() - query helper for number of insns in TB
+ * @tb: opaque handle to TB passed to callback
+ *
+ * Returns: number of instructions in this block
*/
size_t qemu_plugin_tb_n_insns(const struct qemu_plugin_tb *tb);
+/**
+ * qemu_plugin_tb_vaddr() - query helper for vaddr of TB start
+ * @tb: opaque handle to TB passed to callback
+ *
+ * Returns: virtual address of block start
+ */
uint64_t qemu_plugin_tb_vaddr(const struct qemu_plugin_tb *tb);
+/**
+ * qemu_plugin_tb_get_insn() - retrieve handle for instruction
+ * @tb: opaque handle to TB passed to callback
+ * @idx: instruction number, 0 indexed
+ *
+ * The returned handle can be used in follow up helper queries as well
+ * as when instrumenting an instruction. It is only valid for the
+ * lifetime of the callback.
+ *
+ * Returns: opaque handle to instruction
+ */
struct qemu_plugin_insn *
qemu_plugin_tb_get_insn(const struct qemu_plugin_tb *tb, size_t idx);
+/**
+ * qemu_plugin_insn_data() - return ptr to instruction data
+ * @insn: opaque instruction handle from qemu_plugin_tb_get_insn()
+ *
+ * Note: data is only valid for duration of callback. See
+ * qemu_plugin_insn_size() to calculate size of stream.
+ *
+ * Returns: pointer to a stream of bytes containing the value of this
+ * instructions opcode.
+ */
const void *qemu_plugin_insn_data(const struct qemu_plugin_insn *insn);
+/**
+ * qemu_plugin_insn_size() - return size of instruction
+ * @insn: opaque instruction handle from qemu_plugin_tb_get_insn()
+ *
+ * Returns: size of instruction in bytes
+ */
size_t qemu_plugin_insn_size(const struct qemu_plugin_insn *insn);
+/**
+ * qemu_plugin_insn_vaddr() - return vaddr of instruction
+ * @insn: opaque instruction handle from qemu_plugin_tb_get_insn()
+ *
+ * Returns: virtual address of instruction
+ */
uint64_t qemu_plugin_insn_vaddr(const struct qemu_plugin_insn *insn);
+
+/**
+ * qemu_plugin_insn_haddr() - return hardware addr of instruction
+ * @insn: opaque instruction handle from qemu_plugin_tb_get_insn()
+ *
+ * Returns: hardware (physical) target address of instruction
+ */
void *qemu_plugin_insn_haddr(const struct qemu_plugin_insn *insn);
/*
--
2.20.1
next prev parent reply other threads:[~2021-03-17 7:31 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-03-17 7:22 [PULL v2 00/15] misc fixes (strtoz, plugins, guest-loader) Alex Bennée
2021-03-17 7:22 ` [PULL v2 01/15] utils: Use fixed-point arithmetic in qemu_strtosz Alex Bennée
2021-03-17 11:53 ` Philippe Mathieu-Daudé
2021-03-17 12:13 ` Alex Bennée
2021-03-17 13:16 ` Philippe Mathieu-Daudé
2021-03-17 13:52 ` Eric Blake
2021-03-17 14:31 ` Alex Bennée
2021-03-17 7:22 ` [PULL v2 02/15] plugins: new syscalls plugin Alex Bennée
2021-03-17 7:22 ` [PULL v2 03/15] plugins: Expose physical addresses instead of device offsets Alex Bennée
2021-03-17 7:22 ` [PULL v2 04/15] plugins: expand kernel-doc for qemu_info_t Alex Bennée
2021-03-17 7:22 ` [PULL v2 05/15] plugins: cleanup kernel-doc for qemu_plugin_install Alex Bennée
2021-03-17 7:22 ` [PULL v2 06/15] plugins: expand the callback typedef kernel-docs Alex Bennée
2021-03-17 7:22 ` [PULL v2 07/15] plugins: expand the typedef kernel-docs for translation Alex Bennée
2021-03-17 7:22 ` [PULL v2 08/15] plugins: add qemu_plugin_cb_flags to kernel-doc Alex Bennée
2021-03-17 7:22 ` [PULL v2 09/15] plugins: add qemu_plugin_id_t " Alex Bennée
2021-03-17 7:22 ` [PULL v2 10/15] plugins: expand inline exec kernel-doc documentation Alex Bennée
2021-03-17 7:22 ` Alex Bennée [this message]
2021-03-17 7:22 ` [PULL v2 12/15] plugins: expand kernel-doc for memory query and instrumentation Alex Bennée
2021-03-17 7:22 ` [PULL v2 13/15] plugins: getting qemu_plugin_get_hwaddr only expose one function prototype Alex Bennée
2021-03-17 7:22 ` [PULL v2 14/15] plugins: Fixes typo in qemu-plugin.h Alex Bennée
2021-03-17 7:22 ` [PULL v2 15/15] hw/core: Only build guest-loader if libfdt is available Alex Bennée
2021-03-17 12:10 ` Philippe Mathieu-Daudé
2021-03-18 17:10 ` [PULL v2 00/15] misc fixes (strtoz, plugins, guest-loader) Peter Maydell
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210317072216.16316-12-alex.bennee@linaro.org \
--to=alex.bennee@linaro.org \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).