rem: KPrintF( "WarpUpInit( 0x%08lx )", audioctrl );
context: WarpUpInit( struct AHIPrivAudioCtrl* audioctrl ){#ifdef __PPC__  // Crash and burn! We shouldn't be here!  Req( "Internal error: WarpUpInit() called from PPC code!" );  return FALSE;#else  BOOL rc = FALSE;KPrintF( "WarpUpInit( 0x%08lx )", audioctrl );  audioctrl->ahiac_PowerPCContext =     AllocVec32( sizeof( struct PowerPCContext ),                         MEMF_PUBLIC | MEMF_CHIP | MEMF_CLEAR );  if( audioctrl->ahiac_PowerPCContext == NULL )  {    Req( "Out of memory." );  }  else  {    audioctrl->ahiac_PowerPCContext->Command      = PPCC_COM_NONE;    audioctrl->ahiac_PowerPCContext->Active       = FALSE;    audioctrl->ahiac_PowerPCContext->AudioCtrl    = audioctrl;    audioctrl->ahiac_PowerPCContext->PowerPCBase  = PowerPCBase;    audioctrl->ahiac_PowerPCContext->MixBuffer =        AllocVec32( audioctrl->ac.ahiac_BuffSize,                    MEMF_PUBLIC | MEMF_CLEAR );    if( audioctrl->ahiac_PowerPCContext->MixBuffer == NULL )    {      Req( "Out of memory." );    }    else    {      // Initialize the WarpUp side            struct PPCArgs args =       {        NULL,        0,        0,        NULL,        0,        { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },        { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }      };          args.PP_Regs[ 0 ] = (ULONG) audioctrl->ahiac_PowerPCContext;      if( ! AHIGetELFSymbol( "WarpUpRegisterExcHandler", &args.PP_Code ) )      {        Req( "Unable to fetch symbol 'WarpUpRegisterExcHandler'." );      }      else      {        if( RunPPC( &args ) != PPERR_SUCCESS )        {          Req( "Call to WarpUpRegisterExcHandler() failed." );        }        else        {          audioctrl->ahiac_PowerPCContext->MixInterrupt =               AllocVec( sizeof( struct Interrupt ),                                MEMF_PUBLIC | MEMF_CLEAR );          if( audioctrl->ahiac_PowerPCContext->MixInterrupt == NULL )          {            Req( "Out of memory." );          }          else          {            struct Interrupt* mi = audioctrl->ahiac_PowerPCContext->MixInterrupt;            mi->is_Node.ln_Type = NT_INTERRUPT;            mi->is_Node.ln_Pri  = 127;            mi->is_Node.ln_Name = AHINAME " PPC Handler Interrupt";            mi->is_Data         = audioctrl;            mi->is_Code         = (void(*)(void)) Interrupt;            AddIntServer( INTB_PORTS, mi );                        rc = TRUE;          }        }      }    }  }KPrintF( "=> %ld\n", rc );  return rc;#endif /* __PPC__ */}