mainInit.c 4.36 KB
Newer Older
Alan Mishchenko committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
/**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.]

Alan Mishchenko committed
17
  Revision    [$Id: mainInit.c,v 1.3 2005/09/14 22:53:37 casem Exp $]
Alan Mishchenko committed
18 19 20

***********************************************************************/

21
#include "base/abc/abc.h"
Alan Mishchenko committed
22 23
#include "mainInt.h"

24 25
ABC_NAMESPACE_IMPL_START
 
Alan Mishchenko committed
26 27 28 29 30 31 32 33 34 35
////////////////////////////////////////////////////////////////////////
///                        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 );
Alan Mishchenko committed
36 37
extern void If_Init( Abc_Frame_t * pAbc );
extern void If_End ( Abc_Frame_t * pAbc );
Alan Mishchenko committed
38 39 40 41 42 43
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 );
44 45 46 47
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 );
48 49
extern void Scl_Init( Abc_Frame_t * pAbc );
extern void Scl_End( Abc_Frame_t * pAbc );
50 51
extern void Wlc_Init( Abc_Frame_t * pAbc );
extern void Wlc_End( Abc_Frame_t * pAbc );
52 53
extern void Cba_Init( Abc_Frame_t * pAbc );
extern void Cba_End( Abc_Frame_t * pAbc );
Alan Mishchenko committed
54 55
extern void Test_Init( Abc_Frame_t * pAbc );
extern void Test_End( Abc_Frame_t * pAbc );
56 57
extern void Abc2_Init( Abc_Frame_t * pAbc );
extern void Abc2_End ( Abc_Frame_t * pAbc );
Alan Mishchenko committed
58 59
extern void Abc85_Init( Abc_Frame_t * pAbc );
extern void Abc85_End( Abc_Frame_t * pAbc );
Alan Mishchenko committed
60

61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
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;

}

Alan Mishchenko committed
79
////////////////////////////////////////////////////////////////////////
Alan Mishchenko committed
80
///                     FUNCTION DEFINITIONS                         ///
Alan Mishchenko committed
81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
////////////////////////////////////////////////////////////////////////

/**Function*************************************************************

  Synopsis    [Starts all the packages.]

  Description []
               
  SideEffects []

  SeeAlso     []

***********************************************************************/
void Abc_FrameInit( Abc_Frame_t * pAbc )
{
96
    Abc_FrameInitializer_t* p;
Alan Mishchenko committed
97
    Cmd_Init( pAbc );
98
    Cmd_CommandExecute( pAbc, "set checkread" ); 
Alan Mishchenko committed
99 100
    Io_Init( pAbc );
    Abc_Init( pAbc );
Alan Mishchenko committed
101
    If_Init( pAbc );
Alan Mishchenko committed
102 103 104
    Map_Init( pAbc );
    Mio_Init( pAbc );
    Super_Init( pAbc );
Alan Mishchenko committed
105
    Libs_Init( pAbc );
106
    Load_Init( pAbc );
107
    Scl_Init( pAbc );
108
    Wlc_Init( pAbc );
109
    Cba_Init( pAbc );
Alan Mishchenko committed
110
    Test_Init( pAbc );
111 112 113
    for( p = s_InitializerStart ; p ; p = p->next )
        if(p->init)
            p->init(pAbc);
Alan Mishchenko committed
114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129
}


/**Function*************************************************************

  Synopsis    [Stops all the packages.]

  Description []
               
  SideEffects []

  SeeAlso     []

***********************************************************************/
void Abc_FrameEnd( Abc_Frame_t * pAbc )
{
130 131 132 133
    Abc_FrameInitializer_t* p;
    for( p = s_InitializerEnd ; p ; p = p->prev )
        if ( p->destroy )
            p->destroy(pAbc);
Alan Mishchenko committed
134 135 136
    Abc_End( pAbc );
    Io_End( pAbc );
    Cmd_End( pAbc );
Alan Mishchenko committed
137
    If_End( pAbc );
Alan Mishchenko committed
138 139 140
    Map_End( pAbc );
    Mio_End( pAbc );
    Super_End( pAbc );
Alan Mishchenko committed
141
    Libs_End( pAbc );
142
    Load_End( pAbc );
143
    Scl_End( pAbc );
144
    Wlc_End( pAbc );
145
    Cba_End( pAbc );
Alan Mishchenko committed
146
    Test_End( pAbc );
Alan Mishchenko committed
147 148 149 150 151 152 153 154
}


////////////////////////////////////////////////////////////////////////
///                       END OF FILE                                ///
////////////////////////////////////////////////////////////////////////


155 156
ABC_NAMESPACE_IMPL_END