[libvirt PATCH 06/15] cpu_ppc64: Turn structs ppc64_{vendor, model, map} into typedefs
Laine Stump
laine at redhat.com
Mon Sep 7 16:03:44 UTC 2020
On 9/7/20 10:58 AM, Tim Wiederhake wrote:
> This enables us to use g_auto* macros on those types.
>
> Signed-off-by: Tim Wiederhake <twiederh at redhat.com>
> ---
> src/cpu/cpu_ppc64.c | 91 +++++++++++++++++++++++++--------------------
danielhb had sent similar patches for this file last week, which I had
planned to review, but didn't get around to before the weekend:
https://www.redhat.com/archives/libvir-list/2020-September/msg00124.html
> 1 file changed, 50 insertions(+), 41 deletions(-)
>
> diff --git a/src/cpu/cpu_ppc64.c b/src/cpu/cpu_ppc64.c
> index 5b34c00a18..c7860cb1b4 100644
> --- a/src/cpu/cpu_ppc64.c
> +++ b/src/cpu/cpu_ppc64.c
> @@ -34,22 +34,31 @@ VIR_LOG_INIT("cpu.cpu_ppc64");
>
> static const virArch archs[] = { VIR_ARCH_PPC64, VIR_ARCH_PPC64LE };
>
> -struct ppc64_vendor {
> +typedef struct {
> char *name;
> -};
> +} ppc64_vendor;
> +
> +static void ppc64VendorFree(ppc64_vendor *vendor);
> +G_DEFINE_AUTOPTR_CLEANUP_FUNC(ppc64_vendor, ppc64VendorFree);
>
> -struct ppc64_model {
> +typedef struct {
> char *name;
> - const struct ppc64_vendor *vendor;
> + const ppc64_vendor *vendor;
> virCPUppc64Data data;
> -};
> +} ppc64_model;
>
> -struct ppc64_map {
> +static void ppc64ModelFree(ppc64_model *model);
> +G_DEFINE_AUTOPTR_CLEANUP_FUNC(ppc64_model, ppc64ModelFree);
> +
> +typedef struct {
> size_t nvendors;
> - struct ppc64_vendor **vendors;
> + ppc64_vendor **vendors;
> size_t nmodels;
> - struct ppc64_model **models;
> -};
> + ppc64_model **models;
> +} ppc64_map;
> +
> +static void ppc64MapFree(ppc64_map *map);
> +G_DEFINE_AUTOPTR_CLEANUP_FUNC(ppc64_map, ppc64MapFree);
>
> /* Convert a legacy CPU definition by transforming
> * model names to generation names:
> @@ -142,7 +151,7 @@ ppc64DataCopy(virCPUppc64Data *dst, const virCPUppc64Data *src)
> }
>
> static void
> -ppc64VendorFree(struct ppc64_vendor *vendor)
> +ppc64VendorFree(ppc64_vendor *vendor)
> {
> if (!vendor)
> return;
> @@ -151,8 +160,8 @@ ppc64VendorFree(struct ppc64_vendor *vendor)
> VIR_FREE(vendor);
> }
>
> -static struct ppc64_vendor *
> -ppc64VendorFind(const struct ppc64_map *map,
> +static ppc64_vendor *
> +ppc64VendorFind(const ppc64_map *map,
> const char *name)
> {
> size_t i;
> @@ -166,7 +175,7 @@ ppc64VendorFind(const struct ppc64_map *map,
> }
>
> static void
> -ppc64ModelFree(struct ppc64_model *model)
> +ppc64ModelFree(ppc64_model *model)
> {
> if (!model)
> return;
> @@ -176,10 +185,10 @@ ppc64ModelFree(struct ppc64_model *model)
> VIR_FREE(model);
> }
>
> -static struct ppc64_model *
> -ppc64ModelCopy(const struct ppc64_model *model)
> +static ppc64_model *
> +ppc64ModelCopy(const ppc64_model *model)
> {
> - struct ppc64_model *copy;
> + ppc64_model *copy;
>
> if (VIR_ALLOC(copy) < 0)
> goto error;
> @@ -198,8 +207,8 @@ ppc64ModelCopy(const struct ppc64_model *model)
> return NULL;
> }
>
> -static struct ppc64_model *
> -ppc64ModelFind(const struct ppc64_map *map,
> +static ppc64_model *
> +ppc64ModelFind(const ppc64_map *map,
> const char *name)
> {
> size_t i;
> @@ -212,15 +221,15 @@ ppc64ModelFind(const struct ppc64_map *map,
> return NULL;
> }
>
> -static struct ppc64_model *
> -ppc64ModelFindPVR(const struct ppc64_map *map,
> +static ppc64_model *
> +ppc64ModelFindPVR(const ppc64_map *map,
> uint32_t pvr)
> {
> size_t i;
> size_t j;
>
> for (i = 0; i < map->nmodels; i++) {
> - struct ppc64_model *model = map->models[i];
> + ppc64_model *model = map->models[i];
> for (j = 0; j < model->data.len; j++) {
> if ((pvr & model->data.pvr[j].mask) == model->data.pvr[j].value)
> return model;
> @@ -230,11 +239,11 @@ ppc64ModelFindPVR(const struct ppc64_map *map,
> return NULL;
> }
>
> -static struct ppc64_model *
> +static ppc64_model *
> ppc64ModelFromCPU(const virCPUDef *cpu,
> - const struct ppc64_map *map)
> + const ppc64_map *map)
> {
> - struct ppc64_model *model;
> + ppc64_model *model;
>
> if (!cpu->model) {
> virReportError(VIR_ERR_INVALID_ARG, "%s",
> @@ -252,7 +261,7 @@ ppc64ModelFromCPU(const virCPUDef *cpu,
> }
>
> static void
> -ppc64MapFree(struct ppc64_map *map)
> +ppc64MapFree(ppc64_map *map)
> {
> size_t i;
>
> @@ -275,8 +284,8 @@ ppc64VendorParse(xmlXPathContextPtr ctxt G_GNUC_UNUSED,
> const char *name,
> void *data)
> {
> - struct ppc64_map *map = data;
> - struct ppc64_vendor *vendor;
> + ppc64_map *map = data;
> + ppc64_vendor *vendor;
> int ret = -1;
>
> if (VIR_ALLOC(vendor) < 0)
> @@ -306,8 +315,8 @@ ppc64ModelParse(xmlXPathContextPtr ctxt,
> const char *name,
> void *data)
> {
> - struct ppc64_map *map = data;
> - struct ppc64_model *model;
> + ppc64_map *map = data;
> + ppc64_model *model;
> xmlNodePtr *nodes = NULL;
> char *vendor = NULL;
> unsigned long pvr;
> @@ -388,10 +397,10 @@ ppc64ModelParse(xmlXPathContextPtr ctxt,
> }
>
>
> -static struct ppc64_map *
> +static ppc64_map *
> ppc64LoadMap(void)
> {
> - struct ppc64_map *map;
> + ppc64_map *map;
>
> if (VIR_ALLOC(map) < 0)
> goto error;
> @@ -429,9 +438,9 @@ ppc64Compute(virCPUDefPtr host,
> virCPUDataPtr *guestData,
> char **message)
> {
> - struct ppc64_map *map = NULL;
> - struct ppc64_model *host_model = NULL;
> - struct ppc64_model *guest_model = NULL;
> + ppc64_map *map = NULL;
> + ppc64_model *host_model = NULL;
> + ppc64_model *guest_model = NULL;
> virCPUDefPtr cpu = NULL;
> virCPUCompareResult ret = VIR_CPU_COMPARE_ERROR;
> virArch arch;
> @@ -589,8 +598,8 @@ ppc64DriverDecode(virCPUDefPtr cpu,
> virDomainCapsCPUModelsPtr models)
> {
> int ret = -1;
> - struct ppc64_map *map;
> - const struct ppc64_model *model;
> + ppc64_map *map;
> + const ppc64_model *model;
>
> if (!data || !(map = ppc64LoadMap()))
> return -1;
> @@ -689,9 +698,9 @@ virCPUppc64Baseline(virCPUDefPtr *cpus,
> const char **features G_GNUC_UNUSED,
> bool migratable G_GNUC_UNUSED)
> {
> - struct ppc64_map *map;
> - const struct ppc64_model *model;
> - const struct ppc64_vendor *vendor = NULL;
> + ppc64_map *map;
> + const ppc64_model *model;
> + const ppc64_vendor *vendor = NULL;
> virCPUDefPtr cpu = NULL;
> size_t i;
>
> @@ -705,7 +714,7 @@ virCPUppc64Baseline(virCPUDefPtr *cpus,
> }
>
> for (i = 0; i < ncpus; i++) {
> - const struct ppc64_vendor *vnd;
> + const ppc64_vendor *vnd;
>
> /* Hosts running old (<= 1.2.18) versions of libvirt will report
> * strings like 'power7+' or 'power8e' instead of proper CPU model
> @@ -778,7 +787,7 @@ virCPUppc64Baseline(virCPUDefPtr *cpus,
> static int
> virCPUppc64DriverGetModels(char ***models)
> {
> - struct ppc64_map *map;
> + ppc64_map *map;
> size_t i;
> int ret = -1;
>
More information about the libvir-list
mailing list