diff options
| author | ragge <ragge@NetBSD.org> | 1998-03-02 17:00:00 +0000 |
|---|---|---|
| committer | ragge <ragge@NetBSD.org> | 1998-03-02 17:00:00 +0000 |
| commit | 8e2874bf645aaf361cbdf8b7e361efa6d5fba0f0 (patch) | |
| tree | 1c1c789bb9820c4519b11d1cff2fdf053b110266 /sys/dev | |
| parent | 699af7acdda82b61d89ffbcd262ad33add30d273 (diff) | |
Support for UVM on VAXen.
Diffstat (limited to 'sys/dev')
| -rw-r--r-- | sys/dev/dec/qbus/uba.c | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/sys/dev/dec/qbus/uba.c b/sys/dev/dec/qbus/uba.c index 4d067e8c5fe..a797bca3c74 100644 --- a/sys/dev/dec/qbus/uba.c +++ b/sys/dev/dec/qbus/uba.c @@ -1,4 +1,4 @@ -/* $NetBSD: uba.c,v 1.32 1998/01/24 14:16:33 ragge Exp $ */ +/* $NetBSD: uba.c,v 1.33 1998/03/02 17:00:02 ragge Exp $ */ /* * Copyright (c) 1996 Jonathan Stone. * Copyright (c) 1994, 1996 Ludd, University of Lule}, Sweden. @@ -434,8 +434,13 @@ qba_attach(parent, self, aux) * Map in the UBA page map into kernel space. On other UBAs, * the map registers are in the bus IO space. */ +#if defined(UVM) + (void)uvm_km_suballoc(kernel_map, &mini, &maxi, + QBAPAGES * sizeof(struct pte), FALSE, FALSE, NULL); +#else (void)kmem_suballoc(kernel_map, &mini, &maxi, QBAPAGES * sizeof(struct pte), FALSE); +#endif pmap_map(mini, QBAMAP, QBAMAP + QBAPAGES * sizeof(struct pte), VM_PROT_READ | VM_PROT_WRITE); sc->uh_mr = (void *)mini; @@ -849,8 +854,13 @@ uba_attach(sc, iopagephys) vm_offset_t iarea; int i; +#if defined(UVM) + iarea = uvm_km_valloc(kernel_map, + NO_IVEC * sizeof(struct ivec_dsp)); +#else iarea = kmem_alloc(kernel_map, NO_IVEC * sizeof(struct ivec_dsp)); +#endif sc->uh_idsp = (struct ivec_dsp *)iarea; for (i = 0; i < NO_IVEC; i++) { @@ -866,7 +876,12 @@ uba_attach(sc, iopagephys) * This is done with kmem_suballoc() but after that * never used in the vm system. Is it OK to do so? */ +#if defined(UVM) + (void)uvm_km_suballoc(kernel_map, &mini, &maxi, UBAIOPAGES * NBPG, + FALSE, FALSE, NULL); +#else (void)kmem_suballoc(kernel_map, &mini, &maxi, UBAIOPAGES * NBPG, FALSE); +#endif pmap_map(mini, iopagephys, iopagephys + UBAIOPAGES * NBPG, VM_PROT_READ|VM_PROT_WRITE); sc->uh_iopage = (void *)mini; |
