コード例 #1
0
ファイル: timervblank.c プロジェクト: michalsc/AROS
static int vblank_Expunge(struct TimerBase *base)
{
    /* ln_Succ will ne non-empty if this Node was added to a list */
    if (base->tb_VBlankInt.is_Node.ln_Succ)
	RemIntServer(INTB_VERTB, &base->tb_VBlankInt);

    return TRUE;
}
コード例 #2
0
static void SmallDelay(struct ExecBase *SysBase)
{
    struct Interrupt i;
    
    i.is_Code 	      = (APTR)AHITimerTickCode;
    i.is_Data 	      = FindTask(0);
    i.is_Node.ln_Name = "AROS AHI Driver Timer Tick Server";
    i.is_Node.ln_Pri  = 0;
    i.is_Node.ln_Type = NT_INTERRUPT;
    
    SetSignal(0, SIGBREAKF_CTRL_F);
    AddIntServer(INTB_TIMERTICK, &i);
    Wait(SIGBREAKF_CTRL_F);
    RemIntServer(INTB_TIMERTICK, &i);
}
コード例 #3
0
void
FreeDriverData( struct EMU10kxData* dd,
		struct DriverBase*  AHIsubBase )
{
  if( dd != NULL )
  {
    if( dd->card.pci_dev != NULL )
    {
      if( dd->emu10k1_initialized )
      {
        emu10k1_cleanup( &dd->card );
      }

      if( dd->pci_master_enabled )
      {
        UWORD cmd;

        #ifdef __AMIGAOS4__
        cmd = ((struct PCIDevice * ) dd->card.pci_dev)->ReadConfigWord( PCI_COMMAND );
        cmd &= ~( PCI_COMMAND_IO | PCI_COMMAND_MEMORY | PCI_COMMAND_MASTER );
        ((struct PCIDevice * ) dd->card.pci_dev)->WriteConfigWord( PCI_COMMAND, cmd );
        #else
        cmd = pci_read_config_word( PCI_COMMAND, dd->card.pci_dev );
        cmd &= ~( PCI_COMMAND_IO | PCI_COMMAND_MEMORY | PCI_COMMAND_MASTER );
        pci_write_config_word( PCI_COMMAND, cmd, dd->card.pci_dev );
        #endif
      }
    }

    if( dd->interrupt_added )
    {
      #ifdef __AMIGAOS4__
      RemIntServer(((struct PCIDevice * ) dd->card.pci_dev)->MapInterrupt(), &dd->interrupt );
      #else
      pci_rem_intserver( &dd->interrupt, dd->card.pci_dev );
      #endif
    }

    FreeVec( dd );
  }
}
コード例 #4
0
static int GM_UNIQUENAME(Expunge)(LIBBASETYPEPTR LIBBASE)
{
    outb((inb(0x61) & 0xfd) | 1, 0x61); /* Enable the timer (set GATE on) */
    RemIntServer(INTB_VERTB, &LIBBASE->tb_VBlankInt);
    return TRUE;
}