# See docs/devel/tracing.rst for syntax documentation.
#
# This file is processed by the tracetool script during the build.
#
# To add a new trace event:
#
# 1. Choose a name for the trace event.  Declare its arguments and format
#    string.
#
# 2. Call the trace event from code using trace_##name, e.g. multiwrite_cb() ->
#    trace_multiwrite_cb().  The source file must #include "trace.h".
#
# Format of a trace event:
#
# [disable] <name>(<type1> <arg1>[, <type2> <arg2>] ...) "<format-string>"
#
# Example: g_malloc(size_t size) "size %zu"
#
# The "disable" keyword will build without the trace event.
#
# The <name> must be a valid as a C function name.
#
# Types should be standard C types.  Use void * for pointers because the trace
# system may not have the necessary headers included.
#
# The <format-string> should be a sprintf()-compatible format string.

# cpu.c
breakpoint_insert(int cpu_index, uint64_t pc, int flags) "cpu=%d pc=0x%" PRIx64 " flags=0x%x"
breakpoint_remove(int cpu_index, uint64_t pc, int flags) "cpu=%d pc=0x%" PRIx64 " flags=0x%x"
breakpoint_singlestep(int cpu_index, int enabled) "cpu=%d enable=%d"

# job.c
job_state_transition(void *job,  int ret, const char *legal, const char *s0, const char *s1) "job %p (ret: %d) attempting %s transition (%s-->%s)"
job_apply_verb(void *job, const char *state, const char *verb, const char *legal) "job %p in state %s; applying verb %s (%s)"
job_completed(void *job, int ret) "job %p ret %d"

# job-qmp.c
qmp_job_cancel(void *job) "job %p"
qmp_job_pause(void *job) "job %p"
qmp_job_resume(void *job) "job %p"
qmp_job_complete(void *job) "job %p"
qmp_job_finalize(void *job) "job %p"
qmp_job_dismiss(void *job) "job %p"
# See docs/devel/tracing.rst for syntax documentation.

# tlscreds.c
qcrypto_tls_creds_load_dh(void *creds, const char *filename) "TLS creds load DH creds=%p filename=%s"
qcrypto_tls_creds_get_path(void *creds, const char *filename, const char *path) "TLS creds path creds=%p filename=%s path=%s"

# tlscredsanon.c
qcrypto_tls_creds_anon_load(void *creds, const char *dir) "TLS creds anon load creds=%p dir=%s"

# tlscredspsk.c
qcrypto_tls_creds_psk_load(void *creds, const char *dir) "TLS creds psk load creds=%p dir=%s"

# tlscredsx509.c
qcrypto_tls_creds_x509_load(void *creds, const char *dir) "TLS creds x509 load creds=%p dir=%s"
qcrypto_tls_creds_x509_check_basic_constraints(void *creds, const char *file, int status) "TLS creds x509 check basic constraints creds=%p file=%s status=%d"
qcrypto_tls_creds_x509_check_key_usage(void *creds, const char *file, int status, int usage, int critical) "TLS creds x509 check key usage creds=%p file=%s status=%d usage=%d critical=%d"
qcrypto_tls_creds_x509_check_key_purpose(void *creds, const char *file, int status, const char *usage, int critical) "TLS creds x509 check key usage creds=%p file=%s status=%d usage=%s critical=%d"
qcrypto_tls_creds_x509_load_cert(void *creds, int isServer, const char *file) "TLS creds x509 load cert creds=%p isServer=%d file=%s"
qcrypto_tls_creds_x509_load_cert_list(void *creds, const char *file) "TLS creds x509 load cert list creds=%p file=%s"

# tlssession.c
qcrypto_tls_session_new(void *session, void *creds, const char *hostname, const char *authzid, int endpoint) "TLS session new session=%p creds=%p hostname=%s authzid=%s endpoint=%d"
qcrypto_tls_session_check_creds(void *session, const char *status) "TLS session check creds session=%p status=%s"

# tls-cipher-suites.c
qcrypto_tls_cipher_suite_priority(const char *name) "priority: %s"
qcrypto_tls_cipher_suite_info(uint8_t data0, uint8_t data1, const char *version, const char *name) "data=[0x%02x,0x%02x] version=%s name=%s"
qcrypto_tls_cipher_suite_count(unsigned count) "count: %u"
# See docs/devel/tracing.rst for syntax documentation.

# qapi-visit-core.c
visit_free(void *v) "v=%p"
visit_complete(void *v, void *opaque) "v=%p opaque=%p"

visit_start_struct(void *v, const char *name, void *obj, size_t size) "v=%p name=%s obj=%p size=%zu"
visit_check_struct(void *v) "v=%p"
visit_end_struct(void *v, void *obj) "v=%p obj=%p"

visit_start_list(void *v, const char *name, void *obj, size_t size) "v=%p name=%s obj=%p size=%zu"
visit_next_list(void *v, void *tail, size_t size) "v=%p tail=%p size=%zu"
visit_check_list(void *v) "v=%p"
visit_end_list(void *v, void *obj) "v=%p obj=%p"

visit_start_alternate(void *v, const char *name, void *obj, size_t size) "v=%p name=%s obj=%p size=%zu"
visit_end_alternate(void *v, void *obj) "v=%p obj=%p"

visit_optional(void *v, const char *name, bool *present) "v=%p name=%s present=%p"
visit_policy_reject(void *v, const char *name) "v=%p name=%s"
visit_policy_skip(void *v, const char *name) "v=%p name=%s"

visit_type_enum(void *v, const char *name, int *obj) "v=%p name=%s obj=%p"
visit_type_int(void *v, const char *name, int64_t *obj) "v=%p name=%s obj=%p"
visit_type_uint8(void *v, const char *name, uint8_t *obj) "v=%p name=%s obj=%p"
visit_type_uint16(void *v, const char *name, uint16_t *obj) "v=%p name=%s obj=%p"
visit_type_uint32(void *v, const char *name, uint32_t *obj) "v=%p name=%s obj=%p"
visit_type_uint64(void *v, const char *name, uint64_t *obj) "v=%p name=%s obj=%p"
visit_type_int8(void *v, const char *name, int8_t *obj) "v=%p name=%s obj=%p"
visit_type_int16(void *v, const char *name, int16_t *obj) "v=%p name=%s obj=%p"
visit_type_int32(void *v, const char *name, int32_t *obj) "v=%p name=%s obj=%p"
visit_type_int64(void *v, const char *name, int64_t *obj) "v=%p name=%s obj=%p"
visit_type_size(void *v, const char *name, uint64_t *obj) "v=%p name=%s obj=%p"
visit_type_bool(void *v, const char *name, bool *obj) "v=%p name=%s obj=%p"
visit_type_str(void *v, const char *name, char **obj) "v=%p name=%s obj=%p"
visit_type_number(void *v, const char *name, void *obj) "v=%p name=%s obj=%p"
visit_type_any(void *v, const char *name, void *obj) "v=%p name=%s obj=%p"
visit_type_null(void *v, const char *name, void *obj) "v=%p name=%s obj=%p"
# See docs/devel/tracing.rst for syntax documentation.

# object.c
object_dynamic_cast_assert(const char *type, const char *target, const char *file, int line, const char *func) "%s->%s (%s:%d:%s)"
object_class_dynamic_cast_assert(const char *type, const char *target, const char *file, int line, const char *func) "%s->%s (%s:%d:%s)"
# See docs/devel/tracing.rst for syntax documentation.

# hmp.c
handle_hmp_command(void *mon, const char *cmdline) "mon %p cmdline: %s"

# monitor.c
monitor_protocol_event_handler(uint32_t event, void *qdict) "event=%d data=%p"
monitor_protocol_event_emit(uint32_t event, void *data) "event=%d data=%p"
monitor_protocol_event_queue(uint32_t event, void *qdict, uint64_t rate) "event=%d data=%p rate=%" PRId64
monitor_suspend(void *ptr, int cnt) "mon %p: %d"

# qmp.c
monitor_qmp_in_band_enqueue(void *req, void *mon, unsigned len) "%p mon %p len %u"
monitor_qmp_in_band_dequeue(void *req, unsigned len) "%p len %u"
monitor_qmp_cmd_in_band(const char *id) "%s"
monitor_qmp_err_in_band(const char *desc) "%s"
monitor_qmp_cmd_out_of_band(const char *id) "%s"
monitor_qmp_respond(void *mon, const char *json) "mon %p resp: %s"
handle_qmp_command(void *mon, const char *req) "mon %p req: %s"
# See docs/devel/tracing.rst for syntax documentation.

# aio-posix.c
run_poll_handlers_begin(void *ctx, int64_t max_ns, int64_t timeout) "ctx %p max_ns %"PRId64 " timeout %"PRId64
run_poll_handlers_end(void *ctx, bool progress, int64_t timeout) "ctx %p progress %d new timeout %"PRId64
poll_shrink(void *ctx, int64_t old, int64_t new) "ctx %p old %"PRId64" new %"PRId64
poll_grow(void *ctx, int64_t old, int64_t new) "ctx %p old %"PRId64" new %"PRId64
poll_add(void *ctx, void *node, int fd, unsigned revents) "ctx %p node %p fd %d revents 0x%x"
poll_remove(void *ctx, void *node, int fd) "ctx %p node %p fd %d"

# async.c
aio_co_schedule(void *ctx, void *co) "ctx %p co %p"
aio_co_schedule_bh_cb(void *ctx, void *co) "ctx %p co %p"
reentrant_aio(void *ctx, const char *name) "ctx %p name %s"

# thread-pool.c
thread_pool_submit_aio(void *pool, void *req, void *opaque) "pool %p req %p opaque %p"
thread_pool_complete_aio(void *pool, void *req, void *opaque, int ret) "pool %p req %p opaque %p ret %d"
thread_pool_cancel_aio(void *req, void *opaque) "req %p opaque %p"

# buffer.c
buffer_resize(const char *buf, size_t olen, size_t len) "%s: old %zd, new %zd"
buffer_move_empty(const char *buf, size_t len, const char *from) "%s: %zd bytes from %s"
buffer_move(const char *buf, size_t len, const char *from) "%s: %zd bytes from %s"
buffer_free(const char *buf, size_t len) "%s: capacity %zd"

# filemonitor-inotify.c
qemu_file_monitor_add_watch(void *mon, const char *dirpath, const char *filename, void *cb, void *opaque, int64_t id) "File monitor %p add watch dir='%s' file='%s' cb=%p opaque=%p id=%" PRId64
qemu_file_monitor_remove_watch(void *mon, const char *dirpath, int64_t id) "File monitor %p remove watch dir='%s' id=%" PRId64
qemu_file_monitor_new(void *mon, int fd) "File monitor %p created fd=%d"
qemu_file_monitor_enable_watch(void *mon, const char *dirpath, int id) "File monitor %p enable watch dir='%s' id=%u"
qemu_file_monitor_disable_watch(void *mon, const char *dirpath, int id) "File monitor %p disable watch dir='%s' id=%u"
qemu_file_monitor_event(void *mon, const char *dirpath, const char *filename, int mask, unsigned int id) "File monitor %p event dir='%s' file='%s' mask=0x%x id=%u"
qemu_file_monitor_dispatch(void *mon, const char *dirpath, const char *filename, int ev, void *cb, void *opaque, int64_t id) "File monitor %p dispatch dir='%s' file='%s' ev=%d cb=%p opaque=%p id=%" PRId64

# qemu-coroutine.c
qemu_aio_coroutine_enter(void *ctx, void *from, void *to, void *opaque) "ctx %p from %p to %p opaque %p"
qemu_coroutine_yield(void *from, void *to) "from %p to %p"
qemu_coroutine_terminate(void *co) "self %p"

# qemu-coroutine-lock.c
qemu_co_mutex_lock_uncontended(void *mutex, void *self) "mutex %p self %p"
qemu_co_mutex_lock_entry(void *mutex, void *self) "mutex %p self %p"
qemu_co_mutex_lock_return(void *mutex, void *self) "mutex %p self %p"
qemu_co_mutex_unlock_entry(void *mutex, void *self) "mutex %p self %p"
qemu_co_mutex_unlock_return(void *mutex, void *self) "mutex %p self %p"

