X-Git-Url: https://git.subgeniuskitty.com/unix-history/.git/blobdiff_plain/31c63d891fbe258ee6dbb0f6929fa4baef772377..ad7871609881e73855d0b04da49b486cd93efca7:/usr/src/sys/hp300/hp300/mem.c diff --git a/usr/src/sys/hp300/hp300/mem.c b/usr/src/sys/hp300/hp300/mem.c index bea7de5e55..7229106299 100644 --- a/usr/src/sys/hp300/hp300/mem.c +++ b/usr/src/sys/hp300/hp300/mem.c @@ -1,35 +1,61 @@ /* * Copyright (c) 1988 University of Utah. - * Copyright (c) 1982, 1986, 1990 The Regents of the University of California. - * All rights reserved. + * Copyright (c) 1982, 1986, 1990, 1993 + * The Regents of the University of California. All rights reserved. * * This code is derived from software contributed to Berkeley by * the Systems Programming Group of the University of Utah Computer * Science Department. * - * %sccs.include.redist.c% + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. * * from: Utah $Hdr: mem.c 1.14 90/10/12$ * - * @(#)mem.c 7.6 (Berkeley) %G% + * @(#)mem.c 8.1 (Berkeley) 6/10/93 */ /* * Memory special file */ -#include "param.h" -#include "conf.h" -#include "buf.h" -#include "systm.h" -#include "malloc.h" +#include +#include +#include +#include +#include -#include "../include/cpu.h" +#include -#include "vm/vm_param.h" -#include "vm/lock.h" -#include "vm/pmap.h" -#include "vm/vm_prot.h" +#include +#include +#include +#include /*ARGSUSED*/ mmrw(dev, uio, flags) @@ -42,6 +68,7 @@ mmrw(dev, uio, flags) register struct iovec *iov; int error = 0; caddr_t zbuf = NULL; + int kernloc; extern u_int lowram; while (uio->uio_resid > 0 && error == 0) { @@ -63,24 +90,26 @@ mmrw(dev, uio, flags) if (v >= 0xFFFFFFFC || v < lowram) return (EFAULT); #endif - pmap_enter(pmap_kernel(), vmmap, trunc_page(v), - uio->uio_rw == UIO_READ ? - VM_PROT_READ : VM_PROT_WRITE, TRUE); + pmap_enter(kernel_pmap, (vm_offset_t)vmmap, + trunc_page(v), uio->uio_rw == UIO_READ ? + VM_PROT_READ : VM_PROT_WRITE, TRUE); o = (int)uio->uio_offset & PGOFSET; c = (u_int)(NBPG - ((int)iov->iov_base & PGOFSET)); - c = MIN(c, (u_int)(NBPG - o)); - c = MIN(c, (u_int)iov->iov_len); + c = min(c, (u_int)(NBPG - o)); + c = min(c, (u_int)iov->iov_len); error = uiomove((caddr_t)&vmmap[o], (int)c, uio); - pmap_remove(pmap_kernel(), vmmap, &vmmap[NBPG]); + pmap_remove(kernel_pmap, (vm_offset_t)vmmap, + (vm_offset_t)&vmmap[NBPG]); continue; /* minor device 1 is kernel memory */ case 1: - c = MIN(iov->iov_len, MAXPHYS); - if (!kernacc((caddr_t)uio->uio_offset, c, + kernloc = uio->uio_offset; + c = min(iov->iov_len, MAXPHYS); + if (!kernacc((caddr_t)kernloc, c, uio->uio_rw == UIO_READ ? B_READ : B_WRITE)) return (EFAULT); - error = uiomove((caddr_t)uio->uio_offset, (int)c, uio); + error = uiomove((caddr_t)kernloc, (int)c, uio); continue; /* minor device 2 is EOF/RATHOLE */ @@ -100,7 +129,7 @@ mmrw(dev, uio, flags) malloc(CLBYTES, M_TEMP, M_WAITOK); bzero(zbuf, CLBYTES); } - c = MIN(iov->iov_len, CLBYTES); + c = min(iov->iov_len, CLBYTES); error = uiomove(zbuf, (int)c, uio); continue;