/**CFile**************************************************************** FileName [mainInit.c] SystemName [ABC: Logic synthesis and verification system.] PackageName [The main package.] Synopsis [Initialization procedures.] Author [Alan Mishchenko] Affiliation [UC Berkeley] Date [Ver. 1.0. Started - June 20, 2005.] Revision [$Id: mainInit.c,v 1.3 2005/09/14 22:53:37 casem Exp $] ***********************************************************************/ #include "base/abc/abc.h" #include "mainInt.h" ABC_NAMESPACE_IMPL_START //////////////////////////////////////////////////////////////////////// /// DECLARATIONS /// //////////////////////////////////////////////////////////////////////// extern void Abc_Init( Abc_Frame_t * pAbc ); extern void Abc_End ( Abc_Frame_t * pAbc ); extern void Io_Init( Abc_Frame_t * pAbc ); extern void Io_End ( Abc_Frame_t * pAbc ); extern void Cmd_Init( Abc_Frame_t * pAbc ); extern void Cmd_End ( Abc_Frame_t * pAbc ); extern void If_Init( Abc_Frame_t * pAbc ); extern void If_End ( Abc_Frame_t * pAbc ); extern void Map_Init( Abc_Frame_t * pAbc ); extern void Map_End ( Abc_Frame_t * pAbc ); extern void Mio_Init( Abc_Frame_t * pAbc ); extern void Mio_End ( Abc_Frame_t * pAbc ); extern void Super_Init( Abc_Frame_t * pAbc ); extern void Super_End ( Abc_Frame_t * pAbc ); extern void Libs_Init( Abc_Frame_t * pAbc ); extern void Libs_End( Abc_Frame_t * pAbc ); extern void Load_Init( Abc_Frame_t * pAbc ); extern void Load_End( Abc_Frame_t * pAbc ); extern void Scl_Init( Abc_Frame_t * pAbc ); extern void Scl_End( Abc_Frame_t * pAbc ); extern void Wlc_Init( Abc_Frame_t * pAbc ); extern void Wlc_End( Abc_Frame_t * pAbc ); extern void Cba_Init( Abc_Frame_t * pAbc ); extern void Cba_End( Abc_Frame_t * pAbc ); extern void Test_Init( Abc_Frame_t * pAbc ); extern void Test_End( Abc_Frame_t * pAbc ); extern void Abc2_Init( Abc_Frame_t * pAbc ); extern void Abc2_End ( Abc_Frame_t * pAbc ); extern void Abc85_Init( Abc_Frame_t * pAbc ); extern void Abc85_End( Abc_Frame_t * pAbc ); static Abc_FrameInitializer_t* s_InitializerStart = NULL; static Abc_FrameInitializer_t* s_InitializerEnd = NULL; void Abc_FrameAddInitializer( Abc_FrameInitializer_t* p ) { if( ! s_InitializerStart ) s_InitializerStart = p; p->next = NULL; p->prev = s_InitializerEnd; if ( s_InitializerEnd ) s_InitializerEnd->next = p; s_InitializerEnd = p; } //////////////////////////////////////////////////////////////////////// /// FUNCTION DEFINITIONS /// //////////////////////////////////////////////////////////////////////// /**Function************************************************************* Synopsis [Starts all the packages.] Description [] SideEffects [] SeeAlso [] ***********************************************************************/ void Abc_FrameInit( Abc_Frame_t * pAbc ) { Abc_FrameInitializer_t* p; Cmd_Init( pAbc ); Cmd_CommandExecute( pAbc, "set checkread" ); Io_Init( pAbc ); Abc_Init( pAbc ); If_Init( pAbc ); Map_Init( pAbc ); Mio_Init( pAbc ); Super_Init( pAbc ); Libs_Init( pAbc ); Load_Init( pAbc ); Scl_Init( pAbc ); Wlc_Init( pAbc ); Cba_Init( pAbc ); Test_Init( pAbc ); for( p = s_InitializerStart ; p ; p = p->next ) if(p->init) p->init(pAbc); } /**Function************************************************************* Synopsis [Stops all the packages.] Description [] SideEffects [] SeeAlso [] ***********************************************************************/ void Abc_FrameEnd( Abc_Frame_t * pAbc ) { Abc_FrameInitializer_t* p; for( p = s_InitializerEnd ; p ; p = p->prev ) if ( p->destroy ) p->destroy(pAbc); Abc_End( pAbc ); Io_End( pAbc ); Cmd_End( pAbc ); If_End( pAbc ); Map_End( pAbc ); Mio_End( pAbc ); Super_End( pAbc ); Libs_End( pAbc ); Load_End( pAbc ); Scl_End( pAbc ); Wlc_End( pAbc ); Cba_End( pAbc ); Test_End( pAbc ); } //////////////////////////////////////////////////////////////////////// /// END OF FILE /// //////////////////////////////////////////////////////////////////////// ABC_NAMESPACE_IMPL_END