modules.c:
int __init __xeno_sys_init(void)
include/asm-blackfin/system.h:
static inline int xnarch_init (void)
{
int err;
/* Register the irq_tail_hook - do rescheduling */
__ipipe_irq_tail_hook = (unsigned long)&xnpod_schedule_deferred;
/* Register Xenomai domain */
err = rthal_init();
if (err)
return err;
#ifdef CONFIG_SMP
/* The HAL layer also sets the same CPU affinity so that both
modules keep their execution sequence on SMP boxen. */
set_cpus_allowed(current,cpumask_of_cpu(0));
#==endif /* CONFIG_SMP */
err = xnarch_calibrate_sched();
if (err)
return err;
xnarch_escalation_virq = rthal_alloc_virq();
if (xnarch_escalation_virq == 0)
return -ENOSYS;
rthal_virtualize_irq(&rthal_domain,
xnarch_escalation_virq,
(rthal_irq_handler_t)&xnpod_schedule_handler,
NULL,
NULL,
IPIPE_HANDLE_MASK | IPIPE_WIRED_MASK);
xnarch_old_trap_handler = rthal_trap_catch(&xnarch_trap_fault);
return 0;
No comments:
Post a Comment