qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 2/5] spapr: Clean up spapr_dr_connector_by_*()


From: Michael Roth
Subject: Re: [Qemu-devel] [PATCH 2/5] spapr: Clean up spapr_dr_connector_by_*()
Date: Sat, 03 Jun 2017 17:16:36 -0500
User-agent: alot/0.5.1

Quoting David Gibson (2017-06-02 02:29:49)
>  * Change names to something less ludicrously verbose
>  * Now that we have QOM subclasses for the different DRC types, use a QOM
>    typename instead of a PAPR type value parameter
> 
> The latter allows removal of the get_type_shift() helper.
> 
> Signed-off-by: David Gibson <address@hidden>

Reviewed-by: Michael Roth <address@hidden>

> ---
>  hw/ppc/spapr.c             | 28 ++++++++++++++--------------
>  hw/ppc/spapr_drc.c         | 34 ++++++++++------------------------
>  hw/ppc/spapr_events.c      |  2 +-
>  hw/ppc/spapr_pci.c         |  6 ++----
>  include/hw/ppc/spapr_drc.h |  5 ++---
>  5 files changed, 29 insertions(+), 46 deletions(-)
> 
> diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
> index 456f9e7..7aac3b9 100644
> --- a/hw/ppc/spapr.c
> +++ b/hw/ppc/spapr.c
> @@ -460,7 +460,7 @@ static void spapr_populate_cpu_dt(CPUState *cs, void 
> *fdt, int offset,
>      uint32_t radix_AP_encodings[PPC_PAGE_SIZES_MAX_SZ];
>      int i;
> 
> -    drc = spapr_dr_connector_by_id(SPAPR_DR_CONNECTOR_TYPE_CPU, index);
> +    drc = spapr_drc_by_id(TYPE_SPAPR_DRC_CPU, index);
>      if (drc) {
>          drc_index = spapr_drc_index(drc);
>          _FDT((fdt_setprop_cell(fdt, offset, "ibm,my-drc-index", drc_index)));
> @@ -653,7 +653,7 @@ static int spapr_populate_drconf_memory(sPAPRMachineState 
> *spapr, void *fdt)
>          if (i >= hotplug_lmb_start) {
>              sPAPRDRConnector *drc;
> 
> -            drc = spapr_dr_connector_by_id(SPAPR_DR_CONNECTOR_TYPE_LMB, i);
> +            drc = spapr_drc_by_id(TYPE_SPAPR_DRC_LMB, i);
>              g_assert(drc);
> 
>              dynamic_memory[0] = cpu_to_be32(addr >> 32);
> @@ -2528,8 +2528,8 @@ static void spapr_add_lmbs(DeviceState *dev, uint64_t 
> addr_start, uint64_t size,
>      uint64_t addr = addr_start;
> 
>      for (i = 0; i < nr_lmbs; i++) {
> -        drc = spapr_dr_connector_by_id(SPAPR_DR_CONNECTOR_TYPE_LMB,
> -                addr/SPAPR_MEMORY_BLOCK_SIZE);
> +        drc = spapr_drc_by_id(TYPE_SPAPR_DRC_LMB,
> +                              addr / SPAPR_MEMORY_BLOCK_SIZE);
>          g_assert(drc);
> 
>          fdt = create_device_tree(&fdt_size);
> @@ -2550,8 +2550,8 @@ static void spapr_add_lmbs(DeviceState *dev, uint64_t 
> addr_start, uint64_t size,
>       */
>      if (dev->hotplugged) {
>          if (dedicated_hp_event_source) {
> -            drc = spapr_dr_connector_by_id(SPAPR_DR_CONNECTOR_TYPE_LMB,
> -                    addr_start / SPAPR_MEMORY_BLOCK_SIZE);
> +            drc = spapr_drc_by_id(TYPE_SPAPR_DRC_LMB,
> +                                  addr_start / SPAPR_MEMORY_BLOCK_SIZE);
>              drck = SPAPR_DR_CONNECTOR_GET_CLASS(drc);
>              
> spapr_hotplug_req_add_by_count_indexed(SPAPR_DR_CONNECTOR_TYPE_LMB,
>                                                     nr_lmbs,
> @@ -2668,8 +2668,8 @@ static sPAPRDIMMState 
> *spapr_recover_pending_dimm_state(sPAPRMachineState *ms,
> 
>      addr = addr_start;
>      for (i = 0; i < nr_lmbs; i++) {
> -        drc = spapr_dr_connector_by_id(SPAPR_DR_CONNECTOR_TYPE_LMB,
> -                                       addr / SPAPR_MEMORY_BLOCK_SIZE);
> +        drc = spapr_drc_by_id(TYPE_SPAPR_DRC_LMB,
> +                              addr / SPAPR_MEMORY_BLOCK_SIZE);
>          g_assert(drc);
>          if (drc->indicator_state != SPAPR_DR_INDICATOR_STATE_INACTIVE) {
>              avail_lmbs++;
> @@ -2752,8 +2752,8 @@ static void spapr_memory_unplug_request(HotplugHandler 
> *hotplug_dev,
> 
>      addr = addr_start;
>      for (i = 0; i < nr_lmbs; i++) {
> -        drc = spapr_dr_connector_by_id(SPAPR_DR_CONNECTOR_TYPE_LMB,
> -                addr / SPAPR_MEMORY_BLOCK_SIZE);
> +        drc = spapr_drc_by_id(TYPE_SPAPR_DRC_LMB,
> +                              addr / SPAPR_MEMORY_BLOCK_SIZE);
>          g_assert(drc);
> 
>          drck = SPAPR_DR_CONNECTOR_GET_CLASS(drc);
> @@ -2761,8 +2761,8 @@ static void spapr_memory_unplug_request(HotplugHandler 
> *hotplug_dev,
>          addr += SPAPR_MEMORY_BLOCK_SIZE;
>      }
> 
> -    drc = spapr_dr_connector_by_id(SPAPR_DR_CONNECTOR_TYPE_LMB,
> -                                   addr_start / SPAPR_MEMORY_BLOCK_SIZE);
> +    drc = spapr_drc_by_id(TYPE_SPAPR_DRC_LMB,
> +                          addr_start / SPAPR_MEMORY_BLOCK_SIZE);
>      drck = SPAPR_DR_CONNECTOR_GET_CLASS(drc);
>      spapr_hotplug_req_remove_by_count_indexed(SPAPR_DR_CONNECTOR_TYPE_LMB,
>                                                nr_lmbs, spapr_drc_index(drc));
> @@ -2833,7 +2833,7 @@ void spapr_core_unplug_request(HotplugHandler 
> *hotplug_dev, DeviceState *dev,
>          return;
>      }
> 
> -    drc = spapr_dr_connector_by_id(SPAPR_DR_CONNECTOR_TYPE_CPU, index * smt);
> +    drc = spapr_drc_by_id(TYPE_SPAPR_DRC_CPU, index * smt);
>      g_assert(drc);
> 
>      drck = SPAPR_DR_CONNECTOR_GET_CLASS(drc);
> @@ -2868,7 +2868,7 @@ static void spapr_core_plug(HotplugHandler 
> *hotplug_dev, DeviceState *dev,
>                     cc->core_id);
>          return;
>      }
> -    drc = spapr_dr_connector_by_id(SPAPR_DR_CONNECTOR_TYPE_CPU, index * smt);
> +    drc = spapr_drc_by_id(TYPE_SPAPR_DRC_CPU, index * smt);
> 
>      g_assert(drc || !mc->has_hotpluggable_cpus);
> 
> diff --git a/hw/ppc/spapr_drc.c b/hw/ppc/spapr_drc.c
> index 690b41f..2514f87 100644
> --- a/hw/ppc/spapr_drc.c
> +++ b/hw/ppc/spapr_drc.c
> @@ -55,21 +55,6 @@ static void spapr_ccs_remove(sPAPRMachineState *spapr,
>      g_free(ccs);
>  }
> 
> -static sPAPRDRConnectorTypeShift get_type_shift(sPAPRDRConnectorType type)
> -{
> -    uint32_t shift = 0;
> -
> -    /* make sure this isn't SPAPR_DR_CONNECTOR_TYPE_ANY, or some
> -     * other wonky value.
> -     */
> -    g_assert(is_power_of_2(type));
> -
> -    while (type != (1 << shift)) {
> -        shift++;
> -    }
> -    return shift;
> -}
> -
>  sPAPRDRConnectorType spapr_drc_type(sPAPRDRConnector *drc)
>  {
>      sPAPRDRConnectorClass *drck = SPAPR_DR_CONNECTOR_GET_CLASS(drc);
> @@ -805,7 +790,7 @@ static const TypeInfo spapr_drc_lmb_info = {
> 
>  /* helper functions for external users */
> 
> -sPAPRDRConnector *spapr_dr_connector_by_index(uint32_t index)
> +sPAPRDRConnector *spapr_drc_by_index(uint32_t index)
>  {
>      Object *obj;
>      char name[256];
> @@ -816,12 +801,13 @@ sPAPRDRConnector *spapr_dr_connector_by_index(uint32_t 
> index)
>      return !obj ? NULL : SPAPR_DR_CONNECTOR(obj);
>  }
> 
> -sPAPRDRConnector *spapr_dr_connector_by_id(sPAPRDRConnectorType type,
> -                                           uint32_t id)
> +sPAPRDRConnector *spapr_drc_by_id(const char *type, uint32_t id)
>  {
> -    return spapr_dr_connector_by_index(
> -            (get_type_shift(type) << DRC_INDEX_TYPE_SHIFT) |
> -            (id & DRC_INDEX_ID_MASK));
> +    sPAPRDRConnectorClass *drck
> +        = SPAPR_DR_CONNECTOR_CLASS(object_class_by_name(type));
> +
> +    return spapr_drc_by_index(drck->typeshift << DRC_INDEX_TYPE_SHIFT
> +                              | (id & DRC_INDEX_ID_MASK));
>  }
> 
>  /* generate a string the describes the DRC to encode into the
> @@ -1024,7 +1010,7 @@ static void rtas_set_indicator(PowerPCCPU *cpu, 
> sPAPRMachineState *spapr,
>      }
> 
>      /* if this is a DR sensor we can assume sensor_index == drc_index */
> -    drc = spapr_dr_connector_by_index(sensor_index);
> +    drc = spapr_drc_by_index(sensor_index);
>      if (!drc) {
>          trace_spapr_rtas_set_indicator_invalid(sensor_index);
>          ret = RTAS_OUT_PARAM_ERROR;
> @@ -1097,7 +1083,7 @@ static void rtas_get_sensor_state(PowerPCCPU *cpu, 
> sPAPRMachineState *spapr,
>          goto out;
>      }
> 
> -    drc = spapr_dr_connector_by_index(sensor_index);
> +    drc = spapr_drc_by_index(sensor_index);
>      if (!drc) {
>          trace_spapr_rtas_get_sensor_state_invalid(sensor_index);
>          ret = RTAS_OUT_PARAM_ERROR;
> @@ -1162,7 +1148,7 @@ static void rtas_ibm_configure_connector(PowerPCCPU 
> *cpu,
>      wa_addr = ((uint64_t)rtas_ld(args, 1) << 32) | rtas_ld(args, 0);
> 
>      drc_index = rtas_ld(wa_addr, 0);
> -    drc = spapr_dr_connector_by_index(drc_index);
> +    drc = spapr_drc_by_index(drc_index);
>      if (!drc) {
>          trace_spapr_rtas_ibm_configure_connector_invalid(drc_index);
>          rc = RTAS_OUT_PARAM_ERROR;
> diff --git a/hw/ppc/spapr_events.c b/hw/ppc/spapr_events.c
> index 6b01b04..4ab2312 100644
> --- a/hw/ppc/spapr_events.c
> +++ b/hw/ppc/spapr_events.c
> @@ -478,7 +478,7 @@ static void spapr_powerdown_req(Notifier *n, void *opaque)
> 
>  static void spapr_hotplug_set_signalled(uint32_t drc_index)
>  {
> -    sPAPRDRConnector *drc = spapr_dr_connector_by_index(drc_index);
> +    sPAPRDRConnector *drc = spapr_drc_by_index(drc_index);
>      sPAPRDRConnectorClass *drck = SPAPR_DR_CONNECTOR_GET_CLASS(drc);
>      drck->set_signalled(drc);
>  }
> diff --git a/hw/ppc/spapr_pci.c b/hw/ppc/spapr_pci.c
> index 50d673b..0c181bb 100644
> --- a/hw/ppc/spapr_pci.c
> +++ b/hw/ppc/spapr_pci.c
> @@ -1400,10 +1400,8 @@ static sPAPRDRConnector 
> *spapr_phb_get_pci_func_drc(sPAPRPHBState *phb,
>                                                      uint32_t busnr,
>                                                      int32_t devfn)
>  {
> -    return spapr_dr_connector_by_id(SPAPR_DR_CONNECTOR_TYPE_PCI,
> -                                    (phb->index << 16) |
> -                                    (busnr << 8) |
> -                                    devfn);
> +    return spapr_drc_by_id(TYPE_SPAPR_DRC_PCI,
> +                           (phb->index << 16) | (busnr << 8) | devfn);
>  }
> 
>  static sPAPRDRConnector *spapr_phb_get_pci_drc(sPAPRPHBState *phb,
> diff --git a/include/hw/ppc/spapr_drc.h b/include/hw/ppc/spapr_drc.h
> index f77be38..d8cb84b 100644
> --- a/include/hw/ppc/spapr_drc.h
> +++ b/include/hw/ppc/spapr_drc.h
> @@ -230,9 +230,8 @@ sPAPRDRConnectorType spapr_drc_type(sPAPRDRConnector 
> *drc);
> 
>  sPAPRDRConnector *spapr_dr_connector_new(Object *owner, const char *type,
>                                           uint32_t id);
> -sPAPRDRConnector *spapr_dr_connector_by_index(uint32_t index);
> -sPAPRDRConnector *spapr_dr_connector_by_id(sPAPRDRConnectorType type,
> -                                           uint32_t id);
> +sPAPRDRConnector *spapr_drc_by_index(uint32_t index);
> +sPAPRDRConnector *spapr_drc_by_id(const char *type, uint32_t id);
>  int spapr_drc_populate_dt(void *fdt, int fdt_offset, Object *owner,
>                            uint32_t drc_type_mask);
> 
> -- 
> 2.9.4
> 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]