summaryrefslogtreecommitdiffstats
path: root/src/base/main/mainInt.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/base/main/mainInt.h')
-rw-r--r--src/base/main/mainInt.h107
1 files changed, 107 insertions, 0 deletions
diff --git a/src/base/main/mainInt.h b/src/base/main/mainInt.h
new file mode 100644
index 00000000..557c4e2f
--- /dev/null
+++ b/src/base/main/mainInt.h
@@ -0,0 +1,107 @@
+/**CFile****************************************************************
+
+ FileName [mainInt.h]
+
+ SystemName [ABC: Logic synthesis and verification system.]
+
+ PackageName [The main package.]
+
+ Synopsis [Internal declarations of the main package.]
+
+ Author [Alan Mishchenko]
+
+ Affiliation [UC Berkeley]
+
+ Date [Ver. 1.0. Started - June 20, 2005.]
+
+ Revision [$Id: mainInt.h,v 1.00 2005/06/20 00:00:00 alanmi Exp $]
+
+***********************************************************************/
+
+#ifndef __Abc_INT_H__
+#define __Abc_INT_H__
+
+////////////////////////////////////////////////////////////////////////
+/// INCLUDES ///
+////////////////////////////////////////////////////////////////////////
+
+#include "main.h"
+
+////////////////////////////////////////////////////////////////////////
+/// PARAMETERS ///
+////////////////////////////////////////////////////////////////////////
+
+// the current version
+#define ABC_VERSION "UC Berkeley, ABC 1.0"
+
+// the maximum length of an input line
+#define MAX_STR 32768
+
+////////////////////////////////////////////////////////////////////////
+/// STRUCTURE DEFINITIONS ///
+////////////////////////////////////////////////////////////////////////
+
+struct Abc_Frame_t_
+{
+ // general info
+ char * sVersion; // the name of the current version
+ // commands, aliases, etc
+ st_table * tCommands; // the command table
+ st_table * tAliases; // the alias table
+ st_table * tFlags; // the flag table
+ Vec_Ptr_t * aHistory; // the command history
+ // the functionality
+ Abc_Ntk_t * pNtkCur; // the current network
+ int nSteps; // the counter of different network processed
+ // when this flag is 1, the current command is executed in autoexec mode
+ int fAutoexac;
+ // output streams
+ FILE * Out;
+ FILE * Err;
+ FILE * Hst;
+ // used for runtime measurement
+ int TimeCommand; // the runtime of the last command
+ int TimeTotal; // the total runtime of all commands
+ int fBatchMode; // are we invoked in batch mode?
+ // temporary storage for structural choices
+ Abc_Ntk_t * pStored; // the stored networks
+ int nStored; // the number of stored networks
+
+ void * pLibLut; // the current LUT library
+ void * pLibGen; // the current genlib
+ void * pLibSuper; // the current supergate library
+};
+
+////////////////////////////////////////////////////////////////////////
+/// GLOBAL VARIABLES ///
+////////////////////////////////////////////////////////////////////////
+
+////////////////////////////////////////////////////////////////////////
+/// MACRO DEFITIONS ///
+////////////////////////////////////////////////////////////////////////
+
+
+////////////////////////////////////////////////////////////////////////
+/// FUNCTION DEFITIONS ///
+////////////////////////////////////////////////////////////////////////
+
+/*=== mvMain.c ===========================================================*/
+extern int main( int argc, char * argv[] );
+/*=== mvInit.c ===================================================*/
+extern void Abc_FrameInit( Abc_Frame_t * pAbc );
+extern void Abc_FrameEnd( Abc_Frame_t * pAbc );
+/*=== mvFrame.c =====================================================*/
+extern Abc_Frame_t * Abc_FrameAllocate();
+extern void Abc_FrameDeallocate( Abc_Frame_t * p );
+/*=== mvUtils.c =====================================================*/
+extern char * Abc_UtilsGetVersion( Abc_Frame_t * pAbc );
+extern char * Abc_UtilsGetUsersInput( Abc_Frame_t * pAbc );
+extern void Abc_UtilsPrintHello( Abc_Frame_t * pAbc );
+extern void Abc_UtilsPrintUsage( Abc_Frame_t * pAbc, char * ProgName );
+extern void Abc_UtilsSource( Abc_Frame_t * pAbc );
+
+////////////////////////////////////////////////////////////////////////
+/// END OF FILE ///
+////////////////////////////////////////////////////////////////////////
+
+#endif