diff mbox series

[v4,17/20] nubus-bridge: make slot_available_mask a qdev property

Message ID 20210917075057.20924-18-mark.cave-ayland@ilande.co.uk
State New
Headers show
Series nubus: bus, device, bridge, IRQ and address space improvements | expand

Commit Message

Mark Cave-Ayland Sept. 17, 2021, 7:50 a.m. UTC
This is to allow Macintosh machines to further specify which slots are available
since the number of addressable slots may not match the number of physical slots
present in the machine.

Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
---
 hw/nubus/nubus-bridge.c | 7 +++++++
 1 file changed, 7 insertions(+)

Comments

Laurent Vivier Sept. 20, 2021, 8:12 p.m. UTC | #1
Le 17/09/2021 à 09:50, Mark Cave-Ayland a écrit :
> This is to allow Macintosh machines to further specify which slots are available
> since the number of addressable slots may not match the number of physical slots
> present in the machine.
> 
> Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
> ---
>  hw/nubus/nubus-bridge.c | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/hw/nubus/nubus-bridge.c b/hw/nubus/nubus-bridge.c
> index 1adda7f5a6..2c7c4ee121 100644
> --- a/hw/nubus/nubus-bridge.c
> +++ b/hw/nubus/nubus-bridge.c
> @@ -21,11 +21,18 @@ static void nubus_bridge_init(Object *obj)
>      qbus_create_inplace(bus, sizeof(s->bus), TYPE_NUBUS_BUS, DEVICE(s), NULL);
>  }
>  
> +static Property nubus_bridge_properties[] = {
> +    DEFINE_PROP_UINT32("slot-available-mask", NubusBridge,
> +                       bus.slot_available_mask, 0xffff),

So you can remove the "nubus->slot_available_mask = MAKE_64BIT_MASK(0, 16);" in nubus_init()?

> +    DEFINE_PROP_END_OF_LIST()
> +};
> +
>  static void nubus_bridge_class_init(ObjectClass *klass, void *data)
>  {
>      DeviceClass *dc = DEVICE_CLASS(klass);
>  
>      dc->fw_name = "nubus";
> +    device_class_set_props(dc, nubus_bridge_properties);
>  }
>  
>  static const TypeInfo nubus_bridge_info = {
> 

Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Mark Cave-Ayland Sept. 22, 2021, 11:50 a.m. UTC | #2
On 20/09/2021 21:12, Laurent Vivier wrote:
> Le 17/09/2021 à 09:50, Mark Cave-Ayland a écrit :
>> This is to allow Macintosh machines to further specify which slots are available
>> since the number of addressable slots may not match the number of physical slots
>> present in the machine.
>>
>> Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
>> ---
>>   hw/nubus/nubus-bridge.c | 7 +++++++
>>   1 file changed, 7 insertions(+)
>>
>> diff --git a/hw/nubus/nubus-bridge.c b/hw/nubus/nubus-bridge.c
>> index 1adda7f5a6..2c7c4ee121 100644
>> --- a/hw/nubus/nubus-bridge.c
>> +++ b/hw/nubus/nubus-bridge.c
>> @@ -21,11 +21,18 @@ static void nubus_bridge_init(Object *obj)
>>       qbus_create_inplace(bus, sizeof(s->bus), TYPE_NUBUS_BUS, DEVICE(s), NULL);
>>   }
>>   
>> +static Property nubus_bridge_properties[] = {
>> +    DEFINE_PROP_UINT32("slot-available-mask", NubusBridge,
>> +                       bus.slot_available_mask, 0xffff),
> 
> So you can remove the "nubus->slot_available_mask = MAKE_64BIT_MASK(0, 16);" in nubus_init()?

Ah yes, I can do that in v5.

>> +    DEFINE_PROP_END_OF_LIST()
>> +};
>> +
>>   static void nubus_bridge_class_init(ObjectClass *klass, void *data)
>>   {
>>       DeviceClass *dc = DEVICE_CLASS(klass);
>>   
>>       dc->fw_name = "nubus";
>> +    device_class_set_props(dc, nubus_bridge_properties);
>>   }
>>   
>>   static const TypeInfo nubus_bridge_info = {
>>
> 
> Reviewed-by: Laurent Vivier <laurent@vivier.eu>


ATB,

Mark.
diff mbox series

Patch

diff --git a/hw/nubus/nubus-bridge.c b/hw/nubus/nubus-bridge.c
index 1adda7f5a6..2c7c4ee121 100644
--- a/hw/nubus/nubus-bridge.c
+++ b/hw/nubus/nubus-bridge.c
@@ -21,11 +21,18 @@  static void nubus_bridge_init(Object *obj)
     qbus_create_inplace(bus, sizeof(s->bus), TYPE_NUBUS_BUS, DEVICE(s), NULL);
 }
 
+static Property nubus_bridge_properties[] = {
+    DEFINE_PROP_UINT32("slot-available-mask", NubusBridge,
+                       bus.slot_available_mask, 0xffff),
+    DEFINE_PROP_END_OF_LIST()
+};
+
 static void nubus_bridge_class_init(ObjectClass *klass, void *data)
 {
     DeviceClass *dc = DEVICE_CLASS(klass);
 
     dc->fw_name = "nubus";
+    device_class_set_props(dc, nubus_bridge_properties);
 }
 
 static const TypeInfo nubus_bridge_info = {