cpumask_last(9)
π cpumask_last(9) β like, the last CPU standing π
okay bestie, welcome to the kernel API manual, section 9 (9 β kernel API, iykyk). today's main character is cpumask_last, and honestly? she's a tiny little function with one job and she does it. no notes. π
β¨ NAME β¨
cpumask_last β get the last CPU in a cpumask πΈ
like, the actual last one. the final girl. the one at the end of the bitmask. periodt.
β¨ SYNOPSIS β¨
unsigned int cpumask_last (const struct cpumask *srcp );
that's it. that's the whole signature. she's not complicated, she's just focused. π
β¨ ARGUMENTS β¨
srcpβ the cpumask pointer. literally just a pointer to the cpumask you want her to look at. hand her the mask, she finds the last set CPU in it. π«Ά
β¨ RETURN β¨
she gives you back >= nr_cpumask_bits if there are no CPUs set π
β οΈ okay this is the important bit, don't skip it β an empty mask does not get you a cute little0or a-1. you get a value that's>= nr_cpumask_bits, and that's your signal that there was nothing to find. check for it, bestie. fr fr.
β¨ SEE ALSO β¨
the whole cpumask extended universe is right here, living in the kernel file ./include/linux/cpumask.h β go say hi to the fam π
cpumask_pr_args(9)cpumask_first(9)cpumask_first_zero(9)cpumask_first_and(9)cpumask_first_andnot(9)cpumask_first_and_and(9)cpumask_next(9)cpumask_next_zero(9)cpumask_next_and(9)cpumask_next_andnot(9)cpumask_next_and_wrap(9)cpumask_next_wrap(9)cpumask_random(9)for_each_cpu(9)for_each_cpu_wrap(9)for_each_cpu_and(9)for_each_cpu_andnot(9)for_each_cpu_or(9)for_each_cpu_from(9)cpumask_any_but(9)cpumask_any_and_but(9)cpumask_any_andnot_but(9)cpumask_nth(9)cpumask_nth_and(9)cpumask_nth_and_andnot(9)cpumask_set_cpu(9)cpumask_clear_cpus(9)cpumask_clear_cpu(9)cpumask_test_cpu(9)cpumask_test_and_set_cpu(9)cpumask_test_and_clear_cpu(9)cpumask_setall(9)cpumask_clear(9)cpumask_and(9)cpumask_or(9)cpumask_weighted_or(9)cpumask_xor(9)cpumask_andnot(9)cpumask_equal(9)cpumask_or_equal(9)cpumask_intersects(9)cpumask_subset(9)cpumask_empty(9)cpumask_full(9)cpumask_weight(9)cpumask_weight_and(9)cpumask_weight_andnot(9)cpumask_shift_right(9)cpumask_shift_left(9)cpumask_copy(9)cpumask_any(9)cpumask_any_and(9)cpumask_of(9)cpumask_parse_user(9)cpumask_parselist_user(9)cpumask_parse(9)cpulist_parse(9)cpumask_size(9)alloc_cpumask_var(9)to_cpumask(9)num_online_cpus(9)cpumap_print_bitmask_to_buf(9)cpumap_print_list_to_buf(9)
that's the whole page, bestie, you ate that π this lil drop came from ./include/linux and is dated October 2026 β so like, mark your calendar, this manual is lowkey from the future π
β¨ bye ily π§π
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms