Mercurial > cgi-bin > hgwebdir.cgi > PR > Applications > HWSim > HWSim__PingPong__HWDef
changeset 20:3a4be4048a21
missing changes committed
author | hausers |
---|---|
date | Mon, 02 Apr 2012 14:06:11 +0200 |
parents | ba3883d39e62 |
children | fac65c465f98 |
files | CircuitNetlistCreator.c HWSim__PingPong__HWDef/HWSim__PingPong__HWDef.h main.c |
diffstat | 3 files changed, 49 insertions(+), 27 deletions(-) [+] |
line diff
1.1 --- a/CircuitNetlistCreator.c Fri Mar 02 18:14:06 2012 +0100 1.2 +++ b/CircuitNetlistCreator.c Mon Apr 02 14:06:11 2012 +0200 1.3 @@ -52,12 +52,14 @@ 1.4 1.5 netlist = malloc( sizeof(HWSimNetlist) ); 1.6 numElems= 2; 1.7 - elems = malloc( numElems * sizeof(HWSimElem) ); 1.8 + elems = malloc( numElems * sizeof(HWSimElem *) ); 1.9 netlist->numElems = numElems; 1.10 netlist->elems = elems; 1.11 netlist->numActivityTypes = 1; 1.12 netlist->activityTypes = malloc(netlist->numActivityTypes*sizeof(HWSimActivityType*)); 1.13 + // Stefan: tocheck valgrind 1.14 netlist->activityTypes[PING_PONG_TYPE] = createPingPongActivityType(); 1.15 + 1.16 elems[0] = createAPingPongElem( netlist ); //use info from netlist 1.17 elems[1] = createAPingPongElem( netlist ); 1.18 //on one of the elems, make reset trigger an action 1.19 @@ -75,7 +77,7 @@ 1.20 *The format is: sending TL-index, out-port, dest TL-index, in-port 1.21 */ 1.22 numCommPaths = 2; 1.23 - commPaths = malloc( numCommPaths * sizeof(HWSimCommPath) ); 1.24 + commPaths = malloc( numCommPaths * sizeof(HWSimCommPath *) ); 1.25 netlist->numCommPaths= numCommPaths; 1.26 netlist->commPaths= commPaths; 1.27 //TL 0, out-port 0 to TL 1, in-port 0 1.28 @@ -90,6 +92,24 @@ 1.29 1.30 return netlist; 1.31 } 1.32 + 1.33 +void 1.34 +freePingPongNetlist (HWSimNetlist *netlist) 1.35 +{ 1.36 + int i; 1.37 + for (i= 0; i<netlist->numCommPaths; i++) { 1.38 + free(netlist->commPaths[i]); 1.39 + } 1.40 + free(netlist->commPaths); 1.41 + for (i= 0; i<netlist->numElems; i++) { 1.42 + free(&netlist->elems[i]->inPorts[-1]); 1.43 + free(netlist->elems[i]); 1.44 + } 1.45 + 1.46 + free(netlist->activityTypes); 1.47 + free(netlist->elems); 1.48 + free(netlist); 1.49 +} 1.50 1.51 //Stefan: copy netlist struct with VMS malloc after VMS initialized? 1.52 //ANSWER: yes, otherwise the user has to deal with VMS details.
2.1 --- a/HWSim__PingPong__HWDef/HWSim__PingPong__HWDef.h Fri Mar 02 18:14:06 2012 +0100 2.2 +++ b/HWSim__PingPong__HWDef/HWSim__PingPong__HWDef.h Mon Apr 02 14:06:11 2012 +0200 2.3 @@ -46,6 +46,8 @@ 2.4 2.5 HWSimNetlist* createPingPongNetlist (); 2.6 2.7 +void freePingPongNetlist (HWSimNetlist *netlist); 2.8 + 2.9 #endif /**/ 2.10 2.11
3.1 --- a/main.c Fri Mar 02 18:14:06 2012 +0100 3.2 +++ b/main.c Mon Apr 02 14:06:11 2012 +0200 3.3 @@ -4,7 +4,7 @@ 3.4 * 3.5 * author seanhalle@yahoo.com 3.6 */ 3.7 - 3.8 + 3.9 #include <malloc.h> 3.10 #include <stdlib.h> 3.11 3.12 @@ -24,38 +24,38 @@ 3.13 * 3.14 */ 3.15 3.16 -int main( int argc, char **argv ) 3.17 - { ParamBag *simParams; 3.18 - HWSimNetlist *netlist; 3.19 - HWSimResults *simResults; 3.20 +int main(int argc, char **argv) { 3.21 + ParamBag *simParams; 3.22 + HWSimNetlist *netlist; 3.23 + HWSimResults *simResults; 3.24 + int result; 3.25 3.26 #ifdef FAKE 3.27 - simParams= NULL; 3.28 - printf( "param file name: %s\n", argv[1] ); 3.29 - printf("Paraver trace file %s\n", argv[2]); 3.30 + simParams = NULL; 3.31 + printf("param file name: %s\n", argv[1]); 3.32 + printf("Paraver trace file %s\n", argv[2]); 3.33 3.34 #else 3.35 - 3.36 - // TODO use the pure C branch of paramBag 3.37 -// simParams = makeParamBag(); 3.38 -// readParamFileIntoBag( argv[1], simParams ); 3.39 + 3.40 + //TODO use the pure C branch of paramBag 3.41 + simParams = makeParamBag(); 3.42 + readParamFileIntoBag( argv[1], simParams ); 3.43 #endif 3.44 - 3.45 - netlist = createPingPongNetlist(); 3.46 + 3.47 + netlist = createPingPongNetlist(); 3.48 3.49 #ifdef FAKE 3.50 - simResults= create_simulation_results__fake(simParams,netlist); 3.51 + simResults = create_simulation_results__fake(simParams, netlist); 3.52 #else 3.53 - simResults = 3.54 - HWSim__run_simulation( NULL, netlist ); 3.55 -// HWSim_test__run(); 3.56 + simResults = HWSim__run_simulation( simParams, netlist ); 3.57 + //HWSim_test__run(); 3.58 #endif 3.59 3.60 - //HWSim 3.61 - //HWSim__generate_paraver_output(argv[2], simResults, netlist); //Stefan: my version 3.62 - //HWSim__generate_paraver_output(simResults); 3.63 - //HWSim__generate_vcd_output( simResults ); 3.64 - 3.65 - exit(0); //cleans up 3.66 - } 3.67 + //HWSim 3.68 + //HWSim__generate_paraver_output(argv[2], simResults, netlist); //Stefan: my version 3.69 + //HWSim__generate_paraver_output(simResults); 3.70 + //HWSim__generate_vcd_output( simResults ); 3.71 3.72 + exit(0); //cleans up 3.73 +} 3.74 +