# oslib-posix.c
# oslib-win32.c
qemu_memalign(size_t alignment, size_t size, void *ptr) "alignment %zu size %zu ptr %p"
qemu_anon_ram_alloc(size_t size, void *ptr) "size %zu ptr %p"
qemu_vfree(void *ptr) "ptr %p"
qemu_anon_ram_free(void *ptr, size_t size) "ptr %p size %zu"

# oslib-win32.c
win32_map_alloc(size_t size) "size:%zd"
win32_map_free(void *ptr, void *h) "ptr:%p handle:%p"

# hbitmap.c
hbitmap_iter_skip_words(const void *hb, void *hbi, uint64_t pos, unsigned long cur) "hb %p hbi %p pos %"PRId64" cur 0x%lx"
hbitmap_reset(void *hb, uint64_t start, uint64_t count, uint64_t sbit, uint64_t ebit) "hb %p items %"PRIu64",%"PRIu64" bits %"PRIu64"..%"PRIu64
hbitmap_set(void *hb, uint64_t start, uint64_t count, uint64_t sbit, uint64_t ebit) "hb %p items %"PRIu64",%"PRIu64" bits %"PRIu64"..%"PRIu64

# lockcnt.c
lockcnt_fast_path_attempt(const void *lockcnt, int expected, int new) "lockcnt %p fast path %d->%d"
lockcnt_fast_path_success(const void *lockcnt, int expected, int new) "lockcnt %p fast path %d->%d succeeded"
lockcnt_unlock_attempt(const void *lockcnt, int expected, int new) "lockcnt %p unlock %d->%d"
lockcnt_unlock_success(const void *lockcnt, int expected, int new) "lockcnt %p unlock %d->%d succeeded"
lockcnt_futex_wait_prepare(const void *lockcnt, int expected, int new) "lockcnt %p preparing slow path %d->%d"
lockcnt_futex_wait(const void *lockcnt, int val) "lockcnt %p waiting on %d"
lockcnt_futex_wait_resume(const void *lockcnt, int new) "lockcnt %p after wait: %d"
lockcnt_futex_wake(const void *lockcnt) "lockcnt %p waking up one waiter"

# qemu-sockets.c
socket_listen(int num) "backlog: %d"

# qemu-thread-common.h
# qemu-thread-posix.c
# qemu-thread-win32.c
qemu_mutex_lock(void *mutex, const char *file, const int line) "waiting on mutex %p (%s:%d)"
qemu_mutex_locked(void *mutex, const char *file, const int line) "taken mutex %p (%s:%d)"
qemu_mutex_unlock(void *mutex, const char *file, const int line) "released mutex %p (%s:%d)"

# vfio-helpers.c
qemu_vfio_dma_reset_temporary(void *s) "s %p"
qemu_vfio_ram_block_added(void *s, void *p, size_t size) "s %p host %p size 0x%zx"
qemu_vfio_ram_block_removed(void *s, void *p, size_t size) "s %p host %p size 0x%zx"
qemu_vfio_dump_mapping(void *host, uint64_t iova, size_t size) "vfio mapping %p to iova 0x%08" PRIx64 " size 0x%zx"
qemu_vfio_find_mapping(void *s, void *p) "s %p host %p"
qemu_vfio_new_mapping(void *s, void *host, size_t size, int index, uint64_t iova) "s %p host %p size 0x%zx index %d iova 0x%"PRIx64
qemu_vfio_do_mapping(void *s, void *host, uint64_t iova, size_t size) "s %p host %p <-> iova 0x%"PRIx64 " size 0x%zx"
qemu_vfio_dma_map(void *s, void *host, size_t size, bool temporary, uint64_t *iova) "s %p host %p size 0x%zx temporary %d &iova %p"
qemu_vfio_dma_mapped(void *s, void *host, uint64_t iova, size_t size) "s %p host %p <-> iova 0x%"PRIx64" size 0x%zx"
qemu_vfio_dma_unmap(void *s, void *host) "s %p host %p"
qemu_vfio_pci_read_config(void *buf, int ofs, int size, uint64_t region_ofs, uint64_t region_size) "read cfg ptr %p ofs 0x%x size 0x%x (region addr 0x%"PRIx64" size 0x%"PRIx64")"
qemu_vfio_pci_write_config(void *buf, int ofs, int size, uint64_t region_ofs, uint64_t region_size) "write cfg ptr %p ofs 0x%x size 0x%x (region addr 0x%"PRIx64" size 0x%"PRIx64")"
qemu_vfio_region_info(const char *desc, uint64_t region_ofs, uint64_t region_size, uint32_t cap_offset) "region '%s' addr 0x%"PRIx64" size 0x%"PRIx64" cap_ofs 0x%"PRIx32
qemu_vfio_pci_map_bar(int index, uint64_t region_ofs, uint64_t region_size, int ofs, void *host) "map region bar#%d addr 0x%"PRIx64" size 0x%"PRIx64" ofs 0x%x host %p"

#userfaultfd.c
uffd_detect_open_mode(int mode) "%d"
uffd_query_features_nosys(int err) "errno: %i"
uffd_query_features_api_failed(int err) "errno: %i"
uffd_create_fd_nosys(int err) "errno: %i"
uffd_create_fd_api_failed(int err) "errno: %i"
uffd_create_fd_api_noioctl(uint64_t ioctl_req, uint64_t ioctl_supp) "ioctl_req: 0x%" PRIx64 "ioctl_supp: 0x%" PRIx64
uffd_register_memory_failed(void *addr, uint64_t length, uint64_t mode, int err) "addr: %p length: %" PRIu64 " mode: 0x%" PRIx64 " errno: %i"
uffd_unregister_memory_failed(void *addr, uint64_t length, int err) "addr: %p length: %" PRIu64 " errno: %i"

# module.c
module_load_module(const char *name) "file %s"
module_lookup_object_type(const char *name) "name %s"
# See docs/devel/tracing.rst for syntax documentation.

# gdbstub.c
gdbstub_op_start(const char *device) "Starting gdbstub using device %s"
gdbstub_op_exiting(uint8_t code) "notifying exit with code=0x%02x"
gdbstub_op_continue(void) "Continuing all CPUs"
gdbstub_op_continue_cpu(int cpu_index) "Continuing CPU %d"
gdbstub_op_stepping(int cpu_index) "Stepping CPU %d"
gdbstub_op_extra_info(const char *info) "Thread extra info: %s"
gdbstub_hit_internal_error(void) "RUN_STATE_INTERNAL_ERROR"
gdbstub_hit_break(void) "RUN_STATE_DEBUG"
gdbstub_hit_paused(void) "RUN_STATE_PAUSED"
gdbstub_hit_shutdown(void) "RUN_STATE_SHUTDOWN"
gdbstub_hit_io_error(void) "RUN_STATE_IO_ERROR"
gdbstub_hit_watchdog(void) "RUN_STATE_WATCHDOG"
gdbstub_hit_unknown(int state) "Unknown run state=0x%x"
gdbstub_io_reply(const char *message) "Sent: %s"
gdbstub_io_binaryreply(size_t ofs, const char *line) "0x%04zx: %s"
gdbstub_io_command(const char *command) "Received: %s"
gdbstub_io_got_ack(void) "Got ACK"
gdbstub_io_got_unexpected(uint8_t ch) "Got 0x%02x when expecting ACK/NACK"
gdbstub_err_got_nack(void) "Got NACK, retransmitting"
gdbstub_err_garbage(uint8_t ch) "received garbage between packets: 0x%02x"
gdbstub_err_overrun(void) "command buffer overrun, dropping command"
gdbstub_err_invalid_repeat(uint8_t ch) "got invalid RLE count: 0x%02x"
gdbstub_err_invalid_rle(void) "got invalid RLE sequence"
gdbstub_err_checksum_invalid(uint8_t ch) "got invalid command checksum digit: 0x%02x"
gdbstub_err_checksum_incorrect(uint8_t expected, uint8_t got) "got command packet with incorrect checksum, expected=0x%02x, received=0x%02x"
gdbstub_err_unexpected_runpkt(uint8_t ch) "unexpected packet (0x%02x) while target running"

# system.c
gdbstub_hit_watchpoint(const char *type, int cpu_gdb_index, uint64_t vaddr) "Watchpoint hit, type=\"%s\" cpu=%d, vaddr=0x%" PRIx64 ""
# See docs/devel/tracing.rst for syntax documentation.

# base.c
qauthz_is_allowed(void *authz, const char *identity, bool allowed) "AuthZ %p check identity=%s allowed=%d"

# simple.c
qauthz_simple_is_allowed(void *authz, const char *wantidentity, const char *gotidentity) "AuthZ simple %p check want identity=%s got identity=%s"

# list.c
qauthz_list_check_rule(void *authz, const char *identity, const char *rule, int format, int policy) "AuthZ list %p check rule=%s identity=%s format=%d policy=%d"
qauthz_list_default_policy(void *authz, const char *identity, int policy) "AuthZ list %p default identity=%s policy=%d"

# listfile.c
qauthz_list_file_load(void *authz, const char *filename) "AuthZ file %p load filename=%s"
qauthz_list_file_refresh(void *authz, const char *filename, int success) "AuthZ file %p load filename=%s success=%d"

# pamacct.c
qauthz_pam_check(void *authz, const char *identity, const char *service) "AuthZ PAM %p identity=%s service=%s"
# See docs/devel/tracing.rst for syntax documentation.

# ../block.c
bdrv_open_common(void *bs, const char *filename, int flags, const char *format_name) "bs %p filename \"%s\" flags 0x%x format_name \"%s\""
bdrv_lock_medium(void *bs, bool locked) "bs %p locked %d"

# block-backend.c
blk_co_preadv(void *blk, void *bs, int64_t offset, int64_t bytes, int flags) "blk %p bs %p offset %"PRId64" bytes %" PRId64 " flags 0x%x"
blk_co_pwritev(void *blk, void *bs, int64_t offset, int64_t bytes, int flags) "blk %p bs %p offset %"PRId64" bytes %" PRId64 " flags 0x%x"
blk_root_attach(void *child, void *blk, void *bs) "child %p blk %p bs %p"
blk_root_detach(void *child, void *blk, void *bs) "child %p blk %p bs %p"

# io.c
bdrv_co_preadv_part(void *bs, int64_t offset, int64_t bytes, unsigned int flags) "bs %p offset %" PRId64 " bytes %" PRId64 " flags 0x%x"
bdrv_co_pwritev_part(void *bs, int64_t offset, int64_t bytes, unsigned int flags) "bs %p offset %" PRId64 " bytes %" PRId64 " flags 0x%x"
bdrv_co_pwrite_zeroes(void *bs, int64_t offset, int64_t bytes, int flags) "bs %p offset %" PRId64 " bytes %" PRId64 " flags 0x%x"
bdrv_co_do_copy_on_readv(void *bs, int64_t offset, int64_t bytes, int64_t cluster_offset, int64_t cluster_bytes) "bs %p offset %" PRId64 " bytes %" PRId64 " cluster_offset %" PRId64 " cluster_bytes %" PRId64
bdrv_co_copy_range_from(void *src, int64_t src_offset, void *dst, int64_t dst_offset, int64_t bytes, int read_flags, int write_flags) "src %p offset %" PRId64 " dst %p offset %" PRId64 " bytes %" PRId64 " rw flags 0x%x 0x%x"
bdrv_co_copy_range_to(void *src, int64_t src_offset, void *dst, int64_t dst_offset, int64_t bytes, int read_flags, int write_flags) "src %p offset %" PRId64 " dst %p offset %" PRId64 " bytes %" PRId64 " rw flags 0x%x 0x%x"

# stream.c
stream_one_iteration(void *s, int64_t offset, uint64_t bytes, int is_allocated) "s %p offset %" PRId64 " bytes %" PRIu64 " is_allocated %d"
stream_start(void *bs, void *base, void *s) "bs %p base %p s %p"

# commit.c
commit_one_iteration(void *s, int64_t offset, uint64_t bytes, int is_allocated) "s %p offset %" PRId64 " bytes %" PRIu64 " is_allocated %d"
commit_start(void *bs, void *base, void *top, void *s) "bs %p base %p top %p s %p"

