Deleted Added
full compact
vm_machdep.c (3436) vm_machdep.c (5455)
1/*-
2 * Copyright (c) 1982, 1986 The Regents of the University of California.
3 * Copyright (c) 1989, 1990 William Jolitz
4 * Copyright (c) 1994 John Dyson
5 * All rights reserved.
6 *
7 * This code is derived from software contributed to Berkeley by
8 * the Systems Programming Group of the University of Utah Computer

--- 24 unchanged lines hidden (view full) ---

33 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
34 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
35 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
36 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
37 * SUCH DAMAGE.
38 *
39 * from: @(#)vm_machdep.c 7.3 (Berkeley) 5/13/91
40 * Utah $Hdr: vm_machdep.c 1.16.1.1 89/06/23$
1/*-
2 * Copyright (c) 1982, 1986 The Regents of the University of California.
3 * Copyright (c) 1989, 1990 William Jolitz
4 * Copyright (c) 1994 John Dyson
5 * All rights reserved.
6 *
7 * This code is derived from software contributed to Berkeley by
8 * the Systems Programming Group of the University of Utah Computer

--- 24 unchanged lines hidden (view full) ---

33 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
34 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
35 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
36 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
37 * SUCH DAMAGE.
38 *
39 * from: @(#)vm_machdep.c 7.3 (Berkeley) 5/13/91
40 * Utah $Hdr: vm_machdep.c 1.16.1.1 89/06/23$
41 * $Id: vm_machdep.c,v 1.28 1994/09/02 04:12:07 davidg Exp $
41 * $Id: vm_machdep.c,v 1.29 1994/10/08 22:19:51 phk Exp $
42 */
43
44#include "npx.h"
45#include <sys/param.h>
46#include <sys/systm.h>
47#include <sys/proc.h>
48#include <sys/malloc.h>
49#include <sys/buf.h>

--- 266 unchanged lines hidden (view full) ---

316/*
317 * if any page is above 16MB, then go into bounce-buffer mode
318 */
319 va = vapstart;
320 for (i = 0; i < countvmpg; i++) {
321 pa = pmap_kextract(va);
322 if (pa >= SIXTEENMEG)
323 ++dobounceflag;
42 */
43
44#include "npx.h"
45#include <sys/param.h>
46#include <sys/systm.h>
47#include <sys/proc.h>
48#include <sys/malloc.h>
49#include <sys/buf.h>

--- 266 unchanged lines hidden (view full) ---

316/*
317 * if any page is above 16MB, then go into bounce-buffer mode
318 */
319 va = vapstart;
320 for (i = 0; i < countvmpg; i++) {
321 pa = pmap_kextract(va);
322 if (pa >= SIXTEENMEG)
323 ++dobounceflag;
324 if( pa == 0)
325 panic("vm_bounce_alloc: Unmapped page");
324 va += NBPG;
325 }
326 if (dobounceflag == 0)
327 return;
328
329 if (bouncepages < dobounceflag)
330 panic("Not enough bounce buffers!!!");
331

--- 155 unchanged lines hidden (view full) ---

487 return;
488
489 bounceallocarraysize = (bouncepages + BITS_IN_UNSIGNED - 1) / BITS_IN_UNSIGNED;
490 bounceallocarray = malloc(bounceallocarraysize * sizeof(unsigned), M_TEMP, M_NOWAIT);
491
492 if (!bounceallocarray)
493 panic("Cannot allocate bounce resource array\n");
494
326 va += NBPG;
327 }
328 if (dobounceflag == 0)
329 return;
330
331 if (bouncepages < dobounceflag)
332 panic("Not enough bounce buffers!!!");
333

--- 155 unchanged lines hidden (view full) ---

489 return;
490
491 bounceallocarraysize = (bouncepages + BITS_IN_UNSIGNED - 1) / BITS_IN_UNSIGNED;
492 bounceallocarray = malloc(bounceallocarraysize * sizeof(unsigned), M_TEMP, M_NOWAIT);
493
494 if (!bounceallocarray)
495 panic("Cannot allocate bounce resource array\n");
496
495 bzero(bounceallocarray, bounceallocarraysize * sizeof(unsigned));
496 bouncepa = malloc(bouncepages * sizeof(vm_offset_t), M_TEMP, M_NOWAIT);
497 if (!bouncepa)
498 panic("Cannot allocate physical memory array\n");
499
497 bouncepa = malloc(bouncepages * sizeof(vm_offset_t), M_TEMP, M_NOWAIT);
498 if (!bouncepa)
499 panic("Cannot allocate physical memory array\n");
500
501 for(i=0;i<bounceallocarraysize;i++) {
502 bounceallocarray[i] = 0xffffffff;
503 }
504
500 for(i=0;i<bouncepages;i++) {
501 vm_offset_t pa;
502 if( (pa = pmap_kextract((vm_offset_t) bouncememory + i * NBPG)) >= SIXTEENMEG)
503 panic("bounce memory out of range");
504 if( pa == 0)
505 panic("bounce memory not resident");
506 bouncepa[i] = pa;
505 for(i=0;i<bouncepages;i++) {
506 vm_offset_t pa;
507 if( (pa = pmap_kextract((vm_offset_t) bouncememory + i * NBPG)) >= SIXTEENMEG)
508 panic("bounce memory out of range");
509 if( pa == 0)
510 panic("bounce memory not resident");
511 bouncepa[i] = pa;
512 bounceallocarray[i/(8*sizeof(int))] &= ~(1<<(i%(8*sizeof(int))));
507 }
508 bouncefree = bouncepages;
509
510}
511#endif /* BOUNCE_BUFFERS */
512/*
513 * quick version of vm_fault
514 */

--- 83 unchanged lines hidden (view full) ---

598 panic("cpu_exit");
599}
600
601void
602cpu_wait(p) struct proc *p; {
603/* extern vm_map_t upages_map; */
604
605 /* drop per-process resources */
513 }
514 bouncefree = bouncepages;
515
516}
517#endif /* BOUNCE_BUFFERS */
518/*
519 * quick version of vm_fault
520 */

--- 83 unchanged lines hidden (view full) ---

604 panic("cpu_exit");
605}
606
607void
608cpu_wait(p) struct proc *p; {
609/* extern vm_map_t upages_map; */
610
611 /* drop per-process resources */
606 pmap_remove(vm_map_pmap(kernel_map), (vm_offset_t) p->p_addr,
612 pmap_remove(vm_map_pmap(u_map), (vm_offset_t) p->p_addr,
607 ((vm_offset_t) p->p_addr) + ctob(UPAGES));
613 ((vm_offset_t) p->p_addr) + ctob(UPAGES));
608 kmem_free(kernel_map, (vm_offset_t)p->p_addr, ctob(UPAGES));
614 kmem_free(u_map, (vm_offset_t)p->p_addr, ctob(UPAGES));
609 vmspace_free(p->p_vmspace);
610}
611
612/*
613 * Dump the machine specific header information at the start of a core dump.
614 */
615int
616cpu_coredump(p, vp, cred)

--- 255 unchanged lines hidden ---
615 vmspace_free(p->p_vmspace);
616}
617
618/*
619 * Dump the machine specific header information at the start of a core dump.
620 */
621int
622cpu_coredump(p, vp, cred)

--- 255 unchanged lines hidden ---