return lapic_read(LAPIC_ESR);
}
+#ifdef CONFIG_SMP
static int lapic_disable_in_msr(void)
{
u32_t msr_hi, msr_lo;
return 1;
}
+#endif /* CONFIG_SMP */
void lapic_disable(void)
{
return;
}
+#ifdef CONFIG_SMP
val = lapic_read(LAPIC_LINT0) & 0xFFFE58FF;
val |= APIC_ICR_INT_MASK;
lapic_write (LAPIC_LINT0, val);
lapic_write(LAPIC_SIVR, val);
lapic_disable_in_msr();
+#endif /* CONFIG_SMP */
}
static int lapic_enable_in_msr(void)
static u32_t phys_get32(phys_bytes addr)
{
- const u32_t v;
+ u32_t v;
int r;
if((r=lin_lin_copy(NULL, addr,
}
}
- l = 0;
for (xp = BEG_PROC_ADDR; xp < END_PROC_ADDR; ++xp) {
if(!proc_ptr_ok(xp)) {
printf("xp bogus pointer in proc table\n");
if(proc_is_runnable(xp) && !xp->p_found) {
printf("sched error: ready proc %d not on queue\n", xp->p_nr);
return 0;
- if (l++ > MAX_LOOP) {
- printf("loop in debug.c?\n");
- return 0;
- }
}
}
static char str[100];
str[0] = '\0';
-#define FLAG(n) if(flags & n) { strcat(str, #n " "); }
+#define FLAG(n) if(flags & n) { strlcat(str, #n " ", sizeof(str)); }
FLAG(RTS_SLOT_FREE);
FLAG(RTS_PROC_STOP);
printf("mini_receive: sending notify from NONE\n");
}
#endif
+ assert(src_proc_nr != NONE);
unset_notify_pending(caller_ptr, src_id); /* no longer pending */
/* Found a suitable source, deliver the notification message. */
}
return(OK);
-
- return r;
}
/*===========================================================================*
printf("do_sysctl: invalid request %d\n", m_ptr->SYSCTL_CODE);
return(EINVAL);
}
-
- panic("do_sysctl: can't happen");
-
- return(OK);
}