QEMU-Devel Archive on lore.kernel.org
 help / color / Atom feed
* Qemu TCG Plugins - how to access guest registers
@ 2020-03-26 21:32 Benjamin
  0 siblings, 0 replies; only message in thread
From: Benjamin @ 2020-03-26 21:32 UTC (permalink / raw)
  To: qemu-devel

[-- Attachment #1: Type: text/plain, Size: 1210 bytes --]

Qemu version 4.2.0 includes new functionality for something called TCG
Plugins. There are a few examples in the tests/plugins directory, and the
API is more or less defined in qemu-plugin.h.

This file defines two enumerated types, "qemu_plugin_cb_flags" and
"qemu_plugin_mem_rw", which are passed into functions that register
callbacks. These enums seem to indicate whether the callbacks will read or
write CPU registers or memory. However, all of the example plugins use
"QEMU_PLUGIN_CB_NO_REGS", and only 2 of the plugins use the memory access
enum. hotpages.c and mem.c use "QEMU_PLUGIN_MEM_RW" as the default for
registering a memory callback (qemu_plugin_register_vcpu_mem_cb). mem.c has
an argument when the plugin is loaded to choose if it's read or write,
however, it doesn't seem to make any difference in the callback function.

My question is, how do I access the guest memory and registers from the
plugin callback function? The API seems to indicate that it is possible,
since the callback registering requires you to say if you will access them,
and if it's RW or just read.

Are there any examples of using this part of the API? I realize this is a
very new part of Qemu functionality.


[-- Attachment #2: Type: text/html, Size: 1480 bytes --]

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, back to index

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-03-26 21:32 Qemu TCG Plugins - how to access guest registers Benjamin

QEMU-Devel Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/qemu-devel/0 qemu-devel/git/0.git
	git clone --mirror https://lore.kernel.org/qemu-devel/1 qemu-devel/git/1.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 qemu-devel qemu-devel/ https://lore.kernel.org/qemu-devel \
	public-inbox-index qemu-devel

Example config snippet for mirrors

Newsgroup available over NNTP:

AGPL code for this site: git clone https://public-inbox.org/public-inbox.git