Lines Matching refs:map
57 struct pidmap *map, int off)
59 return (map - pid_ns->pidmap)*BITS_PER_PAGE + off;
62 #define find_next_offset(map, off) \
63 find_next_zero_bit((map)->page, BITS_PER_PAGE, off)
66 * PID-map pages start out as NULL, they get allocated upon
118 struct pidmap *map = upid->ns->pidmap + nr / BITS_PER_PAGE;
121 clear_bit(offset, map->page);
122 atomic_inc(&map->nr_free);
165 struct pidmap *map;
171 map = &pid_ns->pidmap[pid/BITS_PER_PAGE];
173 * If last_pid points into the middle of the map->page we
179 if (unlikely(!map->page)) {
186 if (!map->page) {
187 map->page = page;
192 if (unlikely(!map->page))
195 if (likely(atomic_read(&map->nr_free))) {
197 if (!test_and_set_bit(offset, map->page)) {
198 atomic_dec(&map->nr_free);
202 offset = find_next_offset(map, offset);
203 pid = mk_pid(pid_ns, map, offset);
206 if (map < &pid_ns->pidmap[(pid_max-1)/BITS_PER_PAGE]) {
207 ++map;
210 map = &pid_ns->pidmap[0];
215 pid = mk_pid(pid_ns, map, offset);
223 struct pidmap *map, *end;
226 map = &pid_ns->pidmap[(last + 1)/BITS_PER_PAGE];
228 for (; map < end; map++, offset = 0) {
229 if (unlikely(!map->page))
231 offset = find_next_bit((map)->page, BITS_PER_PAGE, offset);
233 return mk_pid(pid_ns, map, offset);