# mirror.c
mirror_start(void *bs, void *s, void *opaque) "bs %p s %p opaque %p"
mirror_restart_iter(void *s, int64_t cnt) "s %p dirty count %"PRId64
mirror_before_flush(void *s) "s %p"
mirror_before_drain(void *s, int64_t cnt) "s %p dirty count %"PRId64
mirror_before_sleep(void *s, int64_t cnt, int synced, uint64_t delay_ns) "s %p dirty count %"PRId64" synced %d delay %"PRIu64"ns"
mirror_one_iteration(void *s, int64_t offset, uint64_t bytes) "s %p offset %" PRId64 " bytes %" PRIu64
mirror_iteration_done(void *s, int64_t offset, uint64_t bytes, int ret) "s %p offset %" PRId64 " bytes %" PRIu64 " ret %d"
mirror_yield(void *s, int64_t cnt, int buf_free_count, int in_flight) "s %p dirty count %"PRId64" free buffers %d in_flight %d"
mirror_yield_in_flight(void *s, int64_t offset, int in_flight) "s %p offset %" PRId64 " in_flight %d"

# backup.c
backup_do_cow_enter(void *job, int64_t start, int64_t offset, uint64_t bytes) "job %p start %" PRId64 " offset %" PRId64 " bytes %" PRIu64
backup_do_cow_return(void *job, int64_t offset, uint64_t bytes, int ret) "job %p offset %" PRId64 " bytes %" PRIu64 " ret %d"

# block-copy.c
block_copy_skip_range(void *bcs, int64_t start, uint64_t bytes) "bcs %p start %"PRId64" bytes %"PRId64
block_copy_process(void *bcs, int64_t start) "bcs %p start %"PRId64
block_copy_copy_range_fail(void *bcs, int64_t start, int ret) "bcs %p start %"PRId64" ret %d"
block_copy_read_fail(void *bcs, int64_t start, int ret) "bcs %p start %"PRId64" ret %d"
block_copy_write_fail(void *bcs, int64_t start, int ret) "bcs %p start %"PRId64" ret %d"
block_copy_write_zeroes_fail(void *bcs, int64_t start, int ret) "bcs %p start %"PRId64" ret %d"

# ../blockdev.c
qmp_block_job_cancel(void *job) "job %p"
qmp_block_job_pause(void *job) "job %p"
qmp_block_job_resume(void *job) "job %p"
qmp_block_job_complete(void *job) "job %p"
qmp_block_job_finalize(void *job) "job %p"
qmp_block_job_dismiss(void *job) "job %p"
qmp_block_stream(void *bs) "bs %p"

# file-win32.c
file_paio_submit(void *acb, void *opaque, int64_t offset, int count, int type) "acb %p opaque %p offset %"PRId64" count %d type %d"

# io_uring.c
luring_init_state(void *s, size_t size) "s %p size %zu"
luring_cleanup_state(void *s) "%p freed"
luring_unplug_fn(void *s, int blocked, int queued, int inflight) "LuringState %p blocked %d queued %d inflight %d"
luring_do_submit(void *s, int blocked, int queued, int inflight) "LuringState %p blocked %d queued %d inflight %d"
luring_do_submit_done(void *s, int ret) "LuringState %p submitted to kernel %d"
luring_co_submit(void *bs, void *s, void *luringcb, int fd, uint64_t offset, size_t nbytes, int type) "bs %p s %p luringcb %p fd %d offset %" PRId64 " nbytes %zd type %d"
luring_process_completion(void *s, void *aiocb, int ret) "LuringState %p luringcb %p ret %d"
luring_io_uring_submit(void *s, int ret) "LuringState %p ret %d"
luring_resubmit_short_read(void *s, void *luringcb, int nread) "LuringState %p luringcb %p nread %d"

# qcow2.c
qcow2_add_task(void *co, void *bs, void *pool, const char *action, int cluster_type, uint64_t host_offset, uint64_t offset, uint64_t bytes, void *qiov, size_t qiov_offset) "co %p bs %p pool %p: %s: cluster_type %d file_cluster_offset %" PRIu64 " offset %" PRIu64 " bytes %" PRIu64 " qiov %p qiov_offset %zu"
qcow2_writev_start_req(void *co, int64_t offset, int64_t bytes) "co %p offset 0x%" PRIx64 " bytes %" PRId64
qcow2_writev_done_req(void *co, int ret) "co %p ret %d"
qcow2_writev_start_part(void *co) "co %p"
qcow2_writev_done_part(void *co, int cur_bytes) "co %p cur_bytes %d"
qcow2_writev_data(void *co, uint64_t offset) "co %p offset 0x%" PRIx64
qcow2_pwrite_zeroes_start_req(void *co, int64_t offset, int64_t bytes) "co %p offset 0x%" PRIx64 " bytes %" PRId64
qcow2_pwrite_zeroes(void *co, int64_t offset, int64_t bytes) "co %p offset 0x%" PRIx64 " bytes %" PRId64
qcow2_skip_cow(void *co, uint64_t offset, int nb_clusters) "co %p offset 0x%" PRIx64 " nb_clusters %d"

# qcow2-cluster.c
qcow2_alloc_clusters_offset(void *co, uint64_t offset, int bytes) "co %p offset 0x%" PRIx64 " bytes %d"
qcow2_handle_copied(void *co, uint64_t guest_offset, uint64_t host_offset, uint64_t bytes) "co %p guest_offset 0x%" PRIx64 " host_offset 0x%" PRIx64 " bytes 0x%" PRIx64
qcow2_handle_alloc(void *co, uint64_t guest_offset, uint64_t host_offset, uint64_t bytes) "co %p guest_offset 0x%" PRIx64 " host_offset 0x%" PRIx64 " bytes 0x%" PRIx64
qcow2_do_alloc_clusters_offset(void *co, uint64_t guest_offset, uint64_t host_offset, int nb_clusters) "co %p guest_offset 0x%" PRIx64 " host_offset 0x%" PRIx64 " nb_clusters %d"
qcow2_cluster_alloc_phys(void *co) "co %p"
qcow2_cluster_link_l2(void *co, int nb_clusters) "co %p nb_clusters %d"

qcow2_l2_allocate(void *bs, int l1_index) "bs %p l1_index %d"
qcow2_l2_allocate_get_empty(void *bs, int l1_index) "bs %p l1_index %d"
qcow2_l2_allocate_write_l2(void *bs, int l1_index) "bs %p l1_index %d"
qcow2_l2_allocate_write_l1(void *bs, int l1_index) "bs %p l1_index %d"
qcow2_l2_allocate_done(void *bs, int l1_index, int ret) "bs %p l1_index %d ret %d"

# qcow2-cache.c
qcow2_cache_get(void *co, int c, uint64_t offset, bool read_from_disk) "co %p is_l2_cache %d offset 0x%" PRIx64 " read_from_disk %d"
qcow2_cache_get_replace_entry(void *co, int c, int i) "co %p is_l2_cache %d index %d"
qcow2_cache_get_read(void *co, int c, int i) "co %p is_l2_cache %d index %d"
qcow2_cache_get_done(void *co, int c, int i) "co %p is_l2_cache %d index %d"
qcow2_cache_flush(void *co, int c) "co %p is_l2_cache %d"
qcow2_cache_entry_flush(void *co, int c, int i) "co %p is_l2_cache %d index %d"

# qcow2-refcount.c
qcow2_process_discards_failed_region(uint64_t offset, uint64_t bytes, int ret) "offset 0x%" PRIx64 " bytes 0x%" PRIx64 " ret %d"

# qed-l2-cache.c
qed_alloc_l2_cache_entry(void *l2_cache, void *entry) "l2_cache %p entry %p"
qed_unref_l2_cache_entry(void *entry, int ref) "entry %p ref %d"
qed_find_l2_cache_entry(void *l2_cache, void *entry, uint64_t offset, int ref) "l2_cache %p entry %p offset %"PRIu64" ref %d"

# qed-table.c
qed_read_table(void *s, uint64_t offset, void *table) "s %p offset %"PRIu64" table %p"
qed_read_table_cb(void *s, void *table, int ret) "s %p table %p ret %d"
qed_write_table(void *s, uint64_t offset, void *table, unsigned int index, unsigned int n) "s %p offset %"PRIu64" table %p index %u n %u"
qed_write_table_cb(void *s, void *table, int flush, int ret) "s %p table %p flush %d ret %d"

# qed.c
qed_need_check_timer_cb(void *s) "s %p"
qed_start_need_check_timer(void *s) "s %p"
qed_cancel_need_check_timer(void *s) "s %p"
qed_aio_complete(void *s, void *acb, int ret) "s %p acb %p ret %d"
qed_aio_setup(void *s, void *acb, int64_t sector_num, int nb_sectors, void *opaque, int flags) "s %p acb %p sector_num %"PRId64" nb_sectors %d opaque %p flags 0x%x"
qed_aio_next_io(void *s, void *acb, int ret, uint64_t cur_pos) "s %p acb %p ret %d cur_pos %"PRIu64
qed_aio_read_data(void *s, void *acb, int ret, uint64_t offset, size_t len) "s %p acb %p ret %d offset %"PRIu64" len %zu"
qed_aio_write_data(void *s, void *acb, int ret, uint64_t offset, size_t len) "s %p acb %p ret %d offset %"PRIu64" len %zu"
qed_aio_write_prefill(void *s, void *acb, uint64_t start, size_t len, uint64_t offset) "s %p acb %p start %"PRIu64" len %zu offset %"PRIu64
qed_aio_write_postfill(void *s, void *acb, uint64_t start, size_t len, uint64_t offset) "s %p acb %p start %"PRIu64" len %zu offset %"PRIu64
qed_aio_write_main(void *s, void *acb, int ret, uint64_t offset, size_t len) "s %p acb %p ret %d offset %"PRIu64" len %zu"

# nvme.c
nvme_controller_capability_raw(uint64_t value) "0x%08"PRIx64
nvme_controller_capability(const char *desc, uint64_t value) "%s: %"PRIu64
nvme_controller_spec_version(uint32_t mjr, uint32_t mnr, uint32_t ter) "Specification supported: %u.%u.%u"
nvme_kick(void *s, unsigned q_index) "s %p q #%u"
nvme_dma_flush_queue_wait(void *s) "s %p"
nvme_error(int cmd_specific, int sq_head, int sqid, int cid, int status) "cmd_specific %d sq_head %d sqid %d cid %d status 0x%x"
nvme_process_completion(void *s, unsigned q_index, int inflight) "s %p q #%u inflight %d"
nvme_complete_command(void *s, unsigned q_index, int cid) "s %p q #%u cid %d"
nvme_submit_command(void *s, unsigned q_index, int cid) "s %p q #%u cid %d"
nvme_submit_command_raw(int c0, int c1, int c2, int c3, int c4, int c5, int c6, int c7) "%02x %02x %02x %02x %02x %02x %02x %02x"
nvme_handle_event(void *s) "s %p"
nvme_poll_queue(void *s, unsigned q_index) "s %p q #%u"
nvme_prw_aligned(void *s, int is_write, uint64_t offset, uint64_t bytes, int flags, int niov) "s %p is_write %d offset 0x%"PRIx64" bytes %"PRId64" flags %d niov %d"
nvme_write_zeroes(void *s, uint64_t offset, uint64_t bytes, int flags) "s %p offset 0x%"PRIx64" bytes %"PRId64" flags %d"
nvme_qiov_unaligned(const void *qiov, int n, void *base, size_t size, int align) "qiov %p n %d base %p size 0x%zx align 0x%x"
nvme_prw_buffered(void *s, uint64_t offset, uint64_t bytes, int niov, int is_write) "s %p offset 0x%"PRIx64" bytes %"PRId64" niov %d is_write %d"
nvme_rw_done(void *s, int is_write, uint64_t offset, uint64_t bytes, int ret) "s %p is_write %d offset 0x%"PRIx64" bytes %"PRId64" ret %d"
nvme_dsm(void *s, int64_t offset, int64_t bytes) "s %p offset 0x%"PRIx64" bytes %"PRId64""
nvme_dsm_done(void *s, int64_t offset, int64_t bytes, int ret) "s %p offset 0x%"PRIx64" bytes %"PRId64" ret %d"
nvme_dma_map_flush(void *s) "s %p"
nvme_free_req_queue_wait(void *s, unsigned q_index) "s %p q #%u"
nvme_create_queue_pair(unsigned q_index, void *q, size_t size, void *aio_context, int fd) "index %u q %p size %zu aioctx %p fd %d"
nvme_free_queue_pair(unsigned q_index, void *q, void *cq, void *sq) "index %u q %p cq %p sq %p"
nvme_cmd_map_qiov(void *s, void *cmd, void *req, void *qiov, int entries) "s %p cmd %p req %p qiov %p entries %d"
nvme_cmd_map_qiov_pages(void *s, int i, uint64_t page) "s %p page[%d] 0x%"PRIx64
nvme_cmd_map_qiov_iov(void *s, int i, void *page, int pages) "s %p iov[%d] %p pages %d"

