From 0a79a38a4dc385d7cd76a94f349b0f1af44ae82e Mon Sep 17 00:00:00 2001 From: Alan Mishchenko Date: Sat, 10 May 2014 02:42:16 +0700 Subject: Adding duplicator of the design manager. --- src/base/abc/abc.h | 1 + src/base/abc/abcLib.c | 24 ++++++++++++++++++++++++ 2 files changed, 25 insertions(+) (limited to 'src') diff --git a/src/base/abc/abc.h b/src/base/abc/abc.h index 12a2024a..215d66be 100644 --- a/src/base/abc/abc.h +++ b/src/base/abc/abc.h @@ -673,6 +673,7 @@ extern ABC_DLL Vec_Ptr_t * Abc_NtkConverLatchNamesIntoNumbers( Abc_Ntk_t extern ABC_DLL Abc_Des_t * Abc_DesCreate( char * pName ); extern ABC_DLL void Abc_DesCleanManPointer( Abc_Des_t * p, void * pMan ); extern ABC_DLL void Abc_DesFree( Abc_Des_t * p, Abc_Ntk_t * pNtk ); +extern ABC_DLL Abc_Des_t * Abc_DesDup( Abc_Des_t * p ); extern ABC_DLL void Abc_DesPrint( Abc_Des_t * p ); extern ABC_DLL int Abc_DesAddModel( Abc_Des_t * p, Abc_Ntk_t * pNtk ); extern ABC_DLL Abc_Ntk_t * Abc_DesFindModelByName( Abc_Des_t * p, char * pName ); diff --git a/src/base/abc/abcLib.c b/src/base/abc/abcLib.c index 9a8c36f2..788b0fe0 100644 --- a/src/base/abc/abcLib.c +++ b/src/base/abc/abcLib.c @@ -119,6 +119,30 @@ void Abc_DesFree( Abc_Des_t * p, Abc_Ntk_t * pNtkSave ) ABC_FREE( p ); } +/**Function************************************************************* + + Synopsis [Duplicated the library.] + + Description [] + + SideEffects [] + + SeeAlso [] + +***********************************************************************/ +Abc_Des_t * Abc_DesDup( Abc_Des_t * p ) +{ + Abc_Des_t * pNew; + Abc_Ntk_t * pTemp; + int i; + pNew = Abc_DesCreate( p->pName ); + Vec_PtrForEachEntry( Abc_Ntk_t *, p->vModules, pTemp, i ) + Abc_DesAddModel( pNew, Abc_NtkDup(pTemp) ); + Vec_PtrForEachEntry( Abc_Ntk_t *, p->vTops, pTemp, i ) + Vec_PtrPush( pNew->vTops, pTemp->pCopy ); + return pNew; +} + /**Function************************************************************* Synopsis [Frees the library.] -- cgit v1.2.3