mirror of
https://github.com/qemu/qemu.git
synced 2026-07-08 17:46:10 +00:00
For the single-binary, we want to be able to retrieve at runtime the current target among the different ones available. A consequence is that we can't rely on existing target_info() definition since it will create a conflict once more than one target is available. To solve this, we add TargetInfo in QOM, with this hierarchy. We define one class "target-info-X" per target, that inherits from abstract class "target-info". Using concrete vs abstract class ensure we can easily filter "target-info-X" from all QOM types. Associated TargetInfo is directly set through class initialization, without relying on any instance. For user mode, we simply define target_info() like it was done previously. In this patch, we keep the same definition for system-mode also, and it will be replaced in next commits. We will introduce detection of target from QOM, so we need to make sure those types are registered early. Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Link: https://lore.kernel.org/qemu-devel/20260514172303.1484273-4-pierrick.bouvier@oss.qualcomm.com Signed-off-by: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>
29 lines
579 B
C
29 lines
579 B
C
/*
|
|
* QEMU target info QOM types
|
|
*
|
|
* Copyright (c) Qualcomm
|
|
*
|
|
* SPDX-License-Identifier: GPL-2.0-or-later
|
|
*/
|
|
|
|
#ifndef QEMU_TARGET_INFO_QOM_H
|
|
#define QEMU_TARGET_INFO_QOM_H
|
|
|
|
#include "qemu/target-info-impl.h"
|
|
#include "qom/object.h"
|
|
|
|
#define TYPE_TARGET_INFO "target-info"
|
|
|
|
typedef struct TargetInfoQom {
|
|
Object parent_obj;
|
|
} TargetInfoQom;
|
|
|
|
typedef struct TargetInfoQomClass {
|
|
ObjectClass parent_class;
|
|
const TargetInfo *target_info;
|
|
} TargetInfoQomClass;
|
|
|
|
OBJECT_DECLARE_TYPE(TargetInfoQom, TargetInfoQomClass, TARGET_INFO)
|
|
|
|
#endif /* QEMU_TARGET_INFO_QOM_H */
|