Lines Matching refs:map
56 struct pidmap *map, int off) in mk_pid() argument
58 return (map - pid_ns->pidmap)*BITS_PER_PAGE + off; in mk_pid()
61 #define find_next_offset(map, off) \ argument
62 find_next_zero_bit((map)->page, BITS_PER_PAGE, off)
108 struct pidmap *map = upid->ns->pidmap + nr / BITS_PER_PAGE; in free_pidmap() local
111 clear_bit(offset, map->page); in free_pidmap()
112 atomic_inc(&map->nr_free); in free_pidmap()
157 struct pidmap *map; in alloc_pidmap() local
163 map = &pid_ns->pidmap[pid/BITS_PER_PAGE]; in alloc_pidmap()
171 if (unlikely(!map->page)) { in alloc_pidmap()
178 if (!map->page) { in alloc_pidmap()
179 map->page = page; in alloc_pidmap()
184 if (unlikely(!map->page)) in alloc_pidmap()
187 if (likely(atomic_read(&map->nr_free))) { in alloc_pidmap()
189 if (!test_and_set_bit(offset, map->page)) { in alloc_pidmap()
190 atomic_dec(&map->nr_free); in alloc_pidmap()
194 offset = find_next_offset(map, offset); in alloc_pidmap()
197 pid = mk_pid(pid_ns, map, offset); in alloc_pidmap()
202 if (map < &pid_ns->pidmap[(pid_max-1)/BITS_PER_PAGE]) { in alloc_pidmap()
203 ++map; in alloc_pidmap()
206 map = &pid_ns->pidmap[0]; in alloc_pidmap()
211 pid = mk_pid(pid_ns, map, offset); in alloc_pidmap()
219 struct pidmap *map, *end; in next_pidmap() local
225 map = &pid_ns->pidmap[(last + 1)/BITS_PER_PAGE]; in next_pidmap()
227 for (; map < end; map++, offset = 0) { in next_pidmap()
228 if (unlikely(!map->page)) in next_pidmap()
230 offset = find_next_bit((map)->page, BITS_PER_PAGE, offset); in next_pidmap()
232 return mk_pid(pid_ns, map, offset); in next_pidmap()