# iscsi.c
iscsi_xcopy(void *src_lun, uint64_t src_off, void *dst_lun, uint64_t dst_off, uint64_t bytes, int ret) "src_lun %p offset %"PRIu64" dst_lun %p offset %"PRIu64" bytes %"PRIu64" ret %d"

# nbd.c
nbd_parse_blockstatus_compliance(const char *err) "ignoring extra data from non-compliant server: %s"
nbd_structured_read_compliance(const char *type) "server sent non-compliant unaligned read %s chunk"
nbd_extended_headers_compliance(const char *type) "server sent non-compliant %s chunk not matching choice of extended headers"
nbd_read_reply_entry_fail(int ret, const char *err) "ret = %d, err: %s"
nbd_co_request_fail(uint64_t from, uint64_t len, uint64_t handle, uint16_t flags, uint16_t type, const char *name, int ret, const char *err) "Request failed { .from = %" PRIu64", .len = %" PRIu64 ", .handle = %" PRIu64 ", .flags = 0x%" PRIx16 ", .type = %" PRIu16 " (%s) } ret = %d, err: %s"
nbd_client_handshake(const char *export_name) "export '%s'"
nbd_client_handshake_success(const char *export_name) "export '%s'"
nbd_reconnect_attempt(unsigned in_flight) "in_flight %u"
nbd_reconnect_attempt_result(int ret, unsigned in_flight) "ret %d in_flight %u"

# ssh.c
ssh_restart_coroutine(void *co) "co=%p"
ssh_flush(void) "fsync"
ssh_check_host_key_knownhosts(void) "host key OK"
ssh_connect_to_ssh(char *path, int flags, int mode) "opening file %s flags=0x%x creat_mode=0%o"
ssh_co_yield(int sock, void *rd_handler, void *wr_handler) "s->sock=%d rd_handler=%p wr_handler=%p"
ssh_co_yield_back(int sock) "s->sock=%d - back"
ssh_getlength(int64_t length) "length=%" PRIi64
ssh_co_create_opts(uint64_t size) "total_size=%" PRIu64
ssh_read(int64_t offset, size_t size) "offset=%" PRIi64 " size=%zu"
ssh_read_buf(void *buf, size_t size, size_t actual_size) "sftp_read buf=%p size=%zu (actual size=%zu)"
ssh_read_return(ssize_t ret, int sftp_err) "sftp_read returned %zd (sftp error=%d)"
ssh_write(int64_t offset, size_t size) "offset=%" PRIi64 " size=%zu"
ssh_write_buf(void *buf, size_t size, size_t actual_size) "sftp_write buf=%p size=%zu (actual size=%zu)"
ssh_write_return(ssize_t ret, int sftp_err) "sftp_write returned %zd (sftp error=%d)"
ssh_seek(int64_t offset) "seeking to offset=%" PRIi64
ssh_auth_methods(int methods) "auth methods=0x%x"
ssh_server_status(int status) "server status=%d"

# curl.c
curl_timer_cb(long timeout_ms) "timer callback timeout_ms %ld"
curl_sock_cb(int action, int fd) "sock action %d on fd %d"
curl_read_cb(size_t realsize) "just reading %zu bytes"
curl_open(const char *file) "opening %s"
curl_open_size(uint64_t size) "size = %" PRIu64
curl_setup_preadv(uint64_t bytes, uint64_t start, const char *range) "reading %" PRIu64 " at %" PRIu64 " (%s)"
curl_close(void) "close"

# file-posix.c
file_copy_file_range(void *bs, int src, int64_t src_off, int dst, int64_t dst_off, int64_t bytes, int flags, int64_t ret) "bs %p src_fd %d offset %"PRIu64" dst_fd %d offset %"PRIu64" bytes %"PRIu64" flags %d ret %"PRId64
file_FindEjectableOpticalMedia(const char *media) "Matching using %s"
file_setup_cdrom(const char *partition) "Using %s as optical disc"
file_hdev_is_sg(int type, int version) "SG device found: type=%d, version=%d"
file_flush_fdatasync_failed(int err) "errno %d"
zbd_zone_report(void *bs, unsigned int nr_zones, int64_t sector) "bs %p report %d zones starting at sector offset 0x%" PRIx64 ""
zbd_zone_mgmt(void *bs, const char *op_name, int64_t sector, int64_t len) "bs %p %s starts at sector offset 0x%" PRIx64 " over a range of 0x%" PRIx64 " sectors"
zbd_zone_append(void *bs, int64_t sector) "bs %p append at sector offset 0x%" PRIx64 ""
zbd_zone_append_complete(void *bs, int64_t sector) "bs %p returns append sector 0x%" PRIx64 ""

# ssh.c
sftp_error(const char *op, const char *ssh_err, int ssh_err_code, int sftp_err_code) "%s failed: %s (libssh error code: %d, sftp error code: %d)"
# See docs/devel/tracing.rst for syntax documentation.

# wctablet.c
wct_init(void) ""
wct_cmd_re(void) ""
wct_cmd_st(void) ""
wct_cmd_sp(void) ""
wct_cmd_ts(int input) "0x%02x"
wct_cmd_other(const char *cmd) "%s"
wct_speed(int speed) "%d"

# spice.c
spice_chr_discard_write(int len) "spice chr write discarded %d"
spice_vmc_write(ssize_t out, int len) "spice wrote %zd of requested %d"
spice_vmc_read(int bytes, int len) "spice read %d of requested %d"
spice_vmc_register_interface(void *scd) "spice vmc registered interface %p"
spice_vmc_unregister_interface(void *scd) "spice vmc unregistered interface %p"
spice_vmc_event(int event) "spice vmc event %d"

# char-socket.c
chr_socket_poll_err(void *chrdev, const char *label) "chardev socket poll error %p (%s)"
chr_socket_recv_err(void *chrdev, const char *label, const char *err) "chardev socket recv error %p (%s): %s"
chr_socket_recv_eof(void *chrdev, const char *label) "chardev socket recv end-of-file %p (%s)"
chr_socket_write_err(void *chrdev, const char *label, const char *err) "chardev socket write error %p (%s): %s"
chr_socket_disconnect(void *chrdev, const char *label) "chardev socket disconnect %p (%s)"
chr_socket_hangup(void *chrdev, const char *label) "chardev socket hangup %p (%s)"
chr_socket_ws_handshake_err(void *chrdev, const char *label, const char *err) "chardev socket websock handshake error %p (%s): %s"
chr_socket_tls_handshake_err(void *chrdev, const char *label, const char *err) "chardev socket TLS handshake error %p (%s): %s"
chr_socket_tls_init_err(void *chrdev, const char *label, const char *err) "chardev socket TLS init error %p (%s): %s"
# See docs/devel/tracing.rst for syntax documentation.

# task.c
qio_task_new(void *task, void *source, void *func, void *opaque) "Task new task=%p source=%p func=%p opaque=%p"
qio_task_complete(void *task) "Task complete task=%p"
qio_task_thread_start(void *task, void *worker, void *opaque) "Task thread start task=%p worker=%p opaque=%p"
qio_task_thread_run(void *task) "Task thread run task=%p"
qio_task_thread_exit(void *task) "Task thread exit task=%p"
qio_task_thread_result(void *task) "Task thread result task=%p"
qio_task_thread_source_attach(void *task, void *source) "Task thread source attach task=%p source=%p"
qio_task_thread_source_cancel(void *task, void *source) "Task thread source cancel task=%p source=%p"

# channel-null.c
qio_channel_null_new(void *ioc) "Null new ioc=%p"

# channel-socket.c
qio_channel_socket_new(void *ioc) "Socket new ioc=%p"
qio_channel_socket_new_fd(void *ioc, int fd) "Socket new ioc=%p fd=%d"
qio_channel_socket_connect_sync(void *ioc, void *addr) "Socket connect sync ioc=%p addr=%p"
qio_channel_socket_connect_async(void *ioc, void *addr) "Socket connect async ioc=%p addr=%p"
qio_channel_socket_connect_fail(void *ioc) "Socket connect fail ioc=%p"
qio_channel_socket_connect_complete(void *ioc, int fd) "Socket connect complete ioc=%p fd=%d"
qio_channel_socket_listen_sync(void *ioc, void *addr, int num) "Socket listen sync ioc=%p addr=%p num=%d"
qio_channel_socket_listen_async(void *ioc, void *addr, int num) "Socket listen async ioc=%p addr=%p num=%d"
qio_channel_socket_listen_fail(void *ioc) "Socket listen fail ioc=%p"
qio_channel_socket_listen_complete(void *ioc, int fd) "Socket listen complete ioc=%p fd=%d"
qio_channel_socket_dgram_sync(void *ioc, void *localAddr, void *remoteAddr) "Socket dgram sync ioc=%p localAddr=%p remoteAddr=%p"
qio_channel_socket_dgram_async(void *ioc, void *localAddr, void *remoteAddr) "Socket dgram async ioc=%p localAddr=%p remoteAddr=%p"
qio_channel_socket_dgram_fail(void *ioc) "Socket dgram fail ioc=%p"
qio_channel_socket_dgram_complete(void *ioc, int fd) "Socket dgram complete ioc=%p fd=%d"
qio_channel_socket_accept(void *ioc) "Socket accept start ioc=%p"
qio_channel_socket_accept_fail(void *ioc) "Socket accept fail ioc=%p"
qio_channel_socket_accept_complete(void *ioc, void *cioc, int fd) "Socket accept complete ioc=%p cioc=%p fd=%d"

# channel-file.c
qio_channel_file_new_fd(void *ioc, int fd) "File new fd ioc=%p fd=%d"
qio_channel_file_new_path(void *ioc, const char *path, int flags, int mode, int fd) "File new fd ioc=%p path=%s flags=%d mode=%d fd=%d"

# channel-tls.c
qio_channel_tls_new_client(void *ioc, void *master, void *creds, const char *hostname) "TLS new client ioc=%p master=%p creds=%p hostname=%s"
qio_channel_tls_new_server(void *ioc, void *master, void *creds, const char *aclname) "TLS new client ioc=%p master=%p creds=%p acltname=%s"
qio_channel_tls_handshake_start(void *ioc) "TLS handshake start ioc=%p"
qio_channel_tls_handshake_pending(void *ioc, int status) "TLS handshake pending ioc=%p status=%d"
qio_channel_tls_handshake_fail(void *ioc) "TLS handshake fail ioc=%p"
qio_channel_tls_handshake_complete(void *ioc) "TLS handshake complete ioc=%p"
qio_channel_tls_handshake_cancel(void *ioc) "TLS handshake cancel ioc=%p"
qio_channel_tls_bye_start(void *ioc) "TLS termination start ioc=%p"
qio_channel_tls_bye_pending(void *ioc, int status) "TLS termination pending ioc=%p status=%d"
qio_channel_tls_bye_fail(void *ioc) "TLS termination fail ioc=%p"
qio_channel_tls_bye_complete(void *ioc) "TLS termination complete ioc=%p"
qio_channel_tls_bye_cancel(void *ioc) "TLS termination cancel ioc=%p"
qio_channel_tls_credentials_allow(void *ioc) "TLS credentials allow ioc=%p"
qio_channel_tls_credentials_deny(void *ioc) "TLS credentials deny ioc=%p"

