add master list pointer to topo_obj
Its convienient to know how many objects of a given type you have without having to know the specific object type. We can get this info with a pointer to a pointer in each topo object assigned to that objects type master list (cpus, cache_domains, packages, numa_nodes) when we build the tree
This commit is contained in:
parent
1a287acc37
commit
f06001f62f
|
@ -77,6 +77,7 @@ static struct topo_obj* add_cache_domain_to_package(struct topo_obj *cache,
|
|||
return NULL;
|
||||
package->mask = package_mask;
|
||||
package->obj_type = OBJ_TYPE_PACKAGE;
|
||||
package->obj_type_list = &packages;
|
||||
packages = g_list_append(packages, package);
|
||||
package_count++;
|
||||
}
|
||||
|
@ -119,6 +120,7 @@ static struct topo_obj* add_cpu_to_cache_domain(struct topo_obj *cpu,
|
|||
cache->obj_type = OBJ_TYPE_CACHE;
|
||||
cache->mask = cache_mask;
|
||||
cache->number = cache_domain_count;
|
||||
cache->obj_type_list = &cache_domains;
|
||||
cache_domains = g_list_append(cache_domains, cache);
|
||||
cache_domain_count++;
|
||||
}
|
||||
|
@ -250,6 +252,7 @@ static void do_one_cpu(char *path)
|
|||
cpus_and(cpu_package(cpu)->mask, cpu_package(cpu)->mask, unbanned_cpus);
|
||||
cpus_and(cpu->mask, cpu->mask, unbanned_cpus);
|
||||
|
||||
cpu->obj_type_list = &cpus;
|
||||
cpus = g_list_append(cpus, cpu);
|
||||
core_count++;
|
||||
}
|
||||
|
|
2
numa.c
2
numa.c
|
@ -45,6 +45,7 @@ struct topo_obj unspecified_node = {
|
|||
.interrupts = NULL,
|
||||
.children = NULL,
|
||||
.parent = NULL,
|
||||
.obj_type_list = &numa_nodes,
|
||||
};
|
||||
|
||||
static void add_one_node(const char *nodename)
|
||||
|
@ -74,6 +75,7 @@ static void add_one_node(const char *nodename)
|
|||
}
|
||||
new->obj_type = OBJ_TYPE_NODE;
|
||||
new->number = strtoul(&nodename[4], NULL, 10);
|
||||
new->obj_type_list = &numa_nodes;
|
||||
numa_nodes = g_list_append(numa_nodes, new);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue