Lines Matching refs:hrm

67 #define	hrm_match(hrm, as, addr) \  argument
68 (((hrm)->hrm_as == (as) && \
69 ((hrm)->hrm_base == ((uintptr_t)(addr) & HRM_BASEMASK))) ? 1 : 0)
151 struct hrmstat *hrm; in hat_setstat() local
169 for (hrm = hrm_hashtab[h]; hrm; hrm = hrm->hrm_hnext) { in hat_setstat()
170 if (hrm_match(hrm, as, addr)) { in hat_setstat()
171 hrm_setbits(hrm, addr, rmbits); in hat_setstat()
172 vbits |= hrm->hrm_id; in hat_setstat()
186 hrm = (struct hrmstat *)hrm_balloc(); in hat_setstat()
187 if (hrm == NULL) { in hat_setstat()
193 hrm->hrm_as = as; in hat_setstat()
194 hrm->hrm_base = (uintptr_t)addr & HRM_BASEMASK; in hat_setstat()
195 hrm->hrm_id = nb; in hat_setstat()
196 hrm_link(hrm); in hat_setstat()
197 hrm_setbits(hrm, addr, rmbits); in hat_setstat()
212 struct hrmstat *hrm; in hat_freestat() local
224 if ((hrm = as->a_hrm) == NULL) { in hat_freestat()
232 for (prev_ahrm = NULL; hrm; hrm = hrm->hrm_anext) { in hat_freestat()
233 if ((id == hrm->hrm_id) || (id == NULL)) { in hat_freestat()
235 hrm_hashout(hrm); in hat_freestat()
236 hrm->hrm_hnext = hrm_blist; in hat_freestat()
237 hrm_blist = hrm; in hat_freestat()
241 as->a_hrm = hrm->hrm_anext; in hat_freestat()
243 prev_ahrm->hrm_anext = hrm->hrm_anext; in hat_freestat()
246 prev_ahrm = hrm; in hat_freestat()
283 struct hrmstat *hrm, *l; in hrm_getblk() local
307 hrm = kmem_zalloc(sizeof (struct hrmstat) * hrm_incr, KM_SLEEP); in hrm_getblk()
308 hrm->hrm_base = sizeof (struct hrmstat) * hrm_incr; in hrm_getblk()
316 hrm->hrm_hnext = hrm_memlist; in hrm_getblk()
317 hrm_memlist = hrm; in hrm_getblk()
321 l = &hrm[i]; in hrm_getblk()
331 hrm_hashin(struct hrmstat *hrm) in hrm_hashin() argument
336 h = hrm_hash(hrm->hrm_as, hrm->hrm_base); in hrm_hashin()
338 hrm->hrm_hnext = hrm_hashtab[h]; in hrm_hashin()
339 hrm_hashtab[h] = hrm; in hrm_hashin()
343 hrm_hashout(struct hrmstat *hrm) in hrm_hashout() argument
349 h = hrm_hash(hrm->hrm_as, hrm->hrm_base); in hrm_hashout()
354 if (list == hrm) { in hrm_hashout()
369 hrm_link(struct hrmstat *hrm) in hrm_link() argument
371 struct as *as = hrm->hrm_as; in hrm_link()
374 hrm->hrm_anext = as->a_hrm; in hrm_link()
375 as->a_hrm = hrm; in hrm_link()
376 hrm_hashin(hrm); in hrm_link()
386 struct hrmstat *hrm; in hrm_balloc() local
390 hrm = hrm_blist; in hrm_balloc()
391 if (hrm != NULL) { in hrm_balloc()
392 hrm_blist = hrm->hrm_hnext; in hrm_balloc()
394 hrm->hrm_hnext = NULL; in hrm_balloc()
396 return (hrm); in hrm_balloc()
403 hrm_setbits(struct hrmstat *hrm, caddr_t addr, uint_t bits) in hrm_setbits() argument
412 hrm->hrm_bits[bo] |= nbits; in hrm_setbits()
455 struct hrmstat *hrm; in hat_getstat() local
467 for (hrm = hrm_hashtab[h]; hrm; hrm = hrm->hrm_hnext) { in hat_getstat()
468 if (hrm->hrm_as == as && in hat_getstat()
469 hrm->hrm_base == ((uintptr_t)a & HRM_BASEMASK) && in hat_getstat()
470 id == hrm->hrm_id) { in hat_getstat()
481 *dp++ |= (hrm->hrm_bits[bo] >> spb) & 3; in hat_getstat()
483 hrm->hrm_bits[bo] &= ~(3<<spb); in hat_getstat()
493 int bits = hrm->hrm_bits[bo]; in hat_getstat()
499 hrm->hrm_bits[bo] = 0; in hat_getstat()
510 *dp++ |= (hrm->hrm_bits[bo] >> spb) & 3; in hat_getstat()
512 hrm->hrm_bits[bo] &= ~(3<<spb); in hat_getstat()
520 if (hrm == NULL) in hat_getstat()