# channel-websock.c
qio_channel_websock_new_server(void *ioc, void *master) "Websock new client ioc=%p master=%p"
qio_channel_websock_handshake_start(void *ioc) "Websock handshake start ioc=%p"
qio_channel_websock_handshake_pending(void *ioc, int status) "Websock handshake pending ioc=%p status=%d"
qio_channel_websock_handshake_reply(void *ioc) "Websock handshake reply ioc=%p"
qio_channel_websock_handshake_fail(void *ioc, const char *msg) "Websock handshake fail ioc=%p err=%s"
qio_channel_websock_handshake_complete(void *ioc) "Websock handshake complete ioc=%p"
qio_channel_websock_http_greeting(void *ioc, const char *greeting) "Websocket HTTP request ioc=%p greeting='%s'"
qio_channel_websock_http_request(void *ioc, const char *protocols, const char *version, const char *host, const char *connection, const char *upgrade, const char *key) "Websocket HTTP request ioc=%p protocols='%s' version='%s' host='%s' connection='%s' upgrade='%s' key='%s'"
qio_channel_websock_header_partial_decode(void *ioc, size_t payloadlen, unsigned char fin, unsigned char opcode, unsigned char has_mask) "Websocket header decoded ioc=%p payload-len=%zu fin=0x%x opcode=0x%x has_mask=0x%x"
qio_channel_websock_header_full_decode(void *ioc, size_t headerlen, size_t payloadlen, uint32_t mask) "Websocket header decoded ioc=%p header-len=%zu payload-len=%zu mask=0x%x"
qio_channel_websock_payload_decode(void *ioc, uint8_t opcode, size_t payload_remain) "Websocket header decoded ioc=%p opcode=0x%x payload-remain=%zu"
qio_channel_websock_encode(void *ioc, uint8_t opcode, size_t payloadlen, size_t headerlen) "Websocket encoded ioc=%p opcode=0x%x header-len=%zu payload-len=%zu"
qio_channel_websock_close(void *ioc) "Websocket close ioc=%p"

# channel-command.c
qio_channel_command_new_pid(void *ioc, int writefd, int readfd, int pid) "Command new pid ioc=%p writefd=%d readfd=%d pid=%d"
qio_channel_command_new_spawn(void *ioc, const char *binary, int flags) "Command new spawn ioc=%p binary=%s flags=%d"
qio_channel_command_abort(void *ioc, int pid) "Command abort ioc=%p pid=%d"
qio_channel_command_wait(void *ioc, int pid, int ret, int status) "Command abort ioc=%p pid=%d ret=%d status=%d"
# See docs/devel/tracing.rst for syntax documentation.

# client.c
nbd_send_option_request(uint32_t opt, const char *name, uint32_t len) "Sending option request %" PRIu32" (%s), len %" PRIu32
nbd_receive_option_reply(uint32_t option, const char *optname, uint32_t type, const char *typename, uint32_t length) "Received option reply %" PRIu32" (%s), type %" PRIu32" (%s), len %" PRIu32
nbd_server_error_msg(uint32_t err, const char *type, const char *msg) "server reported error 0x%" PRIx32 " (%s) with additional message: %s"
nbd_reply_err_ignored(uint32_t option, const char *name, uint32_t reply, const char *reply_name) "server failed request %" PRIu32 " (%s) with error 0x%" PRIx32 " (%s), attempting fallback"
nbd_receive_list(const char *name, const char *desc) "export list includes '%s', description '%s'"
nbd_opt_info_go_start(const char *opt, const char *name) "Attempting %s for export '%s'"
nbd_opt_info_go_success(const char *opt) "Export is ready after %s request"
nbd_opt_info_unknown(int info, const char *name) "Ignoring unknown info %d (%s)"
nbd_opt_info_block_size(uint32_t minimum, uint32_t preferred, uint32_t maximum) "Block sizes are 0x%" PRIx32 ", 0x%" PRIx32 ", 0x%" PRIx32
nbd_receive_query_exports_start(const char *wantname) "Querying export list for '%s'"
nbd_receive_query_exports_success(const char *wantname) "Found desired export name '%s'"
nbd_receive_starttls_new_client(void) "Setting up TLS"
nbd_receive_starttls_tls_handshake(void) "Starting TLS handshake"
nbd_opt_meta_request(const char *optname, const char *context, const char *export) "Requesting %s %s for export %s"
nbd_opt_meta_reply(const char *optname, const char *context, uint32_t id) "Received %s mapping of %s to id %" PRIu32
nbd_start_negotiate(void *tlscreds, const char *hostname) "Receiving negotiation tlscreds=%p hostname=%s"
nbd_receive_negotiate_magic(uint64_t magic) "Magic is 0x%" PRIx64
nbd_receive_negotiate_server_flags(uint32_t globalflags) "Global flags are 0x%" PRIx32
nbd_receive_negotiate_name(const char *name) "Requesting NBD export name '%s'"
nbd_receive_negotiate_size_flags(uint64_t size, uint16_t flags) "Size is %" PRIu64 ", export flags 0x%" PRIx16
nbd_init_set_socket(void) "Setting NBD socket"
nbd_init_set_block_size(unsigned long block_size) "Setting block size to %lu"
nbd_init_set_size(unsigned long sectors) "Setting size to %lu block(s)"
nbd_init_trailing_bytes(int ignored_bytes) "Ignoring trailing %d bytes of export"
nbd_init_set_readonly(void) "Setting readonly attribute"
nbd_init_finish(void) "Negotiation ended"
nbd_client_loop(void) "Doing NBD loop"
nbd_client_loop_ret(int ret, const char *error) "NBD loop returned %d: %s"
nbd_client_clear_queue(void) "Clearing NBD queue"
nbd_client_clear_socket(void) "Clearing NBD socket"
nbd_send_request(uint64_t from, uint64_t len, uint64_t cookie, uint16_t flags, uint16_t type, const char *name) "Sending request to server: { .from = %" PRIu64", .len = %" PRIu64 ", .cookie = %" PRIu64 ", .flags = 0x%" PRIx16 ", .type = %" PRIu16 " (%s) }"
nbd_receive_simple_reply(int32_t error, const char *errname, uint64_t cookie) "Got simple reply: { .error = %" PRId32 " (%s), cookie = %" PRIu64" }"
nbd_receive_reply_chunk_header(uint16_t flags, uint16_t type, const char *name, uint64_t cookie, uint32_t length) "Got reply chunk header: { flags = 0x%" PRIx16 ", type = %" PRIu16 " (%s), cookie = %" PRIu64 ", length = %" PRIu32 " }"
nbd_receive_wrong_header(uint32_t magic, const char *mode) "Server sent unexpected magic 0x%" PRIx32 " for negotiated mode %s"

# common.c
nbd_unknown_error(int err) "Squashing unexpected error %d to EINVAL"

# server.c
nbd_negotiate_send_rep_len(uint32_t opt, const char *optname, uint32_t type, const char *typename, uint32_t len) "Reply opt=%" PRIu32 " (%s), type=%" PRIu32 " (%s), len=%" PRIu32
nbd_negotiate_send_rep_err(const char *msg) "sending error message \"%s\""
nbd_negotiate_send_rep_list(const char *name, const char *desc) "Advertising export name '%s' description '%s'"
nbd_negotiate_handle_export_name(void) "Checking length"
nbd_negotiate_handle_export_name_request(const char *name) "Client requested export '%s'"
nbd_negotiate_send_info(int info, const char *name, uint32_t length) "Sending NBD_REP_INFO type %d (%s) with remaining length %" PRIu32
nbd_negotiate_handle_info_requests(int requests) "Client requested %d items of info"
nbd_negotiate_handle_info_request(int request, const char *name) "Client requested info %d (%s)"
nbd_negotiate_handle_info_block_size(uint32_t minimum, uint32_t preferred, uint32_t maximum) "advertising minimum 0x%" PRIx32 ", preferred 0x%" PRIx32 ", maximum 0x%" PRIx32
nbd_negotiate_handle_starttls(void) "Setting up TLS"
nbd_negotiate_handle_starttls_handshake(void) "Starting TLS handshake"
nbd_negotiate_meta_context(const char *optname, const char *export, uint32_t queries) "Client requested %s for export %s, with %" PRIu32 " queries"
nbd_negotiate_meta_query_skip(const char *reason) "Skipping meta query: %s"
nbd_negotiate_meta_query_parse(const char *query) "Parsed meta query '%s'"
nbd_negotiate_meta_query_reply(const char *context, uint32_t id) "Replying with meta context '%s' id %" PRIu32
nbd_negotiate_options_flags(uint32_t flags) "Received client flags 0x%" PRIx32
nbd_negotiate_options_check_magic(uint64_t magic) "Checking opts magic 0x%" PRIx64
nbd_negotiate_options_check_option(uint32_t option, const char *name) "Checking option %" PRIu32 " (%s)"
nbd_negotiate_begin(void) "Beginning negotiation"
nbd_negotiate_new_style_size_flags(uint64_t size, unsigned flags) "advertising size %" PRIu64 " and flags 0x%x"
nbd_negotiate_success(void) "Negotiation succeeded"
nbd_receive_request(uint32_t magic, uint16_t flags, uint16_t type, uint64_t from, uint64_t len) "Got request: { magic = 0x%" PRIx32 ", .flags = 0x%" PRIx16 ", .type = 0x%" PRIx16 ", from = %" PRIu64 ", len = %" PRIu64 " }"
nbd_blk_aio_attached(const char *name, void *ctx) "Export %s: Attaching clients to AIO context %p"
nbd_blk_aio_detach(const char *name, void *ctx) "Export %s: Detaching clients from AIO context %p"
nbd_co_send_simple_reply(uint64_t cookie, uint32_t error, const char *errname, uint64_t len) "Send simple reply: cookie = %" PRIu64 ", error = %" PRIu32 " (%s), len = %" PRIu64
nbd_co_send_chunk_done(uint64_t cookie) "Send structured reply done: cookie = %" PRIu64
nbd_co_send_chunk_read(uint64_t cookie, uint64_t offset, void *data, uint64_t size) "Send structured read data reply: cookie = %" PRIu64 ", offset = %" PRIu64 ", data = %p, len = %" PRIu64
nbd_co_send_chunk_read_hole(uint64_t cookie, uint64_t offset, uint64_t size) "Send structured read hole reply: cookie = %" PRIu64 ", offset = %" PRIu64 ", len = %" PRIu64
nbd_co_send_extents(uint64_t cookie, unsigned int extents, uint32_t id, uint64_t length, int last) "Send block status reply: cookie = %" PRIu64 ", extents = %u, context = %d (extents cover %" PRIu64 " bytes, last chunk = %d)"
nbd_co_send_chunk_error(uint64_t cookie, int err, const char *errname, const char *msg) "Send structured error reply: cookie = %" PRIu64 ", error = %d (%s), msg = '%s'"
nbd_co_receive_block_status_payload_compliance(uint64_t from, uint64_t len) "client sent unusable block status payload: from=0x%" PRIx64 ", len=0x%" PRIx64
nbd_co_receive_request_decode_type(uint64_t cookie, uint16_t type, const char *name) "Decoding type: cookie = %" PRIu64 ", type = %" PRIu16 " (%s)"
nbd_co_receive_request_payload_received(uint64_t cookie, uint64_t len) "Payload received: cookie = %" PRIu64 ", len = %" PRIu64
nbd_co_receive_ext_payload_compliance(uint64_t from, uint64_t len) "client sent non-compliant write without payload flag: from=0x%" PRIx64 ", len=0x%" PRIx64
nbd_co_receive_align_compliance(const char *op, uint64_t from, uint64_t len, uint32_t align) "client sent non-compliant unaligned %s request: from=0x%" PRIx64 ", len=0x%" PRIx64 ", align=0x%" PRIx32
nbd_trip(void) "Reading request"
nbd_handshake_timer_cb(void) "client took too long to negotiate"

# client-connection.c
nbd_connect_thread_sleep(uint64_t timeout) "timeout %" PRIu64
# See docs/devel/tracing.rst for syntax documentation.

