6 template<unsigned MAX_NUM_CPUS>
10 enum { Max_num_cpus = MAX_NUM_CPUS };
11 enum class Init { Bss };
13 Cpu_mask_t() { _b.clear_all(); }
15 Cpu_mask_t(Cpu_mask_t const &) = default;
16 Cpu_mask_t &operator = (Cpu_mask_t const &) = default;
18 bool empty() const { return _b.is_empty(); }
19 bool get(unsigned cpu) const { return _b[cpu]; }
20 void clear(unsigned cpu) { return _b.clear_bit(cpu); }
21 void set(unsigned cpu) { _b.set_bit(cpu); };
22 void atomic_set(unsigned cpu) {_b.atomic_set_bit(cpu); }
23 void atomic_clear(unsigned cpu) {_b.atomic_clear_bit(cpu); }
24 bool atomic_get_and_clear(unsigned cpu)
25 { return _b.atomic_get_and_clear(cpu); }
28 Bitmap<Max_num_cpus> _b;
31 typedef Cpu_mask_t<Config::Max_num_cpus> Cpu_mask;