Add hook for flushing a single cache line.
This commit is contained in:
parent
63c1c6ab1c
commit
6cea599cbf
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: cpu.c,v 1.30 1997/03/12 22:52:19 pk Exp $ */
|
||||
/* $NetBSD: cpu.c,v 1.31 1997/03/20 23:26:25 pk Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1996
|
||||
@ -363,7 +363,8 @@ struct module_info module_sun4 = {
|
||||
sun4_vcache_flush_page,
|
||||
sun4_vcache_flush_segment,
|
||||
sun4_vcache_flush_region,
|
||||
sun4_vcache_flush_context
|
||||
sun4_vcache_flush_context,
|
||||
noop_pcache_flush_line
|
||||
};
|
||||
|
||||
void
|
||||
@ -476,7 +477,8 @@ struct module_info module_sun4c = {
|
||||
sun4_vcache_flush_page,
|
||||
sun4_vcache_flush_segment,
|
||||
sun4_vcache_flush_region,
|
||||
sun4_vcache_flush_context
|
||||
sun4_vcache_flush_context,
|
||||
noop_pcache_flush_line
|
||||
};
|
||||
|
||||
void
|
||||
@ -669,7 +671,8 @@ struct module_info module_ms1 = {
|
||||
noop_vcache_flush_page,
|
||||
noop_vcache_flush_segment,
|
||||
noop_vcache_flush_region,
|
||||
noop_vcache_flush_context
|
||||
noop_vcache_flush_context,
|
||||
noop_pcache_flush_line
|
||||
};
|
||||
|
||||
void
|
||||
@ -700,7 +703,8 @@ struct module_info module_ms2 = { /* UNTESTED */
|
||||
srmmu_vcache_flush_page,
|
||||
srmmu_vcache_flush_segment,
|
||||
srmmu_vcache_flush_region,
|
||||
srmmu_vcache_flush_context
|
||||
srmmu_vcache_flush_context,
|
||||
noop_pcache_flush_line
|
||||
};
|
||||
|
||||
void
|
||||
@ -726,7 +730,8 @@ struct module_info module_swift = { /* UNTESTED */
|
||||
srmmu_vcache_flush_page,
|
||||
srmmu_vcache_flush_segment,
|
||||
srmmu_vcache_flush_region,
|
||||
srmmu_vcache_flush_context
|
||||
srmmu_vcache_flush_context,
|
||||
noop_pcache_flush_line
|
||||
};
|
||||
|
||||
void
|
||||
@ -758,6 +763,7 @@ struct module_info module_viking = { /* UNTESTED */
|
||||
noop_vcache_flush_segment,
|
||||
noop_vcache_flush_region,
|
||||
noop_vcache_flush_context,
|
||||
noop_pcache_flush_line
|
||||
};
|
||||
|
||||
void
|
||||
@ -779,6 +785,7 @@ viking_hotfix(sc)
|
||||
sc->mxcc = 1;
|
||||
sc->flags |= CPUFLG_CACHEPAGETABLES;
|
||||
sc->flags |= CPUFLG_CACHE_MANDATORY;
|
||||
sc->pcache_flush_line = viking_pcache_flush_line;
|
||||
}
|
||||
|
||||
/* XXX! */
|
||||
@ -813,7 +820,8 @@ struct module_info module_hypersparc = { /* UNTESTED */
|
||||
srmmu_vcache_flush_page,
|
||||
srmmu_vcache_flush_segment,
|
||||
srmmu_vcache_flush_region,
|
||||
srmmu_vcache_flush_context
|
||||
srmmu_vcache_flush_context,
|
||||
noop_pcache_flush_line
|
||||
};
|
||||
|
||||
void
|
||||
@ -845,7 +853,8 @@ struct module_info module_cypress = { /* UNTESTED */
|
||||
srmmu_vcache_flush_page,
|
||||
srmmu_vcache_flush_segment,
|
||||
srmmu_vcache_flush_region,
|
||||
srmmu_vcache_flush_context
|
||||
srmmu_vcache_flush_context,
|
||||
cypress_pcache_flush_line
|
||||
};
|
||||
|
||||
void
|
||||
@ -873,7 +882,8 @@ struct module_info module_turbosparc = { /* UNTESTED */
|
||||
srmmu_vcache_flush_page,
|
||||
srmmu_vcache_flush_segment,
|
||||
srmmu_vcache_flush_region,
|
||||
srmmu_vcache_flush_context
|
||||
srmmu_vcache_flush_context,
|
||||
noop_pcache_flush_line
|
||||
};
|
||||
|
||||
void
|
||||
@ -1032,6 +1042,7 @@ getcpuinfo(sc, node)
|
||||
MPCOPY(vcache_flush_segment);
|
||||
MPCOPY(vcache_flush_region);
|
||||
MPCOPY(vcache_flush_context);
|
||||
MPCOPY(pcache_flush_line);
|
||||
#undef MPCOPY
|
||||
return;
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: cpuvar.h,v 1.2 1997/03/15 18:10:41 is Exp $ */
|
||||
/* $NetBSD: cpuvar.h,v 1.3 1997/03/20 23:26:23 pk Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1996 The NetBSD Foundation, Inc.
|
||||
@ -66,6 +66,7 @@ struct module_info {
|
||||
void (*vcache_flush_segment)__P((int, int));
|
||||
void (*vcache_flush_region)__P((int));
|
||||
void (*vcache_flush_context)__P((void));
|
||||
void (*pcache_flush_line)__P((int, int));
|
||||
};
|
||||
|
||||
|
||||
@ -116,17 +117,7 @@ struct cpu_softc {
|
||||
int ctx_kickdir; /* ctx_kick roves both directions */
|
||||
|
||||
/* MMU tables that map `cpuinfo'' on each CPU */
|
||||
int *L1_ptps;
|
||||
int L1_ptps_phys;
|
||||
int *L2_ptps;
|
||||
int L2_ptps_phys;
|
||||
int *L3_ptps;
|
||||
int L3_ptps_phys;
|
||||
|
||||
#if 1 /*temp:shorten recompilations because of cpuinfo size changes*/
|
||||
int xxx5;
|
||||
int xxx6;
|
||||
#endif
|
||||
int *L1_ptps; /* XXX */
|
||||
|
||||
/* XXX - of these, we currently use only cpu_type */
|
||||
int arch; /* Architecture: CPU_SUN4x */
|
||||
@ -178,6 +169,7 @@ struct cpu_softc {
|
||||
void (*vcache_flush_segment)__P((int vreg, int vseg));
|
||||
void (*vcache_flush_region)__P((int vreg));
|
||||
void (*vcache_flush_context)__P((void));
|
||||
void (*pcache_flush_line) __P((int, int));
|
||||
|
||||
#ifdef SUN4M
|
||||
/* hardware-assisted block operation routines */
|
||||
|
Loading…
x
Reference in New Issue
Block a user