qemu/common-user/plugin-api.c.inc
Alex Bennée dcc83c3e41 plugins: fix inclusion of user-mode APIs
In 903e870f24 (plugins/api: split out binary path/start/end/entry
code) we didn't actually enable the building of the new plugin helper.
However this was missed because only contrib plugins like drcov
actually used the helpers.

With that fixed we discover we also need some more includes to be able
to extract the relevant data from TaskState.

Fixes: 903e870f24 (plugins/api: split out binary path/start/end/entry code)
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/3014
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-ID: <20250710104531.3099313-6-alex.bennee@linaro.org>
2025-07-14 11:42:49 +01:00

45 lines
1.0 KiB
C++

/*
* QEMU Plugin API - *-user-mode only implementations
*
* Common user-mode only APIs are in plugins/api-user. These helpers
* are only specific to the *-user frontends.
*
* Copyright (C) 2017, Emilio G. Cota <cota@braap.org>
* Copyright (C) 2019-2025, Linaro
*
* SPDX-License-Identifier: GPL-2.0-or-later
*/
#include "qemu/osdep.h"
#include "qemu/main-loop.h"
#include "qemu/plugin.h"
#include "accel/tcg/vcpu-state.h"
#include "qemu.h"
/*
* Binary path, start and end locations. Host specific due to TaskState.
*/
const char *qemu_plugin_path_to_binary(void)
{
TaskState *ts = get_task_state(current_cpu);
return g_strdup(ts->bprm->filename);
}
uint64_t qemu_plugin_start_code(void)
{
TaskState *ts = get_task_state(current_cpu);
return ts->info->start_code;
}
uint64_t qemu_plugin_end_code(void)
{
TaskState *ts = get_task_state(current_cpu);
return ts->info->end_code;
}
uint64_t qemu_plugin_entry_code(void)
{
TaskState *ts = get_task_state(current_cpu);
return ts->info->entry;
}