version 1.56, 2008/02/17 18:16:42 |
version 1.57, 2008/03/11 20:44:01 |
Line 76 __KERNEL_RCSID(0, "$NetBSD$"); |
|
Line 76 __KERNEL_RCSID(0, "$NetBSD$"); |
|
|
|
#include "opt_ppcarch.h" |
#include "opt_ppcarch.h" |
#include "opt_altivec.h" |
#include "opt_altivec.h" |
|
#include "opt_multiprocessor.h" |
#include "opt_pmap.h" |
#include "opt_pmap.h" |
|
|
#include <sys/param.h> |
#include <sys/param.h> |
#include <sys/malloc.h> |
#include <sys/malloc.h> |
#include <sys/proc.h> |
#include <sys/proc.h> |
Line 517 extern struct evcnt pmap_evcnt_idlezeroe |
|
Line 519 extern struct evcnt pmap_evcnt_idlezeroe |
|
#define TLBSYNC() __asm volatile("tlbsync") |
#define TLBSYNC() __asm volatile("tlbsync") |
#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 MFMSR() mfmsr() |
#define MFMSR() mfmsr() |
#define MTMSR(psl) mtmsr(psl) |
#define MTMSR(psl) mtmsr(psl) |
#define MFPVR() mfpvr() |
#define MFPVR() mfpvr() |
Line 785 pmap_pte_clear(volatile struct pte *pt, |
|
Line 788 pmap_pte_clear(volatile struct pte *pt, |
|
EIEIO(); |
EIEIO(); |
TLBSYNC(); |
TLBSYNC(); |
SYNC(); |
SYNC(); |
|
#ifdef MULTIPROCESSOR |
|
DCBST(pt); |
|
#endif |
} |
} |
|
|
static inline void |
static inline void |
Line 806 pmap_pte_set(volatile struct pte *pt, st |
|
Line 812 pmap_pte_set(volatile struct pte *pt, st |
|
pt->pte_hi = pvo_pt->pte_hi; |
pt->pte_hi = pvo_pt->pte_hi; |
TLBSYNC(); |
TLBSYNC(); |
SYNC(); |
SYNC(); |
|
#ifdef MULTIPROCESSOR |
|
DCBST(pt); |
|
#endif |
pmap_pte_valid++; |
pmap_pte_valid++; |
} |
} |
|
|