mem_range_softc
if (sleep_result == 1 && mem_range_softc.mr_op != NULL &&
mem_range_softc.mr_op->reinit != NULL)
mem_range_softc.mr_op->reinit(&mem_range_softc);
struct mem_range_softc mem_range_softc;
if (mem_range_softc.mr_op == NULL)
if (mem_range_softc.mr_ndesc == 0)
nd = imin(mo->mo_arg[0], mem_range_softc.mr_ndesc);
nd = mem_range_softc.mr_ndesc;
struct mem_range_softc mem_range_softc;
struct mem_range_softc mem_range_softc;
if (mem_range_softc.mr_op == NULL)
mem_range_softc.mr_op->init(&mem_range_softc);
if (mem_range_softc.mr_op == NULL)
if (mem_range_softc.mr_op == NULL)
*arg = mem_range_softc.mr_ndesc;
bcopy(mem_range_softc.mr_desc, mrd, nd * sizeof(*mrd));
if (mem_range_softc.mr_op == NULL)
ret = mem_range_softc.mr_op->set(&mem_range_softc, mrd, arg);
if (sleep_result == 1 && mem_range_softc.mr_op != NULL &&
mem_range_softc.mr_op->reinit != NULL)
mem_range_softc.mr_op->reinit(&mem_range_softc);
k6_mrset(struct mem_range_softc *sc, struct mem_range_desc *desc, int *arg)
mem_range_softc.mr_op = &k6_mrops;
static void k6_mrinit(struct mem_range_softc *sc);
static int k6_mrset(struct mem_range_softc *, struct mem_range_desc *,
k6_mrinit(struct mem_range_softc *sc)
struct mem_range_softc mem_range_softc;
if (mem_range_softc.mr_op == NULL)
if (mem_range_softc.mr_ndesc == 0)
nd = imin(mo->mo_arg[0], mem_range_softc.mr_ndesc);
nd = mem_range_softc.mr_ndesc;
for (i = 0; i < mem_range_softc.mr_ndesc; i++) {
if (!(mem_range_softc.mr_desc[i].mr_flags & MDF_ACTIVE))
if (offset >= mem_range_softc.mr_desc[i].mr_base &&
offset < mem_range_softc.mr_desc[i].mr_base +
mem_range_softc.mr_desc[i].mr_len) {
switch (mem_range_softc.mr_desc[i].mr_flags &
ppc_mrinit(struct mem_range_softc *sc)
ppc_mrset(struct mem_range_softc *sc, struct mem_range_desc *desc, int *arg)
if (mem_range_softc.mr_op == NULL)
if (mem_range_softc.mr_ndesc == 0)
nd = imin(mo->mo_arg[0], mem_range_softc.mr_ndesc);
nd = mem_range_softc.mr_ndesc;
static void ppc_mrinit(struct mem_range_softc *);
static int ppc_mrset(struct mem_range_softc *, struct mem_range_desc *, int *);
struct mem_range_softc mem_range_softc = {
struct mem_range_softc mem_range_softc;
struct mem_range_softc;
void (*init)(struct mem_range_softc *sc);
int (*set)(struct mem_range_softc *sc, struct mem_range_desc *mrd, int *arg);
void (*initAP)(struct mem_range_softc *sc);
void (*reinit)(struct mem_range_softc *sc);
extern struct mem_range_softc mem_range_softc;
if (mem_range_softc.mr_op && mem_range_softc.mr_op->initAP)
mem_range_softc.mr_op->initAP(&mem_range_softc);
static void x86_mrstore(struct mem_range_softc *sc);
static struct mem_range_desc *x86_mtrrfixsearch(struct mem_range_softc *sc,
static int x86_mrsetlow(struct mem_range_softc *sc,
static int x86_mrsetvariable(struct mem_range_softc *sc,
mem_range_match(struct mem_range_softc *sc, struct mem_range_desc *mrd)
x86_mr_split_dmap(struct mem_range_softc *sc __unused)
x86_mrfetch(struct mem_range_softc *sc)
x86_mrstore(struct mem_range_softc *sc)
struct mem_range_softc *sc = arg;
x86_mtrrfixsearch(struct mem_range_softc *sc, u_int64_t addr)
x86_mrsetlow(struct mem_range_softc *sc, struct mem_range_desc *mrd, int *arg)
x86_mrsetvariable(struct mem_range_softc *sc, struct mem_range_desc *mrd,
x86_mrset(struct mem_range_softc *sc, struct mem_range_desc *mrd, int *arg)
x86_mrinit(struct mem_range_softc *sc)
x86_mrAPinit(struct mem_range_softc *sc)
x86_mrreinit(struct mem_range_softc *sc)
mem_range_softc.mr_op = &x86_mrops;
x86_mrinit(&mem_range_softc);
static void x86_mrinit(struct mem_range_softc *sc);
static int x86_mrset(struct mem_range_softc *sc,
static void x86_mrAPinit(struct mem_range_softc *sc);
static void x86_mrreinit(struct mem_range_softc *sc);
static struct mem_range_desc *mem_range_match(struct mem_range_softc *sc,
static void x86_mrfetch(struct mem_range_softc *sc);