Lines Matching refs:mrd

82 		    struct mem_range_desc *mrd, int *arg);
100 struct mem_range_desc *mrd);
110 struct mem_range_desc *mrd, int *arg);
112 struct mem_range_desc *mrd, int *arg);
158 mem_range_match(struct mem_range_softc *sc, struct mem_range_desc *mrd)
164 if ((cand->mr_base == mrd->mr_base) &&
165 (cand->mr_len == mrd->mr_len))
182 struct mem_range_desc *mrd;
186 mrd = sc->mr_desc + i;
187 for (; i < sc->mr_ndesc; i++, mrd++) {
188 if ((mrd->mr_flags & (MDF_ACTIVE | MDF_BOGUS)) == MDF_ACTIVE)
189 pmap_demote_DMAP(mrd->mr_base, mrd->mr_len, TRUE);
203 struct mem_range_desc *mrd;
207 mrd = sc->mr_desc;
214 for (j = 0; j < 8; j++, mrd++) {
215 mrd->mr_flags =
216 (mrd->mr_flags & ~MDF_ATTRMASK) |
218 if (mrd->mr_owner[0] == 0)
219 strcpy(mrd->mr_owner, mem_owner_bios);
226 for (j = 0; j < 8; j++, mrd++) {
227 mrd->mr_flags =
228 (mrd->mr_flags & ~MDF_ATTRMASK) |
230 if (mrd->mr_owner[0] == 0)
231 strcpy(mrd->mr_owner, mem_owner_bios);
238 for (j = 0; j < 8; j++, mrd++) {
239 mrd->mr_flags =
240 (mrd->mr_flags & ~MDF_ATTRMASK) |
242 if (mrd->mr_owner[0] == 0)
243 strcpy(mrd->mr_owner, mem_owner_bios);
251 for (; mrd - sc->mr_desc < sc->mr_ndesc; msr += 2, mrd++) {
253 mrd->mr_flags = (mrd->mr_flags & ~MDF_ATTRMASK) |
255 mrd->mr_base = msrv & mtrr_physmask;
257 mrd->mr_flags = (msrv & MTRR_PHYSMASK_VALID) ?
258 (mrd->mr_flags | MDF_ACTIVE) :
259 (mrd->mr_flags & ~MDF_ACTIVE);
262 mrd->mr_len = (~(msrv & mtrr_physmask) &
264 if (!mrvalid(mrd->mr_base, mrd->mr_len))
265 mrd->mr_flags |= MDF_BOGUS;
268 if ((mrd->mr_flags & MDF_ACTIVE) && (mrd->mr_owner[0] == 0))
269 strcpy(mrd->mr_owner, mem_owner_bios);
324 struct mem_range_desc *mrd;
329 mrd = sc->mr_desc;
356 msrv |= x86_mrt2mtrr((mrd + j)->mr_flags,
360 mrd += 8;
368 msrv |= x86_mrt2mtrr((mrd + j)->mr_flags,
372 mrd += 8;
380 msrv |= x86_mrt2mtrr((mrd + j)->mr_flags,
384 mrd += 8;
390 for (; mrd - sc->mr_desc < sc->mr_ndesc; msr += 2, mrd++) {
393 if (mrd->mr_flags & MDF_ACTIVE) {
394 msrv = mrd->mr_base & mtrr_physmask;
395 msrv |= x86_mrt2mtrr(mrd->mr_flags, omsrv);
402 if (mrd->mr_flags & MDF_ACTIVE) {
404 rounddown2(mtrr_physmask, mrd->mr_len);
431 struct mem_range_desc *mrd;
434 for (i = 0, mrd = sc->mr_desc; i < MTRR_N64K + MTRR_N16K + MTRR_N4K;
435 i++, mrd++)
436 if (addr >= mrd->mr_base &&
437 addr < mrd->mr_base + mrd->mr_len)
438 return (mrd);
454 x86_mrsetlow(struct mem_range_softc *sc, struct mem_range_desc *mrd, int *arg)
459 if ((first_md = x86_mtrrfixsearch(sc, mrd->mr_base)) == NULL ||
460 (last_md = x86_mtrrfixsearch(sc, mrd->mr_base + mrd->mr_len - 1))
465 if ((mrd->mr_flags & MDF_FORCE) == 0) {
475 ~MDF_FIRMWARE, mrd->mr_flags);
476 bcopy(mrd->mr_owner, curr_md->mr_owner, sizeof(mrd->mr_owner));
488 x86_mrsetvariable(struct mem_range_softc *sc, struct mem_range_desc *mrd,
508 if (curr_md->mr_base == mrd->mr_base &&
509 curr_md->mr_len == mrd->mr_len) {
516 if (!(mrd->mr_flags & MDF_FORCE) &&
527 if (mroverlap(curr_md, mrd)) {
530 mrd->mr_flags))
543 free_md->mr_base = mrd->mr_base;
544 free_md->mr_len = mrd->mr_len;
545 free_md->mr_flags = mrcopyflags(MDF_ACTIVE, mrd->mr_flags);
546 bcopy(mrd->mr_owner, free_md->mr_owner, sizeof(mrd->mr_owner));
554 x86_mrset(struct mem_range_softc *sc, struct mem_range_desc *mrd, int *arg)
565 if (!mrvalid(mrd->mr_base, mrd->mr_len) ||
566 x86_mtrrtype(mrd->mr_flags) == -1)
574 mrd->mr_base + mrd->mr_len <= FIXTOP) {
575 if ((error = x86_mrsetlow(sc, mrd, arg)) != 0)
579 if ((error = x86_mrsetvariable(sc, mrd, arg)) != 0)
585 if ((targ = mem_range_match(sc, mrd)) == NULL)
616 struct mem_range_desc *mrd;
654 mrd = sc->mr_desc;
658 for (i = 0; i < MTRR_N64K; i++, mrd++) {
659 mrd->mr_base = i * 0x10000;
660 mrd->mr_len = 0x10000;
661 mrd->mr_flags = MDF_FIXBASE | MDF_FIXLEN |
664 for (i = 0; i < MTRR_N16K; i++, mrd++) {
665 mrd->mr_base = i * 0x4000 + 0x80000;
666 mrd->mr_len = 0x4000;
667 mrd->mr_flags = MDF_FIXBASE | MDF_FIXLEN |
670 for (i = 0; i < MTRR_N4K; i++, mrd++) {
671 mrd->mr_base = i * 0x1000 + 0xc0000;
672 mrd->mr_len = 0x1000;
673 mrd->mr_flags = MDF_FIXBASE | MDF_FIXLEN |
684 mrd = sc->mr_desc;
685 for (i = 0; i < sc->mr_ndesc; i++, mrd++) {
686 if (mrd->mr_flags & MDF_ACTIVE)
687 mrd->mr_flags |= MDF_FIRMWARE;