hw/boards: Introduce DEFINE_MACHINE_WITH_INTERFACE_ARRAY() macro
DEFINE_MACHINE_WITH_INTERFACE_ARRAY() is similar to DEFINE_MACHINE_WITH_INTERFACES() but allows to pass an InterfaceInfo[] pointer. Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org> Message-Id: <20251020220941.65269-5-philmd@linaro.org>
This commit is contained in:
parent
ce837a4fd6
commit
a4d934ea07
1 changed files with 9 additions and 5 deletions
|
|
@ -507,7 +507,7 @@ struct MachineState {
|
|||
*/
|
||||
|
||||
#define DEFINE_MACHINE_EXTENDED(namestr, PARENT_NAME, InstanceName, \
|
||||
machine_initfn, ABSTRACT, ...) \
|
||||
machine_initfn, ABSTRACT, ifaces...) \
|
||||
static void machine_initfn##_class_init(ObjectClass *oc, const void *data) \
|
||||
{ \
|
||||
MachineClass *mc = MACHINE_CLASS(oc); \
|
||||
|
|
@ -519,7 +519,7 @@ struct MachineState {
|
|||
.class_init = machine_initfn##_class_init, \
|
||||
.instance_size = sizeof(InstanceName), \
|
||||
.abstract = ABSTRACT, \
|
||||
.interfaces = (const InterfaceInfo[]) { __VA_ARGS__ }, \
|
||||
.interfaces = ifaces, \
|
||||
}; \
|
||||
static void machine_initfn##_register_types(void) \
|
||||
{ \
|
||||
|
|
@ -529,11 +529,15 @@ struct MachineState {
|
|||
|
||||
#define DEFINE_MACHINE(namestr, machine_initfn) \
|
||||
DEFINE_MACHINE_EXTENDED(namestr, MACHINE, MachineState, machine_initfn, \
|
||||
false, { })
|
||||
false, NULL)
|
||||
|
||||
#define DEFINE_MACHINE_WITH_INTERFACE_ARRAY(namestr, machine_initfn, ifaces...)\
|
||||
DEFINE_MACHINE_EXTENDED(namestr, MACHINE, MachineState, machine_initfn, \
|
||||
false, ifaces)
|
||||
|
||||
#define DEFINE_MACHINE_WITH_INTERFACES(namestr, machine_initfn, ...) \
|
||||
DEFINE_MACHINE_EXTENDED(namestr, MACHINE, MachineState, machine_initfn, \
|
||||
false, __VA_ARGS__)
|
||||
DEFINE_MACHINE_WITH_INTERFACE_ARRAY(namestr, machine_initfn, \
|
||||
(const InterfaceInfo[]) { __VA_ARGS__ })
|
||||
|
||||
/*
|
||||
* Helper for dispatching different macros based on how
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue