Lines Matching refs:at_level
160 static unsigned int topo_unit_count(u32 lvlid, enum x86_topology_domains at_level,
166 end = lvlid + (1U << x86_topo_system.dom_shifts[at_level]);
267 * @at_level: The topology domain level to use
270 * all bits below the domain level specified by @at_level to be clear. So both
278 int topology_get_logical_id(u32 apicid, enum x86_topology_domains at_level)
280 /* Remove the bits below @at_level to get the proper level ID of @apicid */
281 unsigned int lvlid = topo_apicid(apicid, at_level);
285 if (!test_bit(lvlid, apic_maps[at_level].map))
288 return bitmap_weight(apic_maps[at_level].map, lvlid);
296 * @at_level: The domain level at which @which_units have to be counted
305 * @at_level must obviously be greater than @which_level to produce useful
306 * results. If @at_level is equal to @which_units the result is
307 * unsurprisingly 1. If @at_level is less than @which_units the results
311 enum x86_topology_domains at_level)
313 /* Remove the bits below @at_level to get the proper level ID of @apicid */
314 unsigned int lvlid = topo_apicid(apicid, at_level);
318 if (!test_bit(lvlid, apic_maps[at_level].map))
320 if (which_units > at_level)
322 if (which_units == at_level)
324 return topo_unit_count(lvlid, at_level, apic_maps[which_units].map);