# HG changeset patch # User hausers # Date 1333368371 -7200 # Node ID 3a4be4048a2185ea3d701313e0006b990df8df26 # Parent ba3883d39e62eccea0a181e2df1b2c101a19cd1a missing changes committed diff -r ba3883d39e62 -r 3a4be4048a21 CircuitNetlistCreator.c --- a/CircuitNetlistCreator.c Fri Mar 02 18:14:06 2012 +0100 +++ b/CircuitNetlistCreator.c Mon Apr 02 14:06:11 2012 +0200 @@ -52,12 +52,14 @@ netlist = malloc( sizeof(HWSimNetlist) ); numElems= 2; - elems = malloc( numElems * sizeof(HWSimElem) ); + elems = malloc( numElems * sizeof(HWSimElem *) ); netlist->numElems = numElems; netlist->elems = elems; netlist->numActivityTypes = 1; netlist->activityTypes = malloc(netlist->numActivityTypes*sizeof(HWSimActivityType*)); + // Stefan: tocheck valgrind netlist->activityTypes[PING_PONG_TYPE] = createPingPongActivityType(); + elems[0] = createAPingPongElem( netlist ); //use info from netlist elems[1] = createAPingPongElem( netlist ); //on one of the elems, make reset trigger an action @@ -75,7 +77,7 @@ *The format is: sending TL-index, out-port, dest TL-index, in-port */ numCommPaths = 2; - commPaths = malloc( numCommPaths * sizeof(HWSimCommPath) ); + commPaths = malloc( numCommPaths * sizeof(HWSimCommPath *) ); netlist->numCommPaths= numCommPaths; netlist->commPaths= commPaths; //TL 0, out-port 0 to TL 1, in-port 0 @@ -90,6 +92,24 @@ return netlist; } + +void +freePingPongNetlist (HWSimNetlist *netlist) +{ + int i; + for (i= 0; inumCommPaths; i++) { + free(netlist->commPaths[i]); + } + free(netlist->commPaths); + for (i= 0; inumElems; i++) { + free(&netlist->elems[i]->inPorts[-1]); + free(netlist->elems[i]); + } + + free(netlist->activityTypes); + free(netlist->elems); + free(netlist); +} //Stefan: copy netlist struct with VMS malloc after VMS initialized? //ANSWER: yes, otherwise the user has to deal with VMS details. diff -r ba3883d39e62 -r 3a4be4048a21 HWSim__PingPong__HWDef/HWSim__PingPong__HWDef.h --- a/HWSim__PingPong__HWDef/HWSim__PingPong__HWDef.h Fri Mar 02 18:14:06 2012 +0100 +++ b/HWSim__PingPong__HWDef/HWSim__PingPong__HWDef.h Mon Apr 02 14:06:11 2012 +0200 @@ -46,6 +46,8 @@ HWSimNetlist* createPingPongNetlist (); +void freePingPongNetlist (HWSimNetlist *netlist); + #endif /**/ diff -r ba3883d39e62 -r 3a4be4048a21 main.c --- a/main.c Fri Mar 02 18:14:06 2012 +0100 +++ b/main.c Mon Apr 02 14:06:11 2012 +0200 @@ -4,7 +4,7 @@ * * author seanhalle@yahoo.com */ - + #include #include @@ -24,38 +24,38 @@ * */ -int main( int argc, char **argv ) - { ParamBag *simParams; - HWSimNetlist *netlist; - HWSimResults *simResults; +int main(int argc, char **argv) { + ParamBag *simParams; + HWSimNetlist *netlist; + HWSimResults *simResults; + int result; #ifdef FAKE - simParams= NULL; - printf( "param file name: %s\n", argv[1] ); - printf("Paraver trace file %s\n", argv[2]); + simParams = NULL; + printf("param file name: %s\n", argv[1]); + printf("Paraver trace file %s\n", argv[2]); #else - - // TODO use the pure C branch of paramBag -// simParams = makeParamBag(); -// readParamFileIntoBag( argv[1], simParams ); + + //TODO use the pure C branch of paramBag + simParams = makeParamBag(); + readParamFileIntoBag( argv[1], simParams ); #endif - - netlist = createPingPongNetlist(); + + netlist = createPingPongNetlist(); #ifdef FAKE - simResults= create_simulation_results__fake(simParams,netlist); + simResults = create_simulation_results__fake(simParams, netlist); #else - simResults = - HWSim__run_simulation( NULL, netlist ); -// HWSim_test__run(); + simResults = HWSim__run_simulation( simParams, netlist ); + //HWSim_test__run(); #endif - //HWSim - //HWSim__generate_paraver_output(argv[2], simResults, netlist); //Stefan: my version - //HWSim__generate_paraver_output(simResults); - //HWSim__generate_vcd_output( simResults ); - - exit(0); //cleans up - } + //HWSim + //HWSim__generate_paraver_output(argv[2], simResults, netlist); //Stefan: my version + //HWSim__generate_paraver_output(simResults); + //HWSim__generate_vcd_output( simResults ); + exit(0); //cleans up +} +