# pr-manager.c
pr_manager_execute(int fd, int cmd, int sa) "fd=%d cmd=0x%02x service action=0x%02x"
pr_manager_run(int fd, int cmd, int sa) "fd=%d cmd=0x%02x service action=0x%02x"
# AUTOMATICALLY GENERATED by qapi-gen.py, DO NOT MODIFY

# AUTOMATICALLY GENERATED by qapi-gen.py, DO NOT MODIFY

qmp_enter_query_pr_managers(const char *json) "%s"
qmp_exit_query_pr_managers(const char *result, bool succeeded) "%s %d"
qmp_enter_eject(const char *json) "%s"
qmp_exit_eject(const char *result, bool succeeded) "%s %d"
qmp_enter_blockdev_open_tray(const char *json) "%s"
qmp_exit_blockdev_open_tray(const char *result, bool succeeded) "%s %d"
qmp_enter_blockdev_close_tray(const char *json) "%s"
qmp_exit_blockdev_close_tray(const char *result, bool succeeded) "%s %d"
qmp_enter_blockdev_remove_medium(const char *json) "%s"
qmp_exit_blockdev_remove_medium(const char *result, bool succeeded) "%s %d"
qmp_enter_blockdev_insert_medium(const char *json) "%s"
qmp_exit_blockdev_insert_medium(const char *result, bool succeeded) "%s %d"
qmp_enter_blockdev_change_medium(const char *json) "%s"
qmp_exit_blockdev_change_medium(const char *result, bool succeeded) "%s %d"
qmp_enter_block_set_io_throttle(const char *json) "%s"
qmp_exit_block_set_io_throttle(const char *result, bool succeeded) "%s %d"
qmp_enter_block_latency_histogram_set(const char *json) "%s"
qmp_exit_block_latency_histogram_set(const char *result, bool succeeded) "%s %d"
# AUTOMATICALLY GENERATED by qapi-gen.py, DO NOT MODIFY

qmp_enter_query_block(const char *json) "%s"
qmp_exit_query_block(const char *result, bool succeeded) "%s %d"
qmp_enter_query_blockstats(const char *json) "%s"
qmp_exit_query_blockstats(const char *result, bool succeeded) "%s %d"
qmp_enter_query_block_jobs(const char *json) "%s"
qmp_exit_query_block_jobs(const char *result, bool succeeded) "%s %d"
qmp_enter_block_resize(const char *json) "%s"
qmp_exit_block_resize(const char *result, bool succeeded) "%s %d"
qmp_enter_blockdev_snapshot_sync(const char *json) "%s"
qmp_exit_blockdev_snapshot_sync(const char *result, bool succeeded) "%s %d"
qmp_enter_blockdev_snapshot(const char *json) "%s"
qmp_exit_blockdev_snapshot(const char *result, bool succeeded) "%s %d"
qmp_enter_change_backing_file(const char *json) "%s"
qmp_exit_change_backing_file(const char *result, bool succeeded) "%s %d"
qmp_enter_block_commit(const char *json) "%s"
qmp_exit_block_commit(const char *result, bool succeeded) "%s %d"
qmp_enter_drive_backup(const char *json) "%s"
qmp_exit_drive_backup(const char *result, bool succeeded) "%s %d"
qmp_enter_blockdev_backup(const char *json) "%s"
qmp_exit_blockdev_backup(const char *result, bool succeeded) "%s %d"
qmp_enter_query_named_block_nodes(const char *json) "%s"
qmp_exit_query_named_block_nodes(const char *result, bool succeeded) "%s %d"
qmp_enter_x_debug_query_block_graph(const char *json) "%s"
qmp_exit_x_debug_query_block_graph(const char *result, bool succeeded) "%s %d"
qmp_enter_drive_mirror(const char *json) "%s"
qmp_exit_drive_mirror(const char *result, bool succeeded) "%s %d"
qmp_enter_block_dirty_bitmap_add(const char *json) "%s"
qmp_exit_block_dirty_bitmap_add(const char *result, bool succeeded) "%s %d"
qmp_enter_block_dirty_bitmap_remove(const char *json) "%s"
qmp_exit_block_dirty_bitmap_remove(const char *result, bool succeeded) "%s %d"
qmp_enter_block_dirty_bitmap_clear(const char *json) "%s"
qmp_exit_block_dirty_bitmap_clear(const char *result, bool succeeded) "%s %d"
qmp_enter_block_dirty_bitmap_enable(const char *json) "%s"
qmp_exit_block_dirty_bitmap_enable(const char *result, bool succeeded) "%s %d"
qmp_enter_block_dirty_bitmap_disable(const char *json) "%s"
qmp_exit_block_dirty_bitmap_disable(const char *result, bool succeeded) "%s %d"
qmp_enter_block_dirty_bitmap_merge(const char *json) "%s"
qmp_exit_block_dirty_bitmap_merge(const char *result, bool succeeded) "%s %d"
qmp_enter_x_debug_block_dirty_bitmap_sha256(const char *json) "%s"
qmp_exit_x_debug_block_dirty_bitmap_sha256(const char *result, bool succeeded) "%s %d"
qmp_enter_blockdev_mirror(const char *json) "%s"
qmp_exit_blockdev_mirror(const char *result, bool succeeded) "%s %d"
qmp_enter_block_stream(const char *json) "%s"
qmp_exit_block_stream(const char *result, bool succeeded) "%s %d"
qmp_enter_block_job_set_speed(const char *json) "%s"
qmp_exit_block_job_set_speed(const char *result, bool succeeded) "%s %d"
qmp_enter_block_job_cancel(const char *json) "%s"
qmp_exit_block_job_cancel(const char *result, bool succeeded) "%s %d"
qmp_enter_block_job_pause(const char *json) "%s"
qmp_exit_block_job_pause(const char *result, bool succeeded) "%s %d"
qmp_enter_block_job_resume(const char *json) "%s"
qmp_exit_block_job_resume(const char *result, bool succeeded) "%s %d"
qmp_enter_block_job_complete(const char *json) "%s"
qmp_exit_block_job_complete(const char *result, bool succeeded) "%s %d"
qmp_enter_block_job_dismiss(const char *json) "%s"
qmp_exit_block_job_dismiss(const char *result, bool succeeded) "%s %d"
qmp_enter_block_job_finalize(const char *json) "%s"
qmp_exit_block_job_finalize(const char *result, bool succeeded) "%s %d"
qmp_enter_block_job_change(const char *json) "%s"
qmp_exit_block_job_change(const char *result, bool succeeded) "%s %d"
qmp_enter_blockdev_add(const char *json) "%s"
qmp_exit_blockdev_add(const char *result, bool succeeded) "%s %d"
qmp_enter_blockdev_reopen(const char *json) "%s"
qmp_exit_blockdev_reopen(const char *result, bool succeeded) "%s %d"
qmp_enter_blockdev_del(const char *json) "%s"
qmp_exit_blockdev_del(const char *result, bool succeeded) "%s %d"
qmp_enter_blockdev_set_active(const char *json) "%s"
qmp_exit_blockdev_set_active(const char *result, bool succeeded) "%s %d"
qmp_enter_blockdev_create(const char *json) "%s"
qmp_exit_blockdev_create(const char *result, bool succeeded) "%s %d"
qmp_enter_x_blockdev_amend(const char *json) "%s"
qmp_exit_x_blockdev_amend(const char *result, bool succeeded) "%s %d"
qmp_enter_block_set_write_threshold(const char *json) "%s"
qmp_exit_block_set_write_threshold(const char *result, bool succeeded) "%s %d"
qmp_enter_x_blockdev_change(const char *json) "%s"
qmp_exit_x_blockdev_change(const char *result, bool succeeded) "%s %d"
qmp_enter_x_blockdev_set_iothread(const char *json) "%s"
qmp_exit_x_blockdev_set_iothread(const char *result, bool succeeded) "%s %d"
qmp_enter_blockdev_snapshot_internal_sync(const char *json) "%s"
qmp_exit_blockdev_snapshot_internal_sync(const char *result, bool succeeded) "%s %d"
qmp_enter_blockdev_snapshot_delete_internal_sync(const char *json) "%s"
qmp_exit_blockdev_snapshot_delete_internal_sync(const char *result, bool succeeded) "%s %d"
# AUTOMATICALLY GENERATED by qapi-gen.py, DO NOT MODIFY

qmp_enter_nbd_server_start(const char *json) "%s"
qmp_exit_nbd_server_start(const char *result, bool succeeded) "%s %d"
qmp_enter_nbd_server_add(const char *json) "%s"
qmp_exit_nbd_server_add(const char *result, bool succeeded) "%s %d"
qmp_enter_nbd_server_remove(const char *json) "%s"
qmp_exit_nbd_server_remove(const char *result, bool succeeded) "%s %d"
qmp_enter_nbd_server_stop(const char *json) "%s"
qmp_exit_nbd_server_stop(const char *result, bool succeeded) "%s %d"
qmp_enter_block_export_add(const char *json) "%s"
qmp_exit_block_export_add(const char *result, bool succeeded) "%s %d"
qmp_enter_block_export_del(const char *json) "%s"
qmp_exit_block_export_del(const char *result, bool succeeded) "%s %d"
qmp_enter_query_block_exports(const char *json) "%s"
qmp_exit_query_block_exports(const char *result, bool succeeded) "%s %d"
# AUTOMATICALLY GENERATED by qapi-gen.py, DO NOT MODIFY

qmp_enter_query_chardev(const char *json) "%s"
qmp_exit_query_chardev(const char *result, bool succeeded) "%s %d"
qmp_enter_query_chardev_backends(const char *json) "%s"
qmp_exit_query_chardev_backends(const char *result, bool succeeded) "%s %d"
qmp_enter_ringbuf_write(const char *json) "%s"
qmp_exit_ringbuf_write(const char *result, bool succeeded) "%s %d"
qmp_enter_ringbuf_read(const char *json) "%s"
qmp_exit_ringbuf_read(const char *result, bool succeeded) "%s %d"
qmp_enter_chardev_add(const char *json) "%s"
qmp_exit_chardev_add(const char *result, bool succeeded) "%s %d"
qmp_enter_chardev_change(const char *json) "%s"
qmp_exit_chardev_change(const char *result, bool succeeded) "%s %d"
qmp_enter_chardev_remove(const char *json) "%s"
qmp_exit_chardev_remove(const char *result, bool succeeded) "%s %d"
qmp_enter_chardev_send_break(const char *json) "%s"
qmp_exit_chardev_send_break(const char *result, bool succeeded) "%s %d"
# AUTOMATICALLY GENERATED by qapi-gen.py, DO NOT MODIFY

# AUTOMATICALLY GENERATED by qapi-gen.py, DO NOT MODIFY

# AUTOMATICALLY GENERATED by qapi-gen.py, DO NOT MODIFY

qmp_enter_qmp_capabilities(const char *json) "%s"
qmp_exit_qmp_capabilities(const char *result, bool succeeded) "%s %d"
qmp_enter_query_version(const char *json) "%s"
qmp_exit_query_version(const char *result, bool succeeded) "%s %d"
qmp_enter_query_commands(const char *json) "%s"
qmp_exit_query_commands(const char *result, bool succeeded) "%s %d"
qmp_enter_quit(const char *json) "%s"
qmp_exit_quit(const char *result, bool succeeded) "%s %d"
# AUTOMATICALLY GENERATED by qapi-gen.py, DO NOT MODIFY

# AUTOMATICALLY GENERATED by qapi-gen.py, DO NOT MODIFY

