Lines Matching defs:mtrrp
353 struct mtrr *mtrrp;
357 mtrrp = &mtrr_var[i];
358 memset(mtrrp, 0, sizeof *mtrrp);
363 mtrrp->base = mtrr_base(base);
364 mtrrp->type = mtrr_type(base);
365 mtrrp->len = mtrr_len(mask);
366 mtrrp->flags |= MTRR_VALID;
374 mtrrp = &mtrr_fixed[idx * 8 + j];
375 mtrrp->owner = 0;
376 mtrrp->flags = MTRR_FIXED | MTRR_VALID;
377 mtrrp->base = base;
378 mtrrp->len = 65536;
379 mtrrp->type = mask & 0xff;
388 mtrrp = &mtrr_fixed[idx * 8 + j];
389 mtrrp->owner = 0;
390 mtrrp->flags = MTRR_FIXED | MTRR_VALID;
391 mtrrp->base = base;
392 mtrrp->len = 16384;
393 mtrrp->type = mask & 0xff;
402 mtrrp = &mtrr_fixed[idx * 8 + j];
403 mtrrp->owner = 0;
404 mtrrp->flags = MTRR_FIXED | MTRR_VALID;
405 mtrrp->base = base;
406 mtrrp->len = 4096;
407 mtrrp->type = mask & 0xff;
419 struct mtrr *mtrrp;
422 mtrrp = &mtrr_var[i];
423 mtrr_var_raw[i * 2].msrval = mtrr_base_value(mtrrp);
424 mtrr_var_raw[i * 2 + 1].msrval = mtrr_mask_value(mtrrp);
425 if (mtrrp->flags & MTRR_VALID)
433 mtrrp = &mtrr_fixed[idx * 8 + j];
434 val |= ((uint64_t)mtrrp->type << (j << 3));
442 mtrrp = &mtrr_fixed[idx * 8 + j];
443 val |= ((uint64_t)mtrrp->type << (j << 3));
451 mtrrp = &mtrr_fixed[idx * 8 + j];
452 val |= ((uint64_t)mtrrp->type << (j << 3));
468 i686_mtrr_validate(struct mtrr *mtrrp, struct proc *p)
475 if (mtrrp->base & 0xfff || mtrrp->len & 0xfff || mtrrp->len == 0)
481 if (p == NULL && (mtrrp->flags & MTRR_PRIVATE))
484 high = mtrrp->base + mtrrp->len;
489 if ((mtrrp->type == MTRR_TYPE_UNDEF1 || mtrrp->type == MTRR_TYPE_UNDEF2
490 || mtrrp->type > MTRR_TYPE_WB) && (mtrrp->flags & MTRR_VALID))
497 if (mtrrp->type == MTRR_TYPE_WC &&
504 if ((mtrrp->flags & MTRR_FIXED) && high > 0x100000)
512 if (mtrrp->flags & MTRR_FIXED) {
513 if (mtrrp->base < MTRR_I686_16K_START) {
514 if ((mtrrp->base & 0xffff) != 0)
516 } else if (mtrrp->base < MTRR_I686_4K_START) {
517 if ((mtrrp->base & 0x3fff) != 0)
520 if ((mtrrp->base & 0xfff) != 0)
545 i686_mtrr_setone(struct mtrr *mtrrp, struct proc *p)
555 if (mtrrp->flags & MTRR_FIXED ||
556 (mtrrp->base + mtrrp->len) <= 0x100000) {
559 if (mtrr_fixed[i].base == mtrrp->base + mtrrp->len) {
563 if (mtrr_fixed[i].base == mtrrp->base) {
569 if ((mtrrp->base + mtrrp->len) == 0x100000) {
590 if (mtrrp->flags & MTRR_FIXED)
600 if (!(mtrrp->flags & MTRR_VALID)) {
604 mp->type = mtrrp->type;
605 if (mtrrp->flags & MTRR_PRIVATE) {
623 low = mtrrp->base;
624 high = low + mtrrp->len - 1;
635 ((mtrrp->flags & MTRR_PRIVATE) && (p != NULL) &&
642 (i686_mtrr_conflict(mtrr_var[i].type, mtrrp->type) ||
644 (!(mtrrp->flags & MTRR_PRIVATE) || (p == NULL) ||
651 mtrrp->flags &= ~MTRR_CANTSET;
652 *freep = *mtrrp;
653 freep->owner = (mtrrp->flags & MTRR_PRIVATE) ? p->p_pid : 0;
690 i686_mtrr_set(struct mtrr *mtrrp, int *n, struct proc *p, int flags)
703 error = copyin(&mtrrp[i], &mtrr, sizeof mtrr);
707 mtrr = mtrrp[i];
722 i686_mtrr_get(struct mtrr *mtrrp, int *n, struct proc *p, int flags)
726 if (mtrrp == NULL) {
735 error = copyout(&mtrr_fixed[i], &mtrrp[idx],
736 sizeof *mtrrp);
740 memcpy(&mtrrp[idx], &mtrr_fixed[i], sizeof *mtrrp);
749 error = copyout(&mtrr_var[i], &mtrrp[idx],
750 sizeof *mtrrp);
754 memcpy(&mtrrp[idx], &mtrr_var[i], sizeof *mtrrp);