Exemplo n.º 1
0
// Enter scheduler.  Must hold only ptable.lock
// and have changed proc->state.
void sched(void)
{
    int intena;

    //show_callstk ("sched");

    if(!holding(&ptable.lock)) {
        panic("sched ptable.lock");
    }

    if(cpu->ncli != 1) {
        panic("sched locks");
    }

    if(proc->state == RUNNING) {
        panic("sched running");
    }

    if(int_enabled ()) {
        panic("sched interruptible");
    }

    intena = cpu->intena;
    swtch(&proc->context, cpu->scheduler);
    cpu->intena = intena;
}
Exemplo n.º 2
0
void keyboard_init(void)
{
	if (int_enabled()) int_disable();
	cons_printf("Initialize keyboard ............");
        
        x86_ps2_init();

	/* Start out with no shift keys enabled. */
	s_shiftstate = 0;

	/* Buffer is initially empty. */
	s_queue_head = s_queue_tail = 0;

	/* Install interrupt handler */
        irq_install_handler(KEYB_IRQ, &keyboard_int_handler);
	irq_enable(KEYB_IRQ);

	int_enable();
	g_preemption = true;
	cons_printf(".... [OK]\n");
}