qmp_enter_cxl_inject_general_media_event(const char *json) "%s"
qmp_exit_cxl_inject_general_media_event(const char *result, bool succeeded) "%s %d"
qmp_enter_cxl_inject_dram_event(const char *json) "%s"
qmp_exit_cxl_inject_dram_event(const char *result, bool succeeded) "%s %d"
qmp_enter_cxl_inject_memory_module_event(const char *json) "%s"
qmp_exit_cxl_inject_memory_module_event(const char *result, bool succeeded) "%s %d"
qmp_enter_cxl_inject_poison(const char *json) "%s"
qmp_exit_cxl_inject_poison(const char *result, bool succeeded) "%s %d"
qmp_enter_cxl_inject_uncorrectable_errors(const char *json) "%s"
qmp_exit_cxl_inject_uncorrectable_errors(const char *result, bool succeeded) "%s %d"
qmp_enter_cxl_inject_correctable_error(const char *json) "%s"
qmp_exit_cxl_inject_correctable_error(const char *result, bool succeeded) "%s %d"
qmp_enter_cxl_add_dynamic_capacity(const char *json) "%s"
qmp_exit_cxl_add_dynamic_capacity(const char *result, bool succeeded) "%s %d"
qmp_enter_cxl_release_dynamic_capacity(const char *json) "%s"
qmp_exit_cxl_release_dynamic_capacity(const char *result, bool succeeded) "%s %d"
# AUTOMATICALLY GENERATED by qapi-gen.py, DO NOT MODIFY

qmp_enter_dump_guest_memory(const char *json) "%s"
qmp_exit_dump_guest_memory(const char *result, bool succeeded) "%s %d"
qmp_enter_query_dump(const char *json) "%s"
qmp_exit_query_dump(const char *result, bool succeeded) "%s %d"
qmp_enter_query_dump_guest_memory_capability(const char *json) "%s"
qmp_exit_query_dump_guest_memory_capability(const char *result, bool succeeded) "%s %d"
# AUTOMATICALLY GENERATED by qapi-gen.py, DO NOT MODIFY

qmp_enter_request_ebpf(const char *json) "%s"
qmp_exit_request_ebpf(const char *result, bool succeeded) "%s %d"
# AUTOMATICALLY GENERATED by qapi-gen.py, DO NOT MODIFY

# AUTOMATICALLY GENERATED by qapi-gen.py, DO NOT MODIFY

qmp_enter_query_qmp_schema(const char *json) "%s"
qmp_exit_query_qmp_schema(const char *result, bool succeeded) "%s %d"
# AUTOMATICALLY GENERATED by qapi-gen.py, DO NOT MODIFY

qmp_enter_job_pause(const char *json) "%s"
qmp_exit_job_pause(const char *result, bool succeeded) "%s %d"
qmp_enter_job_resume(const char *json) "%s"
qmp_exit_job_resume(const char *result, bool succeeded) "%s %d"
qmp_enter_job_cancel(const char *json) "%s"
qmp_exit_job_cancel(const char *result, bool succeeded) "%s %d"
qmp_enter_job_complete(const char *json) "%s"
qmp_exit_job_complete(const char *result, bool succeeded) "%s %d"
qmp_enter_job_dismiss(const char *json) "%s"
qmp_exit_job_dismiss(const char *result, bool succeeded) "%s %d"
qmp_enter_job_finalize(const char *json) "%s"
qmp_exit_job_finalize(const char *result, bool succeeded) "%s %d"
qmp_enter_query_jobs(const char *json) "%s"
qmp_exit_query_jobs(const char *result, bool succeeded) "%s %d"
# AUTOMATICALLY GENERATED by qapi-gen.py, DO NOT MODIFY

# AUTOMATICALLY GENERATED by qapi-gen.py, DO NOT MODIFY

qmp_enter_query_cpus_fast(const char *json) "%s"
qmp_exit_query_cpus_fast(const char *result, bool succeeded) "%s %d"
qmp_enter_query_machines(const char *json) "%s"
qmp_exit_query_machines(const char *result, bool succeeded) "%s %d"
qmp_enter_query_current_machine(const char *json) "%s"
qmp_exit_query_current_machine(const char *result, bool succeeded) "%s %d"
qmp_enter_query_target(const char *json) "%s"
qmp_exit_query_target(const char *result, bool succeeded) "%s %d"
qmp_enter_query_uuid(const char *json) "%s"
qmp_exit_query_uuid(const char *result, bool succeeded) "%s %d"
qmp_enter_query_vm_generation_id(const char *json) "%s"
qmp_exit_query_vm_generation_id(const char *result, bool succeeded) "%s %d"
qmp_enter_system_reset(const char *json) "%s"
qmp_exit_system_reset(const char *result, bool succeeded) "%s %d"
qmp_enter_system_powerdown(const char *json) "%s"
qmp_exit_system_powerdown(const char *result, bool succeeded) "%s %d"
qmp_enter_system_wakeup(const char *json) "%s"
qmp_exit_system_wakeup(const char *result, bool succeeded) "%s %d"
qmp_enter_inject_nmi(const char *json) "%s"
qmp_exit_inject_nmi(const char *result, bool succeeded) "%s %d"
qmp_enter_query_kvm(const char *json) "%s"
qmp_exit_query_kvm(const char *result, bool succeeded) "%s %d"
qmp_enter_memsave(const char *json) "%s"
qmp_exit_memsave(const char *result, bool succeeded) "%s %d"
qmp_enter_pmemsave(const char *json) "%s"
qmp_exit_pmemsave(const char *result, bool succeeded) "%s %d"
qmp_enter_query_memdev(const char *json) "%s"
qmp_exit_query_memdev(const char *result, bool succeeded) "%s %d"
qmp_enter_query_hotpluggable_cpus(const char *json) "%s"
qmp_exit_query_hotpluggable_cpus(const char *result, bool succeeded) "%s %d"
qmp_enter_set_numa_node(const char *json) "%s"
qmp_exit_set_numa_node(const char *result, bool succeeded) "%s %d"
qmp_enter_balloon(const char *json) "%s"
qmp_exit_balloon(const char *result, bool succeeded) "%s %d"
qmp_enter_query_balloon(const char *json) "%s"
qmp_exit_query_balloon(const char *result, bool succeeded) "%s %d"
qmp_enter_query_hv_balloon_status_report(const char *json) "%s"
qmp_exit_query_hv_balloon_status_report(const char *result, bool succeeded) "%s %d"
qmp_enter_query_memory_size_summary(const char *json) "%s"
qmp_exit_query_memory_size_summary(const char *result, bool succeeded) "%s %d"
qmp_enter_query_memory_devices(const char *json) "%s"
qmp_exit_query_memory_devices(const char *result, bool succeeded) "%s %d"
qmp_enter_x_query_irq(const char *json) "%s"
qmp_exit_x_query_irq(const char *result, bool succeeded) "%s %d"
qmp_enter_x_query_jit(const char *json) "%s"
qmp_exit_x_query_jit(const char *result, bool succeeded) "%s %d"
qmp_enter_x_query_numa(const char *json) "%s"
qmp_exit_x_query_numa(const char *result, bool succeeded) "%s %d"
qmp_enter_x_query_opcount(const char *json) "%s"
qmp_exit_x_query_opcount(const char *result, bool succeeded) "%s %d"
qmp_enter_x_query_ramblock(const char *json) "%s"
qmp_exit_x_query_ramblock(const char *result, bool succeeded) "%s %d"
qmp_enter_x_query_roms(const char *json) "%s"
qmp_exit_x_query_roms(const char *result, bool succeeded) "%s %d"
qmp_enter_x_query_usb(const char *json) "%s"
qmp_exit_x_query_usb(const char *result, bool succeeded) "%s %d"
qmp_enter_dumpdtb(const char *json) "%s"
qmp_exit_dumpdtb(const char *result, bool succeeded) "%s %d"
qmp_enter_x_query_interrupt_controllers(const char *json) "%s"
qmp_exit_x_query_interrupt_controllers(const char *result, bool succeeded) "%s %d"
# AUTOMATICALLY GENERATED by qapi-gen.py, DO NOT MODIFY

qmp_enter_query_migrate(const char *json) "%s"
qmp_exit_query_migrate(const char *result, bool succeeded) "%s %d"
qmp_enter_migrate_set_capabilities(const char *json) "%s"
qmp_exit_migrate_set_capabilities(const char *result, bool succeeded) "%s %d"
qmp_enter_query_migrate_capabilities(const char *json) "%s"
qmp_exit_query_migrate_capabilities(const char *result, bool succeeded) "%s %d"
qmp_enter_migrate_set_parameters(const char *json) "%s"
qmp_exit_migrate_set_parameters(const char *result, bool succeeded) "%s %d"
qmp_enter_query_migrate_parameters(const char *json) "%s"
qmp_exit_query_migrate_parameters(const char *result, bool succeeded) "%s %d"
qmp_enter_migrate_start_postcopy(const char *json) "%s"
qmp_exit_migrate_start_postcopy(const char *result, bool succeeded) "%s %d"
qmp_enter_x_colo_lost_heartbeat(const char *json) "%s"
qmp_exit_x_colo_lost_heartbeat(const char *result, bool succeeded) "%s %d"
qmp_enter_migrate_cancel(const char *json) "%s"
qmp_exit_migrate_cancel(const char *result, bool succeeded) "%s %d"
qmp_enter_migrate_continue(const char *json) "%s"
qmp_exit_migrate_continue(const char *result, bool succeeded) "%s %d"
qmp_enter_migrate(const char *json) "%s"
qmp_exit_migrate(const char *result, bool succeeded) "%s %d"
qmp_enter_migrate_incoming(const char *json) "%s"
qmp_exit_migrate_incoming(const char *result, bool succeeded) "%s %d"
qmp_enter_xen_save_devices_state(const char *json) "%s"
qmp_exit_xen_save_devices_state(const char *result, bool succeeded) "%s %d"
qmp_enter_xen_set_global_dirty_log(const char *json) "%s"
qmp_exit_xen_set_global_dirty_log(const char *result, bool succeeded) "%s %d"
qmp_enter_xen_load_devices_state(const char *json) "%s"
qmp_exit_xen_load_devices_state(const char *result, bool succeeded) "%s %d"
qmp_enter_xen_set_replication(const char *json) "%s"
qmp_exit_xen_set_replication(const char *result, bool succeeded) "%s %d"
qmp_enter_query_xen_replication_status(const char *json) "%s"
qmp_exit_query_xen_replication_status(const char *result, bool succeeded) "%s %d"
qmp_enter_xen_colo_do_checkpoint(const char *json) "%s"
qmp_exit_xen_colo_do_checkpoint(const char *result, bool succeeded) "%s %d"
qmp_enter_query_colo_status(const char *json) "%s"
qmp_exit_query_colo_status(const char *result, bool succeeded) "%s %d"
qmp_enter_migrate_recover(const char *json) "%s"
qmp_exit_migrate_recover(const char *result, bool succeeded) "%s %d"
qmp_enter_migrate_pause(const char *json) "%s"
qmp_exit_migrate_pause(const char *result, bool succeeded) "%s %d"
qmp_enter_calc_dirty_rate(const char *json) "%s"
qmp_exit_calc_dirty_rate(const char *result, bool succeeded) "%s %d"
qmp_enter_query_dirty_rate(const char *json) "%s"
qmp_exit_query_dirty_rate(const char *result, bool succeeded) "%s %d"
qmp_enter_set_vcpu_dirty_limit(const char *json) "%s"
qmp_exit_set_vcpu_dirty_limit(const char *result, bool succeeded) "%s %d"
qmp_enter_cancel_vcpu_dirty_limit(const char *json) "%s"
qmp_exit_cancel_vcpu_dirty_limit(const char *result, bool succeeded) "%s %d"
qmp_enter_query_vcpu_dirty_limit(const char *json) "%s"
qmp_exit_query_vcpu_dirty_limit(const char *result, bool succeeded) "%s %d"
qmp_enter_query_migrationthreads(const char *json) "%s"
qmp_exit_query_migrationthreads(const char *result, bool succeeded) "%s %d"
qmp_enter_snapshot_save(const char *json) "%s"
qmp_exit_snapshot_save(const char *result, bool succeeded) "%s %d"
qmp_enter_snapshot_load(const char *json) "%s"
qmp_exit_snapshot_load(const char *result, bool succeeded) "%s %d"
qmp_enter_snapshot_delete(const char *json) "%s"
qmp_exit_snapshot_delete(const char *result, bool succeeded) "%s %d"
# AUTOMATICALLY GENERATED by qapi-gen.py, DO NOT MODIFY

