Esempio n. 1
0
void disable_irq(unsigned int irq)
{
	if (irq >= SYS_IRQS) {
		printk("%s: Incorrect IRQ %d\n", __FUNCTION__, irq);
		return;
	}
	pic_disable_irq(irq);
}
Esempio n. 2
0
void free_irq(unsigned int irq, void *dev_id)
{
	if (irq >= SYS_IRQS) {
		printk("%s: Incorrect IRQ %d\n", __FUNCTION__, irq);
		return;
	}

  pic_disable_irq(irq);

	irq_list[irq].handler = NULL;
	irq_list[irq].flags   = IRQ_FLG_STD;
	irq_list[irq].dev_id  = NULL;
	irq_list[irq].devname = default_names[irq];
}
Esempio n. 3
0
void			bootloader_apic_calibrate_timer(void)
{
  t_ia32_gate		gate;
  t_sint32		t1;
  t_sint32		t2;

  /*
   * 1)
   */

  apic_write(APIC_REG_DIV, 10);
  apic_write(APIC_REG_TIMER_CONF, 1 << 16);

  /*
   * 2)
   */

  apic_write(APIC_REG_TIMER, 1000000000);

  /*
   * 3)
   */

  gate.offset = (t_uint32)bootloader_apic_calibrate_tick;
  gate.segsel = IA32_PMODE_BOOTLOADER_CS << 3;
  gate.privilege = 0;
  gate.type = ia32_type_gate_interrupt;

  idt_add_gate(NULL, 32, gate);

  pit_init(200);

  pic_enable_irq(0);

  ticks = 0;
  t1 = apic_read(APIC_REG_COUNT);

  while (ticks < 100)
    ;

  pic_disable_irq(0);

  t2 = apic_read(APIC_REG_COUNT);

  /*
   * 4)
   */

  timeref = (t1 - t2);
}
Esempio n. 4
0
/* cleanup
 */
error_t rtl8139_cleanup(void)
{
#if !defined(USE_APIC)
  pic_disable_irq(0xb);
#endif

  if (!is_null(g_device))
    {
      mm_free(g_device->priv);
      mm_free(g_device);
      g_device = null;
    }

  return ERROR_SUCCESS;
}
Esempio n. 5
0
void keyboard_disable_irq(void)
{
    pic_disable_irq(KEYBOARD_IRQ_NUM);
}
Esempio n. 6
0
File: irq.c Progetto: giszo/urubu
// =====================================================================================================================
void irq_arch_disable(int irq)
{
    pic_disable_irq(irq);
}