Esempio n. 1
0
void main() {
  bt_initialize();
  trace_initialize();
  i386_initialize_descriptor_tables();
  i8259_initialize();
  exceptions_initialize();
  timer_initialize();
  mem_initialize();
  dma_initialize();
  keyboard_initialize();  
  floppy_initialize();  
  tty_initialize();  
  sys_initialize();   
  loader_initialize();  
  clear_display();
  printk("Start running processes!!!\nStartup Communications\n Press ALT-LSHIFT for next terminal\n");  
  i8259_start();
  while(1);  
}
Esempio n. 2
0
struct pic_ops *
setup_prepivr(int ivrtype)
{
	struct i8259_ops *prepivr;
	struct pic_ops *pic;
	uint32_t pivr;

	prepivr = kmem_alloc(sizeof(*prepivr), KM_SLEEP);
	KASSERT(prepivr != NULL);
	pic = &prepivr->pic;

	pivr = prep_intr_reg + prep_intr_reg_off;
	pic->pic_numintrs = 16;
	pic->pic_cookie = (void *)pivr;
	pic->pic_enable_irq = i8259_enable_irq;
	pic->pic_reenable_irq = i8259_enable_irq;
	pic->pic_disable_irq = i8259_disable_irq;
	if (ivrtype == PIC_IVR_MOT)
		pic->pic_get_irq = motivr_get_irq;
	else
		pic->pic_get_irq = prepivr_get_irq;
	pic->pic_ack_irq = i8259_ack_irq;
	pic->pic_establish_irq = prepivr_establish_irq;
	pic->pic_finish_setup = NULL;
	strcpy(pic->pic_name, "prepivr");
	pic_add(pic);
	prepivr->pending_events = 0;
	prepivr->enable_mask = 0xffffffff;
	prepivr->irqs = 0;

	/* initialize the ELCR */
	isa_outb(IO_ELCR1, (0 >> 0) & 0xff);
	isa_outb(IO_ELCR2, (0 >> 8) & 0xff);
	i8259_initialize();

	return pic;
}