mirror of https://gitee.com/openkylin/qemu.git
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);
|
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
|
#ifndef CONFIG_USER_ONLY
|
||||||
|
|
||||||
typedef void (*CPUInterruptHandler)(CPUState *, int);
|
typedef void (*CPUInterruptHandler)(CPUState *, int);
|
||||||
|
|
26
qom/cpu.c
26
qom/cpu.c
|
@ -24,6 +24,32 @@
|
||||||
#include "qemu/notify.h"
|
#include "qemu/notify.h"
|
||||||
#include "sysemu/sysemu.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 */
|
/* CPU hot-plug notifiers */
|
||||||
static NotifierList cpu_added_notifiers =
|
static NotifierList cpu_added_notifiers =
|
||||||
NOTIFIER_LIST_INITIALIZER(cpu_add_notifiers);
|
NOTIFIER_LIST_INITIALIZER(cpu_add_notifiers);
|
||||||
|
|
Loading…
Reference in New Issue