Lines Matching defs:qpt
44 static inline unsigned mk_qpn(struct rvt_qpn_table *qpt,
47 return (map - qpt->map) * RVT_BITS_PER_PAGE + off;
50 static inline unsigned find_next_offset(struct rvt_qpn_table *qpt,
107 static void get_map_page(struct rvt_qpn_table *qpt, struct rvt_qpn_map *map)
115 spin_lock(&qpt->lock);
120 spin_unlock(&qpt->lock);
127 int qib_alloc_qpn(struct rvt_dev_info *rdi, struct rvt_qpn_table *qpt,
143 spin_lock(&qpt->lock);
144 if (qpt->flags & n)
147 qpt->flags |= n;
148 spin_unlock(&qpt->lock);
152 qpn = qpt->last + 2;
158 map = &qpt->map[qpn / RVT_BITS_PER_PAGE];
159 max_scan = qpt->nmaps - !offset;
162 get_map_page(qpt, map);
168 qpt->last = qpn;
172 offset = find_next_offset(qpt, map, offset,
174 qpn = mk_qpn(qpt, map, offset);
190 if (qpt->nmaps == RVT_QPNMAP_ENTRIES)
192 map = &qpt->map[qpt->nmaps++];
194 } else if (map < &qpt->map[qpt->nmaps]) {
198 map = &qpt->map[0];
201 qpn = mk_qpn(qpt, map, offset);