version 1.82.2.1, 2012/04/17 00:06:47 |
version 1.82.2.2, 2012/10/30 17:20:13 |
Line 91 __KERNEL_RCSID(0, "$NetBSD$"); |
|
Line 91 __KERNEL_RCSID(0, "$NetBSD$"); |
|
#include <powerpc/oea/sr_601.h> |
#include <powerpc/oea/sr_601.h> |
|
|
#ifdef ALTIVEC |
#ifdef ALTIVEC |
int pmap_use_altivec; |
extern int pmap_use_altivec; |
#endif |
#endif |
|
|
volatile struct pteg *pmap_pteg_table; |
|
unsigned int pmap_pteg_cnt; |
|
unsigned int pmap_pteg_mask; |
|
#ifdef PMAP_MEMLIMIT |
#ifdef PMAP_MEMLIMIT |
static paddr_t pmap_memlimit = PMAP_MEMLIMIT; |
static paddr_t pmap_memlimit = PMAP_MEMLIMIT; |
#else |
#else |
static paddr_t pmap_memlimit = -PAGE_SIZE; /* there is no limit */ |
static paddr_t pmap_memlimit = -PAGE_SIZE; /* there is no limit */ |
#endif |
#endif |
|
|
struct pmap kernel_pmap_; |
extern struct pmap kernel_pmap_; |
unsigned int pmap_pages_stolen; |
static unsigned int pmap_pages_stolen; |
u_long pmap_pte_valid; |
static u_long pmap_pte_valid; |
#if defined(DIAGNOSTIC) || defined(DEBUG) || defined(PMAPCHECK) |
#if defined(DIAGNOSTIC) || defined(DEBUG) || defined(PMAPCHECK) |
u_long pmap_pvo_enter_depth; |
static u_long pmap_pvo_enter_depth; |
u_long pmap_pvo_remove_depth; |
static u_long pmap_pvo_remove_depth; |
#endif |
#endif |
|
|
#ifndef MSGBUFADDR |
#ifndef MSGBUFADDR |
Line 171 static u_int mem_cnt, avail_cnt; |
|
Line 168 static u_int mem_cnt, avail_cnt; |
|
#define pmap_pinit PMAPNAME(pinit) |
#define pmap_pinit PMAPNAME(pinit) |
#define pmap_procwr PMAPNAME(procwr) |
#define pmap_procwr PMAPNAME(procwr) |
|
|
|
#define pmap_pool PMAPNAME(pool) |
|
#define pmap_upvo_pool PMAPNAME(upvo_pool) |
|
#define pmap_mpvo_pool PMAPNAME(mpvo_pool) |
|
#define pmap_pvo_table PMAPNAME(pvo_table) |
#if defined(DEBUG) || defined(PMAPCHECK) || defined(DDB) |
#if defined(DEBUG) || defined(PMAPCHECK) || defined(DDB) |
#define pmap_pte_print PMAPNAME(pte_print) |
#define pmap_pte_print PMAPNAME(pte_print) |
#define pmap_pteg_check PMAPNAME(pteg_check) |
#define pmap_pteg_check PMAPNAME(pteg_check) |
Line 336 struct pvo_page { |
|
Line 337 struct pvo_page { |
|
SIMPLEQ_HEAD(pvop_head, pvo_page); |
SIMPLEQ_HEAD(pvop_head, pvo_page); |
static struct pvop_head pmap_upvop_head = SIMPLEQ_HEAD_INITIALIZER(pmap_upvop_head); |
static struct pvop_head pmap_upvop_head = SIMPLEQ_HEAD_INITIALIZER(pmap_upvop_head); |
static struct pvop_head pmap_mpvop_head = SIMPLEQ_HEAD_INITIALIZER(pmap_mpvop_head); |
static struct pvop_head pmap_mpvop_head = SIMPLEQ_HEAD_INITIALIZER(pmap_mpvop_head); |
u_long pmap_upvop_free; |
static u_long pmap_upvop_free; |
u_long pmap_upvop_maxfree; |
static u_long pmap_upvop_maxfree; |
u_long pmap_mpvop_free; |
static u_long pmap_mpvop_free; |
u_long pmap_mpvop_maxfree; |
static u_long pmap_mpvop_maxfree; |
|
|
static void *pmap_pool_ualloc(struct pool *, int); |
static void *pmap_pool_ualloc(struct pool *, int); |
static void *pmap_pool_malloc(struct pool *, int); |
static void *pmap_pool_malloc(struct pool *, int); |
Line 489 extern struct evcnt pmap_evcnt_idlezeroe |
|
Line 490 extern struct evcnt pmap_evcnt_idlezeroe |
|
/* XXXSL: this needs to be moved to assembler */ |
/* XXXSL: this needs to be moved to assembler */ |
#define TLBIEL(va) __asm __volatile("tlbie %0" :: "r"(va)) |
#define TLBIEL(va) __asm __volatile("tlbie %0" :: "r"(va)) |
|
|
|
#ifdef MD_TLBSYNC |
|
#define TLBSYNC() MD_TLBSYNC() |
|
#else |
#define TLBSYNC() __asm volatile("tlbsync") |
#define TLBSYNC() __asm volatile("tlbsync") |
|
#endif |
#define SYNC() __asm volatile("sync") |
#define SYNC() __asm volatile("sync") |
#define EIEIO() __asm volatile("eieio") |
#define EIEIO() __asm volatile("eieio") |
#define DCBST(va) __asm __volatile("dcbst 0,%0" :: "r"(va)) |
#define DCBST(va) __asm __volatile("dcbst 0,%0" :: "r"(va)) |
Line 1938 pmap_enter(pmap_t pm, vaddr_t va, paddr_ |
|
Line 1943 pmap_enter(pmap_t pm, vaddr_t va, paddr_ |
|
break; |
break; |
} |
} |
} |
} |
|
#ifdef MULTIPROCESSOR |
|
if (((mfpvr() >> 16) & 0xffff) == MPC603e) |
|
pte_lo = PTE_M; |
|
#endif |
} else { |
} else { |
pte_lo |= PTE_I; |
pte_lo |= PTE_I; |
} |
} |
Line 2031 pmap_kenter_pa(vaddr_t va, paddr_t pa, v |
|
Line 2040 pmap_kenter_pa(vaddr_t va, paddr_t pa, v |
|
break; |
break; |
} |
} |
} |
} |
|
#ifdef MULTIPROCESSOR |
|
if (((mfpvr() >> 16) & 0xffff) == MPC603e) |
|
pte_lo = PTE_M; |
|
#endif |
} |
} |
|
|
if (prot & VM_PROT_WRITE) |
if (prot & VM_PROT_WRITE) |