pdc_cache
if (!pdc_cache.dc_conf.cc_sh) {
pdc_cache.ic_size / 1024, pdc_cache.ic_conf.cc_line * 16);
pdc_cache.dc_size / 1024, pdc_cache.dc_conf.cc_line * 16,
pdc_cache.dc_conf.cc_wt? "thru" : "back", p);
if (!pdc_cache.dt_conf.tc_sh) {
printf("%u ITLB, ", pdc_cache.it_size);
pdc_cache.dt_size, pdc_cache.dt_conf.tc_cst? "" : "in", p);
extern struct pdc_cache pdc_cache;
struct pdc_cache pdc_cache PDC_ALIGNMENT;
&pdc_cache)) < 0) {
dcache_line_mask = pdc_cache.dc_conf.cc_line * 16 - 1;
dcache_stride = pdc_cache.dc_stride;
icache_line_mask = pdc_cache.ic_conf.cc_line * 16 - 1;
icache_stride = pdc_cache.ic_stride;
fall(pdc_cache.ic_base, pdc_cache.ic_count, pdc_cache.ic_loop,
pdc_cache.ic_stride, 0);
fall(pdc_cache.dc_base, pdc_cache.dc_count, pdc_cache.dc_loop,
pdc_cache.dc_stride, 1);
sp = pdc_cache.it_sp_base;
for (i = 0; i < pdc_cache.it_sp_count; i++) {
vaddr_t off = pdc_cache.it_off_base;
for (j = 0; j < pdc_cache.it_off_count; j++) {
for (k = 0; k < pdc_cache.it_loop; k++)
off += pdc_cache.it_off_stride;
sp += pdc_cache.it_sp_stride;
sp = pdc_cache.dt_sp_base;
for (i = 0; i < pdc_cache.dt_sp_count; i++) {
vaddr_t off = pdc_cache.dt_off_base;
for (j = 0; j < pdc_cache.dt_off_count; j++) {
for (k = 0; k < pdc_cache.dt_loop; k++)
off += pdc_cache.dt_off_stride;
sp += pdc_cache.dt_sp_stride;
struct pdc_cache pdc_cacheinfo PDC_ALIGNMENT;