Lines Matching defs:map
266 struct rvt_qpn_map *map)
275 if (map->page)
278 map->page = (void *)page;
290 struct rvt_qpn_map *map;
314 /* Starting with the first reserved bit map */
315 map = &qpt->map[qpt->nmaps];
320 if (!map->page) {
321 get_map_page(qpt, map);
322 if (!map->page) {
327 set_bit(offset, map->page);
332 map++;
347 for (i = 0; i < ARRAY_SIZE(qpt->map); i++)
348 free_page((unsigned long)qpt->map[i].page);
397 /* initialize qpn map */
474 struct rvt_qpn_map *map, unsigned off)
476 return (map - qpt->map) * RVT_BITS_PER_PAGE + off;
494 struct rvt_qpn_map *map;
521 map = &qpt->map[qpn / RVT_BITS_PER_PAGE];
524 if (unlikely(!map->page)) {
525 get_map_page(qpt, map);
526 if (unlikely(!map->page))
530 if (!test_and_set_bit(offset, map->page)) {
540 qpn = mk_qpn(qpt, map, offset);
550 map = &qpt->map[qpt->nmaps++];
553 } else if (map < &qpt->map[qpt->nmaps]) {
554 ++map;
558 map = &qpt->map[0];
559 /* wrap to first map page, invert bit 0 */
565 qpn = mk_qpn(qpt, map, offset);
944 * rvt_free_qpn - Free a qpn from the bit map
950 struct rvt_qpn_map *map;
955 map = qpt->map + (qpn & RVT_QPN_MASK) / RVT_BITS_PER_PAGE;
956 if (map->page)
957 clear_bit(qpn & RVT_BITS_PER_PAGE_MASK, map->page);