qmp_enter_add_client(const char *json) "%s"
qmp_exit_add_client(const char *result, bool succeeded) "%s %d"
qmp_enter_query_name(const char *json) "%s"
qmp_exit_query_name(const char *result, bool succeeded) "%s %d"
qmp_enter_query_iothreads(const char *json) "%s"
qmp_exit_query_iothreads(const char *result, bool succeeded) "%s %d"
qmp_enter_stop(const char *json) "%s"
qmp_exit_stop(const char *result, bool succeeded) "%s %d"
qmp_enter_cont(const char *json) "%s"
qmp_exit_cont(const char *result, bool succeeded) "%s %d"
qmp_enter_x_exit_preconfig(const char *json) "%s"
qmp_exit_x_exit_preconfig(const char *result, bool succeeded) "%s %d"
qmp_enter_human_monitor_command(const char *json) "%s"
qmp_exit_human_monitor_command(const char *result, bool succeeded) "%s %d"
qmp_enter_getfd(const char *json) "%s"
qmp_exit_getfd(const char *result, bool succeeded) "%s %d"
qmp_enter_get_win32_socket(const char *json) "%s"
qmp_exit_get_win32_socket(const char *result, bool succeeded) "%s %d"
qmp_enter_closefd(const char *json) "%s"
qmp_exit_closefd(const char *result, bool succeeded) "%s %d"
qmp_enter_add_fd(const char *json) "%s"
qmp_exit_add_fd(const char *result, bool succeeded) "%s %d"
qmp_enter_remove_fd(const char *json) "%s"
qmp_exit_remove_fd(const char *result, bool succeeded) "%s %d"
qmp_enter_query_fdsets(const char *json) "%s"
qmp_exit_query_fdsets(const char *result, bool succeeded) "%s %d"
qmp_enter_query_command_line_options(const char *json) "%s"
qmp_exit_query_command_line_options(const char *result, bool succeeded) "%s %d"
# AUTOMATICALLY GENERATED by qapi-gen.py, DO NOT MODIFY

qmp_enter_set_link(const char *json) "%s"
qmp_exit_set_link(const char *result, bool succeeded) "%s %d"
qmp_enter_netdev_add(const char *json) "%s"
qmp_exit_netdev_add(const char *result, bool succeeded) "%s %d"
qmp_enter_netdev_del(const char *json) "%s"
qmp_exit_netdev_del(const char *result, bool succeeded) "%s %d"
qmp_enter_query_rx_filter(const char *json) "%s"
qmp_exit_query_rx_filter(const char *result, bool succeeded) "%s %d"
qmp_enter_announce_self(const char *json) "%s"
qmp_exit_announce_self(const char *result, bool succeeded) "%s %d"
# AUTOMATICALLY GENERATED by qapi-gen.py, DO NOT MODIFY

# AUTOMATICALLY GENERATED by qapi-gen.py, DO NOT MODIFY

qmp_enter_qom_list(const char *json) "%s"
qmp_exit_qom_list(const char *result, bool succeeded) "%s %d"
qmp_enter_qom_get(const char *json) "%s"
qmp_exit_qom_get(const char *result, bool succeeded) "%s %d"
qmp_enter_qom_set(const char *json) "%s"
qmp_exit_qom_set(const char *result, bool succeeded) "%s %d"
qmp_enter_qom_list_types(const char *json) "%s"
qmp_exit_qom_list_types(const char *result, bool succeeded) "%s %d"
qmp_enter_qom_list_properties(const char *json) "%s"
qmp_exit_qom_list_properties(const char *result, bool succeeded) "%s %d"
qmp_enter_object_add(const char *json) "%s"
qmp_exit_object_add(const char *result, bool succeeded) "%s %d"
qmp_enter_object_del(const char *json) "%s"
qmp_exit_object_del(const char *result, bool succeeded) "%s %d"
# AUTOMATICALLY GENERATED by qapi-gen.py, DO NOT MODIFY

qmp_enter_query_replay(const char *json) "%s"
qmp_exit_query_replay(const char *result, bool succeeded) "%s %d"
qmp_enter_replay_break(const char *json) "%s"
qmp_exit_replay_break(const char *result, bool succeeded) "%s %d"
qmp_enter_replay_delete_break(const char *json) "%s"
qmp_exit_replay_delete_break(const char *result, bool succeeded) "%s %d"
qmp_enter_replay_seek(const char *json) "%s"
qmp_exit_replay_seek(const char *result, bool succeeded) "%s %d"
# AUTOMATICALLY GENERATED by qapi-gen.py, DO NOT MODIFY

qmp_enter_query_status(const char *json) "%s"
qmp_exit_query_status(const char *result, bool succeeded) "%s %d"
qmp_enter_watchdog_set_action(const char *json) "%s"
qmp_exit_watchdog_set_action(const char *result, bool succeeded) "%s %d"
qmp_enter_set_action(const char *json) "%s"
qmp_exit_set_action(const char *result, bool succeeded) "%s %d"
# AUTOMATICALLY GENERATED by qapi-gen.py, DO NOT MODIFY

# AUTOMATICALLY GENERATED by qapi-gen.py, DO NOT MODIFY

qmp_enter_query_stats(const char *json) "%s"
qmp_exit_query_stats(const char *result, bool succeeded) "%s %d"
qmp_enter_query_stats_schemas(const char *json) "%s"
qmp_exit_query_stats_schemas(const char *result, bool succeeded) "%s %d"
# AUTOMATICALLY GENERATED by qapi-gen.py, DO NOT MODIFY

qmp_enter_trace_event_get_state(const char *json) "%s"
qmp_exit_trace_event_get_state(const char *result, bool succeeded) "%s %d"
qmp_enter_trace_event_set_state(const char *json) "%s"
qmp_exit_trace_event_set_state(const char *result, bool succeeded) "%s %d"
# AUTOMATICALLY GENERATED by qapi-gen.py, DO NOT MODIFY

qmp_enter_transaction(const char *json) "%s"
qmp_exit_transaction(const char *result, bool succeeded) "%s %d"
# AUTOMATICALLY GENERATED by qapi-gen.py, DO NOT MODIFY

# AUTOMATICALLY GENERATED by qapi-gen.py, DO NOT MODIFY

qmp_enter_x_query_virtio(const char *json) "%s"
qmp_exit_x_query_virtio(const char *result, bool succeeded) "%s %d"
qmp_enter_x_query_virtio_status(const char *json) "%s"
qmp_exit_x_query_virtio_status(const char *result, bool succeeded) "%s %d"
qmp_enter_x_query_virtio_queue_status(const char *json) "%s"
qmp_exit_x_query_virtio_queue_status(const char *result, bool succeeded) "%s %d"
qmp_enter_x_query_virtio_vhost_queue_status(const char *json) "%s"
qmp_exit_x_query_virtio_vhost_queue_status(const char *result, bool succeeded) "%s %d"
qmp_enter_x_query_virtio_queue_element(const char *json) "%s"
qmp_exit_x_query_virtio_queue_element(const char *result, bool succeeded) "%s %d"
# AUTOMATICALLY GENERATED by qapi-gen.py, DO NOT MODIFY

qmp_enter_yank(const char *json) "%s"
qmp_exit_yank(const char *result, bool succeeded) "%s %d"
qmp_enter_query_yank(const char *json) "%s"
qmp_exit_query_yank(const char *result, bool succeeded) "%s %d"
# AUTOMATICALLY GENERATED by qapi-gen.py, DO NOT MODIFY

qmp_enter_set_password(const char *json) "%s"
qmp_exit_set_password(const char *result, bool succeeded) "%s %d"
qmp_enter_expire_password(const char *json) "%s"
qmp_exit_expire_password(const char *result, bool succeeded) "%s %d"
qmp_enter_screendump(const char *json) "%s"
qmp_exit_screendump(const char *result, bool succeeded) "%s %d"
qmp_enter_query_spice(const char *json) "%s"
qmp_exit_query_spice(const char *result, bool succeeded) "%s %d"
qmp_enter_query_vnc(const char *json) "%s"
qmp_exit_query_vnc(const char *result, bool succeeded) "%s %d"
qmp_enter_query_vnc_servers(const char *json) "%s"
qmp_exit_query_vnc_servers(const char *result, bool succeeded) "%s %d"
qmp_enter_change_vnc_password(const char *json) "%s"
qmp_exit_change_vnc_password(const char *result, bool succeeded) "%s %d"
qmp_enter_query_mice(const char *json) "%s"
qmp_exit_query_mice(const char *result, bool succeeded) "%s %d"
qmp_enter_send_key(const char *json) "%s"
qmp_exit_send_key(const char *result, bool succeeded) "%s %d"
qmp_enter_input_send_event(const char *json) "%s"
qmp_exit_input_send_event(const char *result, bool succeeded) "%s %d"
qmp_enter_query_display_options(const char *json) "%s"
qmp_exit_query_display_options(const char *result, bool succeeded) "%s %d"
qmp_enter_display_reload(const char *json) "%s"
qmp_exit_display_reload(const char *result, bool succeeded) "%s %d"
qmp_enter_display_update(const char *json) "%s"
qmp_exit_display_update(const char *result, bool succeeded) "%s %d"
qmp_enter_client_migrate_info(const char *json) "%s"
qmp_exit_client_migrate_info(const char *result, bool succeeded) "%s %d"
# AUTOMATICALLY GENERATED by qapi-gen.py, DO NOT MODIFY

qmp_enter_query_cpu_model_comparison(const char *json) "%s"
qmp_exit_query_cpu_model_comparison(const char *result, bool succeeded) "%s %d"
qmp_enter_query_cpu_model_baseline(const char *json) "%s"
qmp_exit_query_cpu_model_baseline(const char *result, bool succeeded) "%s %d"
qmp_enter_query_cpu_model_expansion(const char *json) "%s"
qmp_exit_query_cpu_model_expansion(const char *result, bool succeeded) "%s %d"
qmp_enter_query_cpu_definitions(const char *json) "%s"
qmp_exit_query_cpu_definitions(const char *result, bool succeeded) "%s %d"
qmp_enter_set_cpu_topology(const char *json) "%s"
qmp_exit_set_cpu_topology(const char *result, bool succeeded) "%s %d"
qmp_enter_query_s390x_cpu_polarization(const char *json) "%s"
qmp_exit_query_s390x_cpu_polarization(const char *result, bool succeeded) "%s %d"
# AUTOMATICALLY GENERATED by qapi-gen.py, DO NOT MODIFY

qmp_enter_rtc_reset_reinjection(const char *json) "%s"
qmp_exit_rtc_reset_reinjection(const char *result, bool succeeded) "%s %d"
qmp_enter_query_sev(const char *json) "%s"
qmp_exit_query_sev(const char *result, bool succeeded) "%s %d"
qmp_enter_query_sev_launch_measure(const char *json) "%s"
qmp_exit_query_sev_launch_measure(const char *result, bool succeeded) "%s %d"
qmp_enter_query_sev_capabilities(const char *json) "%s"
qmp_exit_query_sev_capabilities(const char *result, bool succeeded) "%s %d"
qmp_enter_sev_inject_launch_secret(const char *json) "%s"
qmp_exit_sev_inject_launch_secret(const char *result, bool succeeded) "%s %d"
qmp_enter_query_sev_attestation_report(const char *json) "%s"
qmp_exit_query_sev_attestation_report(const char *result, bool succeeded) "%s %d"
qmp_enter_dump_skeys(const char *json) "%s"
qmp_exit_dump_skeys(const char *result, bool succeeded) "%s %d"
qmp_enter_query_gic_capabilities(const char *json) "%s"
qmp_exit_query_gic_capabilities(const char *result, bool succeeded) "%s %d"
qmp_enter_query_sgx(const char *json) "%s"
qmp_exit_query_sgx(const char *result, bool succeeded) "%s %d"
qmp_enter_query_sgx_capabilities(const char *json) "%s"
qmp_exit_query_sgx_capabilities(const char *result, bool succeeded) "%s %d"
qmp_enter_xen_event_list(const char *json) "%s"
qmp_exit_xen_event_list(const char *result, bool succeeded) "%s %d"
qmp_enter_xen_event_inject(const char *json) "%s"
qmp_exit_xen_event_inject(const char *result, bool succeeded) "%s %d"
