Lines Matching defs:primes
11 struct primes {
14 unsigned long primes[];
18 static const struct primes small_primes = {
21 .primes = {
43 static const struct primes small_primes = {
46 .primes = {
65 static const struct primes __rcu *primes = RCU_INITIALIZER(&small_primes);
111 const struct primes *p;
112 struct primes *new;
134 p = rcu_dereference_protected(primes, lockdep_is_held(&lock));
140 /* Where memory permits, track the primes using the
142 * primes from the set, what remains in the set is therefore prime.
144 bitmap_fill(new->primes, sz);
145 bitmap_copy(new->primes, p->primes, p->sz);
146 for (y = 2UL; y < sz; y = find_next_bit(new->primes, sz, y + 1))
147 new->last = clear_multiples(y, new->primes, p->sz, sz);
152 rcu_assign_pointer(primes, new);
154 kfree_rcu((struct primes *)p, rcu);
163 const struct primes *p;
166 p = rcu_dereference_protected(primes, lockdep_is_held(&lock));
168 rcu_assign_pointer(primes, &small_primes);
169 kfree_rcu((struct primes *)p, rcu);
190 const struct primes *p;
193 p = rcu_dereference(primes);
201 p = rcu_dereference(primes);
203 x = find_next_bit(p->primes, p->last, x + 1);
216 * searching for sequential primes, see next_prime_number()), but if the number
223 const struct primes *p;
227 p = rcu_dereference(primes);
235 p = rcu_dereference(primes);
237 result = test_bit(x, p->primes);
246 const struct primes *p;
252 p = rcu_dereference(primes);
255 bitmap_print_to_pagebuf(true, buf, p->primes, p->sz);
256 pr_info("primes.{last=%lu, .sz=%lu, .primes[]=...x%lx} = %s\n",
257 p->last, p->sz, p->primes[BITS_TO_LONGS(p->sz) - 1], buf);