cpu: Add helper cpu_exists(), to check if CPU with specified id exists
Signed-off-by: Igor Mammedov <imammedo@redhat.com> Signed-off-by: Andreas Färber <afaerber@suse.de>
This commit is contained in:
parent
a37677c32b
commit
69e5ff067a
@ -234,6 +234,16 @@ void qemu_for_each_cpu(void (*func)(CPUState *cpu, void *data), void *data);
|
||||
*/
|
||||
CPUState *qemu_get_cpu(int index);
|
||||
|
||||
/**
|
||||
* cpu_exists:
|
||||
* @id: Guest-exposed CPU ID to lookup.
|
||||
*
|
||||
* Search for CPU with specified ID.
|
||||
*
|
||||
* Returns: %true - CPU is found, %false - CPU isn't found.
|
||||
*/
|
||||
bool cpu_exists(int64_t id);
|
||||
|
||||
#ifndef CONFIG_USER_ONLY
|
||||
|
||||
typedef void (*CPUInterruptHandler)(CPUState *, int);
|
||||
|
26
qom/cpu.c
26
qom/cpu.c
@ -24,6 +24,32 @@
|
||||
#include "qemu/notify.h"
|
||||
#include "sysemu/sysemu.h"
|
||||
|
||||
typedef struct CPUExistsArgs {
|
||||
int64_t id;
|
||||
bool found;
|
||||
} CPUExistsArgs;
|
||||
|
||||
static void cpu_exist_cb(CPUState *cpu, void *data)
|
||||
{
|
||||
CPUClass *klass = CPU_GET_CLASS(cpu);
|
||||
CPUExistsArgs *arg = data;
|
||||
|
||||
if (klass->get_arch_id(cpu) == arg->id) {
|
||||
arg->found = true;
|
||||
}
|
||||
}
|
||||
|
||||
bool cpu_exists(int64_t id)
|
||||
{
|
||||
CPUExistsArgs data = {
|
||||
.id = id,
|
||||
.found = false,
|
||||
};
|
||||
|
||||
qemu_for_each_cpu(cpu_exist_cb, &data);
|
||||
return data.found;
|
||||
}
|
||||
|
||||
/* CPU hot-plug notifiers */
|
||||
static NotifierList cpu_added_notifiers =
|
||||
NOTIFIER_LIST_INITIALIZER(cpu_add_notifiers);
|
||||
|
Loading…
Reference in New Issue
Block a user