Commit 5ce46cb3 authored by Eduardo Habkost's avatar Eduardo Habkost
Browse files

cpu: cpu_by_arch_id() helper



The helper can be used for CPU object lookup using the CPU's
arch-specific ID (the one returned by CPUClass::get_arch_id()).

Signed-off-by: default avatarEduardo Habkost <ehabkost@redhat.com>
[Yi Wang: Added documentation comments]
Signed-off-by: default avatarYi Wang <wang.yi59@zte.com.cn>
Signed-off-by: default avatarYun Liu <liu.yunh@zte.com.cn>
[ehabkost: extracted cpu_by_arch_id() to a separate patch]
Signed-off-by: default avatarEduardo Habkost <ehabkost@redhat.com>
parent 3beacfb9
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -754,6 +754,16 @@ CPUState *qemu_get_cpu(int index);
 */
bool cpu_exists(int64_t id);

/**
 * cpu_by_arch_id:
 * @id: Guest-exposed CPU ID of the CPU to obtain.
 *
 * Get a CPU with matching @id.
 *
 * Returns: The CPU or %NULL if there is no matching CPU.
 */
CPUState *cpu_by_arch_id(int64_t id);

/**
 * cpu_throttle_set:
 * @new_throttle_pct: Percent of sleep time. Valid range is 1 to 99.
+8 −3
Original line number Diff line number Diff line
@@ -34,7 +34,7 @@

CPUInterruptHandler cpu_interrupt_handler;

bool cpu_exists(int64_t id)
CPUState *cpu_by_arch_id(int64_t id)
{
    CPUState *cpu;

@@ -42,10 +42,15 @@ bool cpu_exists(int64_t id)
        CPUClass *cc = CPU_GET_CLASS(cpu);

        if (cc->get_arch_id(cpu) == id) {
            return true;
            return cpu;
        }
    }
    return false;
    return NULL;
}

bool cpu_exists(int64_t id)
{
    return !!cpu_by_arch_id(id);
}

CPUState *cpu_generic_init(const char *typename, const char *cpu_model)