cpus: Introduce SysemuCPUOps::has_work() handler
SysemuCPUOps::has_work() is similar to CPUClass::has_work(), but only exposed on system emulation. Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-Id: <20250125170125.32855-4-philmd@linaro.org>
This commit is contained in:
parent
8f8dbe04bd
commit
72eacd6231
@ -33,6 +33,10 @@
|
|||||||
|
|
||||||
bool cpu_has_work(CPUState *cpu)
|
bool cpu_has_work(CPUState *cpu)
|
||||||
{
|
{
|
||||||
|
if (cpu->cc->sysemu_ops->has_work) {
|
||||||
|
return cpu->cc->sysemu_ops->has_work(cpu);
|
||||||
|
}
|
||||||
|
|
||||||
g_assert(cpu->cc->has_work);
|
g_assert(cpu->cc->has_work);
|
||||||
return cpu->cc->has_work(cpu);
|
return cpu->cc->has_work(cpu);
|
||||||
}
|
}
|
||||||
|
@ -141,7 +141,7 @@ struct TCGCPUOps {
|
|||||||
*
|
*
|
||||||
* This method must be provided. If the target does not need to
|
* This method must be provided. If the target does not need to
|
||||||
* do anything special for halt, the same function used for its
|
* do anything special for halt, the same function used for its
|
||||||
* CPUClass::has_work method can be used here, as they have the
|
* SysemuCPUOps::has_work method can be used here, as they have the
|
||||||
* same function signature.
|
* same function signature.
|
||||||
*/
|
*/
|
||||||
bool (*cpu_exec_halt)(CPUState *cpu);
|
bool (*cpu_exec_halt)(CPUState *cpu);
|
||||||
|
@ -16,6 +16,10 @@
|
|||||||
* struct SysemuCPUOps: System operations specific to a CPU class
|
* struct SysemuCPUOps: System operations specific to a CPU class
|
||||||
*/
|
*/
|
||||||
typedef struct SysemuCPUOps {
|
typedef struct SysemuCPUOps {
|
||||||
|
/**
|
||||||
|
* @has_work: Callback for checking if there is work to do.
|
||||||
|
*/
|
||||||
|
bool (*has_work)(CPUState *cpu);
|
||||||
/**
|
/**
|
||||||
* @get_memory_mapping: Callback for obtaining the memory mappings.
|
* @get_memory_mapping: Callback for obtaining the memory mappings.
|
||||||
*/
|
*/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user