• Home
  • Raw
  • Download

Lines Matching +full:- +full:n1

20 	const ebitmap_node_t *n1, *n2;  in ebitmap_or()  local
25 prev = &dst->node; in ebitmap_or()
26 n1 = e1->node; in ebitmap_or()
27 n2 = e2->node; in ebitmap_or()
28 while (n1 || n2) { in ebitmap_or()
32 return -ENOMEM; in ebitmap_or()
34 if (n1 && n2 && n1->startbit == n2->startbit) { in ebitmap_or()
35 new->startbit = n1->startbit; in ebitmap_or()
36 new->map = n1->map | n2->map; in ebitmap_or()
37 n1 = n1->next; in ebitmap_or()
38 n2 = n2->next; in ebitmap_or()
39 } else if (!n2 || (n1 && n1->startbit < n2->startbit)) { in ebitmap_or()
40 new->startbit = n1->startbit; in ebitmap_or()
41 new->map = n1->map; in ebitmap_or()
42 n1 = n1->next; in ebitmap_or()
44 new->startbit = n2->startbit; in ebitmap_or()
45 new->map = n2->map; in ebitmap_or()
46 n2 = n2->next; in ebitmap_or()
49 new->next = NULL; in ebitmap_or()
52 prev = &new->next; in ebitmap_or()
55 dst->highbit = (e1->highbit > e2->highbit) ? e1->highbit : e2->highbit; in ebitmap_or()
64 return -1; in ebitmap_union()
66 dst->node = tmp.node; in ebitmap_union()
67 dst->highbit = tmp.highbit; in ebitmap_union()
74 const ebitmap_node_t *n1, *n2; in ebitmap_and() local
79 prev = &dst->node; in ebitmap_and()
80 n1 = e1->node; in ebitmap_and()
81 n2 = e2->node; in ebitmap_and()
82 while (n1 && n2) { in ebitmap_and()
83 if (n1->startbit == n2->startbit) { in ebitmap_and()
84 if (n1->map & n2->map) { in ebitmap_and()
88 return -ENOMEM; in ebitmap_and()
90 new->startbit = n1->startbit; in ebitmap_and()
91 new->map = n1->map & n2->map; in ebitmap_and()
92 new->next = NULL; in ebitmap_and()
95 prev = &new->next; in ebitmap_and()
98 n1 = n1->next; in ebitmap_and()
99 n2 = n2->next; in ebitmap_and()
100 } else if (n1->startbit > n2->startbit) { in ebitmap_and()
101 n2 = n2->next; in ebitmap_and()
103 n1 = n1->next; in ebitmap_and()
108 dst->highbit = new->startbit + MAPSIZE; in ebitmap_and()
115 const ebitmap_node_t *n1, *n2; in ebitmap_xor() local
122 prev = &dst->node; in ebitmap_xor()
123 n1 = e1->node; in ebitmap_xor()
124 n2 = e2->node; in ebitmap_xor()
125 while (n1 || n2) { in ebitmap_xor()
126 if (n1 && n2 && n1->startbit == n2->startbit) { in ebitmap_xor()
127 startbit = n1->startbit; in ebitmap_xor()
128 map = n1->map ^ n2->map; in ebitmap_xor()
129 n1 = n1->next; in ebitmap_xor()
130 n2 = n2->next; in ebitmap_xor()
131 } else if (!n2 || (n1 && n1->startbit < n2->startbit)) { in ebitmap_xor()
132 startbit = n1->startbit; in ebitmap_xor()
133 map = n1->map; in ebitmap_xor()
134 n1 = n1->next; in ebitmap_xor()
136 startbit = n2->startbit; in ebitmap_xor()
137 map = n2->map; in ebitmap_xor()
138 n2 = n2->next; in ebitmap_xor()
145 return -ENOMEM; in ebitmap_xor()
147 new->startbit = startbit; in ebitmap_xor()
148 new->map = map; in ebitmap_xor()
149 new->next = NULL; in ebitmap_xor()
152 prev = &new->next; in ebitmap_xor()
157 dst->highbit = new->startbit + MAPSIZE; in ebitmap_xor()
171 prev = &dst->node; in ebitmap_not()
172 n = e1->node; in ebitmap_not()
174 if (n && n->startbit == cur_startbit) { in ebitmap_not()
175 startbit = n->startbit; in ebitmap_not()
176 map = ~n->map; in ebitmap_not()
178 n = n->next; in ebitmap_not()
184 if (maxbit - cur_startbit < MAPSIZE) in ebitmap_not()
185 map &= (((MAPTYPE)1) << (maxbit - cur_startbit)) - 1; in ebitmap_not()
191 return -ENOMEM; in ebitmap_not()
194 new->startbit = startbit; in ebitmap_not()
195 new->map = map; in ebitmap_not()
196 new->next = NULL; in ebitmap_not()
199 prev = &new->next; in ebitmap_not()
204 dst->highbit = new->startbit + MAPSIZE; in ebitmap_not()
229 for (n = e1->node; n; n = n->next) { in ebitmap_cardinality()
230 count += __builtin_popcountll(n->map); in ebitmap_cardinality()
244 return -1; in ebitmap_hamming_distance()
252 const ebitmap_node_t *n1, *n2; in ebitmap_cmp() local
254 if (e1->highbit != e2->highbit) in ebitmap_cmp()
257 n1 = e1->node; in ebitmap_cmp()
258 n2 = e2->node; in ebitmap_cmp()
259 while (n1 && n2 && in ebitmap_cmp()
260 (n1->startbit == n2->startbit) && (n1->map == n2->map)) { in ebitmap_cmp()
261 n1 = n1->next; in ebitmap_cmp()
262 n2 = n2->next; in ebitmap_cmp()
265 if (n1 || n2) in ebitmap_cmp()
277 n = src->node; in ebitmap_cpy()
278 prev = &dst->node; in ebitmap_cpy()
283 return -ENOMEM; in ebitmap_cpy()
285 new->startbit = n->startbit; in ebitmap_cpy()
286 new->map = n->map; in ebitmap_cpy()
287 new->next = NULL; in ebitmap_cpy()
290 prev = &new->next; in ebitmap_cpy()
292 n = n->next; in ebitmap_cpy()
295 dst->highbit = src->highbit; in ebitmap_cpy()
301 const ebitmap_node_t *n1, *n2; in ebitmap_contains() local
303 if (e1->highbit < e2->highbit) in ebitmap_contains()
306 n1 = e1->node; in ebitmap_contains()
307 n2 = e2->node; in ebitmap_contains()
308 while (n1 && n2 && (n1->startbit <= n2->startbit)) { in ebitmap_contains()
309 if (n1->startbit < n2->startbit) { in ebitmap_contains()
310 n1 = n1->next; in ebitmap_contains()
313 if ((n1->map & n2->map) != n2->map) in ebitmap_contains()
316 n1 = n1->next; in ebitmap_contains()
317 n2 = n2->next; in ebitmap_contains()
328 const ebitmap_node_t *n1 = e1->node; in ebitmap_match_any() local
329 const ebitmap_node_t *n2 = e2->node; in ebitmap_match_any()
331 while (n1 && n2) { in ebitmap_match_any()
332 if (n1->startbit < n2->startbit) { in ebitmap_match_any()
333 n1 = n1->next; in ebitmap_match_any()
334 } else if (n2->startbit < n1->startbit) { in ebitmap_match_any()
335 n2 = n2->next; in ebitmap_match_any()
337 if (n1->map & n2->map) { in ebitmap_match_any()
340 n1 = n1->next; in ebitmap_match_any()
341 n2 = n2->next; in ebitmap_match_any()
352 if (e->highbit < bit) in ebitmap_get_bit()
355 n = e->node; in ebitmap_get_bit()
356 while (n && (n->startbit <= bit)) { in ebitmap_get_bit()
357 if ((n->startbit + MAPSIZE) > bit) { in ebitmap_get_bit()
358 if (n->map & (MAPBIT << (bit - n->startbit))) in ebitmap_get_bit()
363 n = n->next; in ebitmap_get_bit()
372 uint32_t startbit = bit & ~(MAPSIZE - 1); in ebitmap_set_bit()
377 return -EINVAL; in ebitmap_set_bit()
381 n = e->node; in ebitmap_set_bit()
382 while (n && n->startbit <= bit) { in ebitmap_set_bit()
383 if ((n->startbit + MAPSIZE) > bit) { in ebitmap_set_bit()
385 n->map |= (MAPBIT << (bit - n->startbit)); in ebitmap_set_bit()
387 n->map &= ~(MAPBIT << (bit - n->startbit)); in ebitmap_set_bit()
388 if (!n->map) { in ebitmap_set_bit()
391 if (!n->next) { in ebitmap_set_bit()
397 e->highbit = in ebitmap_set_bit()
398 prev->startbit + in ebitmap_set_bit()
401 e->highbit = 0; in ebitmap_set_bit()
404 prev->next = n->next; in ebitmap_set_bit()
406 e->node = n->next; in ebitmap_set_bit()
414 n = n->next; in ebitmap_set_bit()
422 return -ENOMEM; in ebitmap_set_bit()
424 new->startbit = startbit; in ebitmap_set_bit()
425 new->map = (MAPBIT << (bit - new->startbit)); in ebitmap_set_bit()
429 e->highbit = highbit; in ebitmap_set_bit()
433 new->next = prev->next; in ebitmap_set_bit()
434 prev->next = new; in ebitmap_set_bit()
436 new->next = e->node; in ebitmap_set_bit()
437 e->node = new; in ebitmap_set_bit()
446 uint32_t minstartbit = minbit & ~(MAPSIZE - 1); in ebitmap_init_range()
447 uint32_t maxstartbit = maxbit & ~(MAPSIZE - 1); in ebitmap_init_range()
456 return -EINVAL; in ebitmap_init_range()
459 return -EOVERFLOW; in ebitmap_init_range()
461 prev = &e->node; in ebitmap_init_range()
466 return -ENOMEM; in ebitmap_init_range()
468 new->next = NULL; in ebitmap_init_range()
469 new->startbit = startbit; in ebitmap_init_range()
472 new->map = ~((MAPTYPE)0); in ebitmap_init_range()
474 new->map = ~((MAPTYPE)0) << (minbit - startbit); in ebitmap_init_range()
476 new->map = ~((MAPTYPE)0) >> (MAPSIZE - (maxbit - startbit + 1)); in ebitmap_init_range()
478 mask = ~((MAPTYPE)0) >> (MAPSIZE - (maxbit - minbit + 1)); in ebitmap_init_range()
479 new->map = (mask << (minbit - startbit)); in ebitmap_init_range()
483 prev = &new->next; in ebitmap_init_range()
486 e->highbit = maxhighbit; in ebitmap_init_range()
497 n = e->node; in ebitmap_highest_set_bit()
501 while (n->next) in ebitmap_highest_set_bit()
502 n = n->next; in ebitmap_highest_set_bit()
504 map = n->map; in ebitmap_highest_set_bit()
508 return n->startbit + pos; in ebitmap_highest_set_bit()
518 n = e->node; in ebitmap_destroy()
521 n = n->next; in ebitmap_destroy()
525 e->highbit = 0; in ebitmap_destroy()
526 e->node = 0; in ebitmap_destroy()
544 e->highbit = le32_to_cpu(buf[1]); in ebitmap_read()
549 mapsize, MAPSIZE, e->highbit); in ebitmap_read()
552 if (!e->highbit) { in ebitmap_read()
553 e->node = NULL; in ebitmap_read()
556 if (e->highbit & (MAPSIZE - 1)) { in ebitmap_read()
558 e->highbit, MAPSIZE); in ebitmap_read()
562 if (e->highbit && !count) in ebitmap_read()
575 rc = -ENOMEM; in ebitmap_read()
580 n->startbit = le32_to_cpu(buf[0]); in ebitmap_read()
582 if (n->startbit & (MAPSIZE - 1)) { in ebitmap_read()
584 n->startbit, MAPSIZE); in ebitmap_read()
587 if (n->startbit > (e->highbit - MAPSIZE)) { in ebitmap_read()
589 n->startbit, (e->highbit - MAPSIZE)); in ebitmap_read()
597 n->map = le64_to_cpu(map); in ebitmap_read()
599 if (!n->map) { in ebitmap_read()
601 n->startbit); in ebitmap_read()
605 if (n->startbit <= l->startbit) { in ebitmap_read()
607 n->startbit, l->startbit); in ebitmap_read()
610 l->next = n; in ebitmap_read()
612 e->node = n; in ebitmap_read()
616 if (count && l->startbit + MAPSIZE != e->highbit) { in ebitmap_read()
618 e->highbit, l->startbit + MAPSIZE); in ebitmap_read()
630 rc = -EINVAL; in ebitmap_read()