static output_callout_t * callout_output_clock(int sizing) { struct arm_cpu_entry *cpu = lsp.cpu.arm_cpu.p; callout_output_one(sizing, &cpu->clock_cycles); return prev_output_rtn; }
static output_callout_t * callout_output_smp(int sizing) { struct smp_entry *smp = lsp.smp.p; callout_output_one(sizing, &smp_spin_vaddr); if(smp->send_ipi != NULL) { callout_output_one(sizing, &smp->send_ipi); } #if defined(__PPC__) // For backwards compatability, remove later { struct ppc_smpinfo_entry *ppc_smp = lsp.cpu.ppc_smpinfo.p; if(ppc_smp->send_ipi != NULL) { callout_output_one(sizing, &ppc_smp->send_ipi); } } #endif return(smp_prev_output_rtn); }
static output_callout_t * callout_output_cache(int sizing) { unsigned i; unsigned num_cache; num_cache = lsp.cacheattr.size / sizeof(*lsp.cacheattr.p); for(i = 0; i < num_cache; ++i) { struct cacheattr_entry *cache = &lsp.cacheattr.p[i]; callout_output_one(sizing, &cache->control); } return(cache_prev_output_rtn); }
static output_callout_t * callout_output_intr(int sizing) { unsigned i; unsigned nelts; nelts = lsp.intrinfo.size / sizeof(*lsp.intrinfo.p); for(i = 0; i < nelts; ++i) { uint8_t *base = (uint8_t *)&lsp.intrinfo.p[i]; unsigned j; for(j = 0; j < NUM_ELTS(offsets); ++j) { void (**rtn)(void) = (void (**)(void))(base + offsets[j]); callout_output_one(sizing, rtn); } } return(intr_prev_output_rtn); }