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);
}
Example #3
0
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);
}
Example #4
0
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);
}