changeset 3:a6b3cab179b1 longjmp tip

Added no-measurments option for platforms without support. Added static X86, ARM and basic Kalray build support. This branch requires the longjmp versions of libprt and libvreo
author Philipe Louchtch - de Raadt
date Sat, 12 Jul 2014 20:21:47 +0200
parents 1b61e0c00512
children
files PR_defs__turn_on_and_off.h ParamHelper/Param.h ParamHelper/ParamBag.c ParamHelper/ReadParamsFromFile.c Reo__Matrix_Mult/Circuit.c Reo__Matrix_Mult/Circuit.h Reo__Matrix_Mult/DivideWork.c Reo__Matrix_Mult/MeasurementStuff.c Reo__Matrix_Mult/Producer_and_Consumer.c Reo__Matrix_Mult/Reo__Matrix_Mult.h Reo__Matrix_Mult/SeedVP.c Reo__Matrix_Mult/k_3/Circuit.c Reo__Matrix_Mult/k_3/Circuit.h Reo__Matrix_Mult/k_3_corr/Circuit_corr.c Reo__Matrix_Mult/k_4/Circuit.c Reo__Matrix_Mult/k_4/Circuit.h main.c nb__Reo_matrix_mult/.dep.inc nb__Reo_matrix_mult/Makefile nb__Reo_matrix_mult/nbproject/Makefile-Debug_Sequential.mk nb__Reo_matrix_mult/nbproject/Makefile-MEAS_ON.mk nb__Reo_matrix_mult/nbproject/Makefile-impl.mk nb__Reo_matrix_mult/nbproject/Makefile-longjmp.mk nb__Reo_matrix_mult/nbproject/Makefile-longjmp_ARM.mk nb__Reo_matrix_mult/nbproject/Makefile-longjmp_X86_static.mk nb__Reo_matrix_mult/nbproject/Makefile-longjmp_rtems.mk nb__Reo_matrix_mult/nbproject/Makefile-variables.mk nb__Reo_matrix_mult/nbproject/Package-Debug_Sequential.bash nb__Reo_matrix_mult/nbproject/Package-MEAS_ON.bash nb__Reo_matrix_mult/nbproject/Package-longjmp.bash nb__Reo_matrix_mult/nbproject/Package-longjmp_ARM.bash nb__Reo_matrix_mult/nbproject/Package-longjmp_X86_static.bash nb__Reo_matrix_mult/nbproject/Package-longjmp_rtems.bash nb__Reo_matrix_mult/nbproject/configurations.xml nb__Reo_matrix_mult/nbproject/private/Makefile-variables.mk nb__Reo_matrix_mult/nbproject/private/configurations.xml nb__Reo_matrix_mult/nbproject/private/launcher.properties nb__Reo_matrix_mult/nbproject/private/private.xml nb__Reo_matrix_mult/nbproject/project.xml
diffstat 35 files changed, 6858 insertions(+), 223 deletions(-) [+]
line diff
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/PR_defs__turn_on_and_off.h	Sat Jul 12 20:21:47 2014 +0200
     1.3 @@ -0,0 +1,90 @@
     1.4 +/*
     1.5 + *  Copyright 2009 OpenSourceResearchInstitute.org
     1.6 + *  Licensed under GNU General Public License version 2
     1.7 + *
     1.8 + * Author: seanhalle@yahoo.com
     1.9 + * 
    1.10 + */
    1.11 +
    1.12 +#ifndef _PR_DEFS_TURN_ON_AND_OFF_H
    1.13 +#define _PR_DEFS_TURN_ON_AND_OFF_H
    1.14 +#define _GNU_SOURCE
    1.15 +
    1.16 +
    1.17 +
    1.18 +
    1.19 +//======================  Turn Debug things on and off  =====================
    1.20 +/*When DEBUG__TURN_ON_SEQUENTIAL_MODE is defined, PR does sequential exe in the main thread
    1.21 + * It still does co-routines and all the mechanisms are the same, it just
    1.22 + * has only a single thread and animates Slvs one at a time
    1.23 + */
    1.24 +//#define DEBUG__TURN_ON_SEQUENTIAL_MODE
    1.25 +   //check for sequential mode and redefine num cores to be 1 so that lang
    1.26 +   // code doesn't have to do special #ifdef for sequential mode
    1.27 +#ifdef DEBUG__TURN_ON_SEQUENTIAL_MODE
    1.28 +   #ifdef NUM_CORES
    1.29 +      #undef  NUM_CORES
    1.30 +   #endif
    1.31 +   #define NUM_CORES 1
    1.32 +#endif
    1.33 +
    1.34 +/*turns on the probe-instrumentation in the application -- when not
    1.35 + * defined, the calls to the probe functions turn into comments
    1.36 + */
    1.37 +//#define DEBUG__TURN_ON_DEBUG_PRINT
    1.38 +
    1.39 +/*These defines turn types of bug messages on and off
    1.40 + */
    1.41 +#define dbgAppFlow   TRUE /* Top level flow of application code -- general*/
    1.42 +#define dbgProbes    FALSE /* for issues inside probes themselves*/
    1.43 +#define dbgMaster    FALSE /* obsolete*/
    1.44 +#define dbgRqstHdlr  TRUE /* in request handler code*/
    1.45 +#define dbgSS        FALSE /* in request handler code*/
    1.46 +#define dbgInfra     FALSE /* in request handler code*/
    1.47 +
    1.48 +//#define DEBUG__TURN_ON_ERROR_MSGS
    1.49 +
    1.50 +//==================  Turn Probe Things on and off ====================
    1.51 +/*Probes are used in the application as a cheap, convenient, and fast way
    1.52 + * to collect statistics.  Define this to enable them, else the probe
    1.53 + * statements in the application code all turn into empty whitespace
    1.54 + * in the pre-processor
    1.55 + */
    1.56 +//#define PROBES__TURN_ON_STATS_PROBES
    1.57 +
    1.58 +/*When PROBES__TURN_ON_STATS_PROBES is defined, turn on one of these to choose
    1.59 + * what kind of measurement the probes store
    1.60 + */
    1.61 +//#define PROBES__USE_TSC_PROBES
    1.62 +#define PROBES__USE_TIME_OF_DAY_PROBES
    1.63 +//#define PROBES__USE_PERF_CTR_PROBES
    1.64 +
    1.65 +
    1.66 +//==============  Turn Internal Measurement Things on and off ===============
    1.67 +
    1.68 +//#define MEAS__TURN_ON_SUSP_MEAS
    1.69 +//#define MEAS__TURN_ON_MASTER_MEAS
    1.70 +//#define MEAS__TURN_ON_MASTER_LOCK_MEAS
    1.71 +//#define MEAS__TURN_ON_MALLOC_MEAS
    1.72 +//#define MEAS__TURN_ON_PLUGIN_MEAS
    1.73 +//#define MEAS__TURN_ON_SYSTEM_MEAS
    1.74 +   /*turn on/off subtraction of create measurements from plugin meas*/
    1.75 +//#define MEAS__TURN_ON_EXCLUDE_CREATION_TIME 
    1.76 +
    1.77 +
    1.78 +//#define HOLISTIC__TURN_ON_PERF_COUNTERS
    1.79 +//#define HOLISTIC__TURN_ON_OBSERVE_UCC
    1.80 +//#define HOLISTIC__TURN_ON_DETECT_CONSTRAINT_GRAPH
    1.81 +
    1.82 +//===================  Turn on or off system options  =======================
    1.83 +//
    1.84 +/*Defining SYS__TURN_ON_WORK_STEALING causes the core controller behavior
    1.85 + * to change.  When it detects too many back-to-back masters, then it 
    1.86 + * searches the other core controllers, looking for work it can steal from
    1.87 + * them.
    1.88 + */
    1.89 +//#define SYS__TURN_ON_WORK_STEALING
    1.90 +
    1.91 +//===========================================================================
    1.92 +#endif	/*  */
    1.93 +
     2.1 --- a/Reo__Matrix_Mult/Circuit.c	Wed Feb 19 09:27:10 2014 -0800
     2.2 +++ b/Reo__Matrix_Mult/Circuit.c	Sat Jul 12 20:21:47 2014 +0200
     2.3 @@ -6,12 +6,12 @@
     2.4  VReoCircuit *create_circuit(SlaveVP *animVP) {
     2.5  
     2.6  	/* Declare variables. */
     2.7 -	VReoCircuit  *circuit;
     2.8 -	VReoBridge   *bridge, *bridges, **boundaryBridges;
     2.9 -	VReoIsland   *islands, *island;
    2.10 +	VReoCircuit *circuit;
    2.11 +	VReoBridge *bridge, *bridges, **boundaryBridges;
    2.12 +	VReoIsland *islands, *island;
    2.13  	VReoO1island *o1islands, *o1island;
    2.14  	VReoCheckerFn *bridgeReaderCheckerFns, *bridgeWriterCheckerFns;
    2.15 -	VReoDoerFn   *bridgeReaderDoerFns, *bridgeWriterDoerFns;
    2.16 +	VReoDoerFn *bridgeReaderDoerFns, *bridgeWriterDoerFns;
    2.17  	PrivQueueStruc *offerQ0, *offerQ1;
    2.18  	VReoPartnerQStruct *partnerQStruct0, *partnerQStruct1;
    2.19  
    2.20 @@ -29,8 +29,6 @@
    2.21  	bridge = &(bridges[CKT_BRIDGE_Broad_0]);
    2.22  	bridge->buffer = NULL;
    2.23  	bridge->bridgeIsFull = FALSE;
    2.24 -        bridge->writerType   = None;
    2.25 -        bridge->readerType   = None;
    2.26  	bridge->waitingReaderVP = NULL;
    2.27  	bridge->waitingWriterVP = NULL;
    2.28  	bridge->readerPartnerQStruct = NULL;
    2.29 @@ -54,6 +52,24 @@
    2.30  	bridge->readerPartnerQStruct = NULL;
    2.31  	bridge->writerPartnerQStruct = NULL;
    2.32  
    2.33 +	/* Initialize bridge In_2. */
    2.34 +	bridge = &(bridges[CKT_BRIDGE_In_2]);
    2.35 +	bridge->buffer = NULL;
    2.36 +	bridge->bridgeIsFull = FALSE;
    2.37 +	bridge->waitingReaderVP = NULL;
    2.38 +	bridge->waitingWriterVP = NULL;
    2.39 +	bridge->readerPartnerQStruct = NULL;
    2.40 +	bridge->writerPartnerQStruct = NULL;
    2.41 +
    2.42 +	/* Initialize bridge In_3. */
    2.43 +	bridge = &(bridges[CKT_BRIDGE_In_3]);
    2.44 +	bridge->buffer = NULL;
    2.45 +	bridge->bridgeIsFull = FALSE;
    2.46 +	bridge->waitingReaderVP = NULL;
    2.47 +	bridge->waitingWriterVP = NULL;
    2.48 +	bridge->readerPartnerQStruct = NULL;
    2.49 +	bridge->writerPartnerQStruct = NULL;
    2.50 +
    2.51  	/* Initialize bridge Out_0. */
    2.52  	bridge = &(bridges[CKT_BRIDGE_Out_0]);
    2.53  	bridge->buffer = NULL;
    2.54 @@ -75,8 +91,7 @@
    2.55  	/* Initialize bridge FIFO0. */
    2.56  	bridge = &(bridges[CKT_BRIDGE_FIFO0]);
    2.57  	bridge->buffer = NULL;
    2.58 -	bridge->bridgeIsFull = FALSE;
    2.59 -   bridge->waitingReaderVP = NULL;
    2.60 +	bridge->bridgeIsFull = FALSE;bridge->waitingReaderVP = NULL;
    2.61  	bridge->waitingWriterVP = NULL;
    2.62  	bridge->readerPartnerQStruct = NULL;
    2.63  	bridge->writerPartnerQStruct = NULL;
    2.64 @@ -93,8 +108,7 @@
    2.65  	/* Initialize bridge FIFO2. */
    2.66  	bridge = &(bridges[CKT_BRIDGE_FIFO2]);
    2.67  	bridge->buffer = NULL;
    2.68 -	bridge->bridgeIsFull = FALSE;
    2.69 -   bridge->waitingReaderVP = NULL;
    2.70 +	bridge->bridgeIsFull = FALSE;bridge->waitingReaderVP = NULL;
    2.71  	bridge->waitingWriterVP = NULL;
    2.72  	bridge->readerPartnerQStruct = NULL;
    2.73  	bridge->writerPartnerQStruct = NULL;
    2.74 @@ -108,13 +122,49 @@
    2.75  	bridge->readerPartnerQStruct = NULL;
    2.76  	bridge->writerPartnerQStruct = NULL;
    2.77  
    2.78 +	/* Initialize bridge FIFO4. */
    2.79 +	bridge = &(bridges[CKT_BRIDGE_FIFO4]);
    2.80 +	bridge->buffer = NULL;
    2.81 +	bridge->bridgeIsFull = FALSE;bridge->waitingReaderVP = NULL;
    2.82 +	bridge->waitingWriterVP = NULL;
    2.83 +	bridge->readerPartnerQStruct = NULL;
    2.84 +	bridge->writerPartnerQStruct = NULL;
    2.85 +
    2.86 +	/* Initialize bridge FIFO5. */
    2.87 +	bridge = &(bridges[CKT_BRIDGE_FIFO5]);
    2.88 +	bridge->buffer = malloc(1);
    2.89 +	bridge->bridgeIsFull = TRUE;
    2.90 +	bridge->waitingReaderVP = NULL;
    2.91 +	bridge->waitingWriterVP = NULL;
    2.92 +	bridge->readerPartnerQStruct = NULL;
    2.93 +	bridge->writerPartnerQStruct = NULL;
    2.94 +
    2.95 +	/* Initialize bridge FIFO6. */
    2.96 +	bridge = &(bridges[CKT_BRIDGE_FIFO6]);
    2.97 +	bridge->buffer = NULL;
    2.98 +	bridge->bridgeIsFull = FALSE;bridge->waitingReaderVP = NULL;
    2.99 +	bridge->waitingWriterVP = NULL;
   2.100 +	bridge->readerPartnerQStruct = NULL;
   2.101 +	bridge->writerPartnerQStruct = NULL;
   2.102 +
   2.103 +	/* Initialize bridge FIFO7. */
   2.104 +	bridge = &(bridges[CKT_BRIDGE_FIFO7]);
   2.105 +	bridge->buffer = malloc(1);
   2.106 +	bridge->bridgeIsFull = TRUE;
   2.107 +	bridge->waitingReaderVP = NULL;
   2.108 +	bridge->waitingWriterVP = NULL;
   2.109 +	bridge->readerPartnerQStruct = NULL;
   2.110 +	bridge->writerPartnerQStruct = NULL;
   2.111 +
   2.112  	/* Initialize boundary bridges. */
   2.113  	boundaryBridges = PR_WL__malloc(NUM_BOUNDARY_BRIDGES * sizeof(VReoBridge*));
   2.114  	boundaryBridges[0] = &(bridges[CKT_BRIDGE_Broad_0]);
   2.115  	boundaryBridges[1] = &(bridges[CKT_BRIDGE_In_0]);
   2.116  	boundaryBridges[2] = &(bridges[CKT_BRIDGE_In_1]);
   2.117 -	boundaryBridges[3] = &(bridges[CKT_BRIDGE_Out_0]);
   2.118 -	boundaryBridges[4] = &(bridges[CKT_BRIDGE_Out_1]);
   2.119 +	boundaryBridges[3] = &(bridges[CKT_BRIDGE_In_2]);
   2.120 +	boundaryBridges[4] = &(bridges[CKT_BRIDGE_In_3]);
   2.121 +	boundaryBridges[5] = &(bridges[CKT_BRIDGE_Out_0]);
   2.122 +	boundaryBridges[6] = &(bridges[CKT_BRIDGE_Out_1]);
   2.123  
   2.124  	//
   2.125  	// INITIALIZE ISLANDS
   2.126 @@ -124,7 +174,7 @@
   2.127  	island = &(islands[CKT_I0]);
   2.128  
   2.129  	island->numCheckerFns = 1;
   2.130 -	island->numBridges = 4;
   2.131 +	island->numBridges = 6;
   2.132  
   2.133  	island->checkerFns = PR_WL__malloc(island->numCheckerFns * sizeof(VReoCheckerFn));
   2.134  	island->checkerFns[0] = &Checker_0__I0;
   2.135 @@ -136,7 +186,9 @@
   2.136  	island->bridges[I0_BRIDGE_Broad_0] = &(bridges[CKT_BRIDGE_Broad_0]);
   2.137  	island->bridges[I0_BRIDGE_Broad_0Output1] = &(bridges[CKT_BRIDGE_Broad_0Output1]);
   2.138  	island->bridges[I0_BRIDGE_Broad_0Output2] = &(bridges[CKT_BRIDGE_Broad_0Output2]);
   2.139 +	island->bridges[I0_BRIDGE_Broad_0Output3] = &(bridges[CKT_BRIDGE_Broad_0Output3]);
   2.140  	island->bridges[I0_BRIDGE_Out_1] = &(bridges[CKT_BRIDGE_Out_1]);
   2.141 +	island->bridges[I0_BRIDGE_Broad_0Output4] = &(bridges[CKT_BRIDGE_Broad_0Output4]);
   2.142  
   2.143  	/* 
   2.144  	 * Initialize Island 0: register Island 0 as a reader on 
   2.145 @@ -144,8 +196,8 @@
   2.146  	 */
   2.147  	bridgeReaderCheckerFns = PR_WL__malloc( NUM_I0_CHECKERS_INVOLVE_BRIDGE_Broad_0 * sizeof(VReoCheckerFn *) );
   2.148  	bridgeReaderDoerFns = PR_WL__malloc( NUM_I0_CHECKERS_INVOLVE_BRIDGE_Broad_0 * sizeof(VReoDoerFn *) );
   2.149 -	bridgeReaderCheckerFns[0] = (VReoCheckerFn) &CHECKER3_I0;
   2.150 -	bridgeReaderDoerFns[0] = (VReoDoerFn) &DOER3_I0;
   2.151 +	bridgeReaderCheckerFns[0] = (VReoCheckerFn) &CHECKER2_I0;
   2.152 +	bridgeReaderDoerFns[0] = (VReoDoerFn) &DOER2_I0;
   2.153  
   2.154  	bridge = &(bridges[CKT_BRIDGE_Broad_0]);
   2.155  	bridge->reader = &(islands[CKT_I0]);
   2.156 @@ -160,8 +212,8 @@
   2.157  	 */
   2.158  	bridgeWriterCheckerFns = PR_WL__malloc( NUM_I0_CHECKERS_INVOLVE_BRIDGE_Broad_0Output1 * sizeof(VReoCheckerFn *) );
   2.159  	bridgeWriterDoerFns = PR_WL__malloc( NUM_I0_CHECKERS_INVOLVE_BRIDGE_Broad_0Output1 * sizeof(VReoDoerFn *) );
   2.160 -	bridgeWriterCheckerFns[0] = (VReoCheckerFn) &CHECKER3_I0;
   2.161 -	bridgeWriterDoerFns[0] = (VReoDoerFn) &DOER3_I0;
   2.162 +	bridgeWriterCheckerFns[0] = (VReoCheckerFn) &CHECKER2_I0;
   2.163 +	bridgeWriterDoerFns[0] = (VReoDoerFn) &DOER2_I0;
   2.164  
   2.165  	bridge = &(bridges[CKT_BRIDGE_Broad_0Output1]);
   2.166  	bridge->writer = &(islands[CKT_I0]);
   2.167 @@ -176,8 +228,8 @@
   2.168  	 */
   2.169  	bridgeWriterCheckerFns = PR_WL__malloc( NUM_I0_CHECKERS_INVOLVE_BRIDGE_Broad_0Output2 * sizeof(VReoCheckerFn *) );
   2.170  	bridgeWriterDoerFns = PR_WL__malloc( NUM_I0_CHECKERS_INVOLVE_BRIDGE_Broad_0Output2 * sizeof(VReoDoerFn *) );
   2.171 -	bridgeWriterCheckerFns[0] = (VReoCheckerFn) &CHECKER3_I0;
   2.172 -	bridgeWriterDoerFns[0] = (VReoDoerFn) &DOER3_I0;
   2.173 +	bridgeWriterCheckerFns[0] = (VReoCheckerFn) &CHECKER2_I0;
   2.174 +	bridgeWriterDoerFns[0] = (VReoDoerFn) &DOER2_I0;
   2.175  
   2.176  	bridge = &(bridges[CKT_BRIDGE_Broad_0Output2]);
   2.177  	bridge->writer = &(islands[CKT_I0]);
   2.178 @@ -188,12 +240,28 @@
   2.179  
   2.180  	/* 
   2.181  	 * Initialize Island 0: register Island 0 as a writer on 
   2.182 +	 * bridge Broad_0Output3.
   2.183 +	 */
   2.184 +	bridgeWriterCheckerFns = PR_WL__malloc( NUM_I0_CHECKERS_INVOLVE_BRIDGE_Broad_0Output3 * sizeof(VReoCheckerFn *) );
   2.185 +	bridgeWriterDoerFns = PR_WL__malloc( NUM_I0_CHECKERS_INVOLVE_BRIDGE_Broad_0Output3 * sizeof(VReoDoerFn *) );
   2.186 +	bridgeWriterCheckerFns[0] = (VReoCheckerFn) &CHECKER2_I0;
   2.187 +	bridgeWriterDoerFns[0] = (VReoDoerFn) &DOER2_I0;
   2.188 +
   2.189 +	bridge = &(bridges[CKT_BRIDGE_Broad_0Output3]);
   2.190 +	bridge->writer = &(islands[CKT_I0]);
   2.191 +	bridge->writerType = Island;
   2.192 +	bridge->numWriterCheckerFns = NUM_I0_CHECKERS_INVOLVE_BRIDGE_Broad_0Output3;
   2.193 +	bridge->writerCheckerFns = (VReoCheckerFn *) bridgeWriterCheckerFns;
   2.194 +	bridge->writerDoerFns = (VReoDoerFn *) bridgeWriterDoerFns;
   2.195 +
   2.196 +	/* 
   2.197 +	 * Initialize Island 0: register Island 0 as a writer on 
   2.198  	 * bridge Out_1.
   2.199  	 */
   2.200  	bridgeWriterCheckerFns = PR_WL__malloc( NUM_I0_CHECKERS_INVOLVE_BRIDGE_Out_1 * sizeof(VReoCheckerFn *) );
   2.201  	bridgeWriterDoerFns = PR_WL__malloc( NUM_I0_CHECKERS_INVOLVE_BRIDGE_Out_1 * sizeof(VReoDoerFn *) );
   2.202 -	bridgeWriterCheckerFns[0] = (VReoCheckerFn) &CHECKER3_I0;
   2.203 -	bridgeWriterDoerFns[0] = (VReoDoerFn) &DOER3_I0;
   2.204 +	bridgeWriterCheckerFns[0] = (VReoCheckerFn) &CHECKER2_I0;
   2.205 +	bridgeWriterDoerFns[0] = (VReoDoerFn) &DOER2_I0;
   2.206  
   2.207  	bridge = &(bridges[CKT_BRIDGE_Out_1]);
   2.208  	bridge->writer = &(islands[CKT_I0]);
   2.209 @@ -202,6 +270,22 @@
   2.210  	bridge->writerCheckerFns = (VReoCheckerFn *) bridgeWriterCheckerFns;
   2.211  	bridge->writerDoerFns = (VReoDoerFn *) bridgeWriterDoerFns;
   2.212  
   2.213 +	/* 
   2.214 +	 * Initialize Island 0: register Island 0 as a writer on 
   2.215 +	 * bridge Broad_0Output4.
   2.216 +	 */
   2.217 +	bridgeWriterCheckerFns = PR_WL__malloc( NUM_I0_CHECKERS_INVOLVE_BRIDGE_Broad_0Output4 * sizeof(VReoCheckerFn *) );
   2.218 +	bridgeWriterDoerFns = PR_WL__malloc( NUM_I0_CHECKERS_INVOLVE_BRIDGE_Broad_0Output4 * sizeof(VReoDoerFn *) );
   2.219 +	bridgeWriterCheckerFns[0] = (VReoCheckerFn) &CHECKER2_I0;
   2.220 +	bridgeWriterDoerFns[0] = (VReoDoerFn) &DOER2_I0;
   2.221 +
   2.222 +	bridge = &(bridges[CKT_BRIDGE_Broad_0Output4]);
   2.223 +	bridge->writer = &(islands[CKT_I0]);
   2.224 +	bridge->writerType = Island;
   2.225 +	bridge->numWriterCheckerFns = NUM_I0_CHECKERS_INVOLVE_BRIDGE_Broad_0Output4;
   2.226 +	bridge->writerCheckerFns = (VReoCheckerFn *) bridgeWriterCheckerFns;
   2.227 +	bridge->writerDoerFns = (VReoDoerFn *) bridgeWriterDoerFns;
   2.228 +
   2.229  	/* Initialize Island 1. */
   2.230  	island = &(islands[CKT_I1]);
   2.231  
   2.232 @@ -332,11 +416,143 @@
   2.233  	bridge->writerCheckerFns = (VReoCheckerFn *) bridgeWriterCheckerFns;
   2.234  	bridge->writerDoerFns = (VReoDoerFn *) bridgeWriterDoerFns;
   2.235  
   2.236 +	/* Initialize Island 3. */
   2.237 +	island = &(islands[CKT_I3]);
   2.238 +
   2.239 +	island->numCheckerFns = 1;
   2.240 +	island->numBridges = 3;
   2.241 +
   2.242 +	island->checkerFns = PR_WL__malloc(island->numCheckerFns * sizeof(VReoCheckerFn));
   2.243 +	island->checkerFns[0] = &Checker_0__I3;
   2.244 +
   2.245 +	island->doerFns = PR_WL__malloc(island->numCheckerFns * sizeof(VReoDoerFn));
   2.246 +	island->doerFns[0] = &Doer_0__I3;
   2.247 +
   2.248 +	island->bridges = PR_WL__malloc(island->numBridges * sizeof(VReoBridge *));
   2.249 +	island->bridges[I3_BRIDGE_In_2] = &(bridges[CKT_BRIDGE_In_2]);
   2.250 +	island->bridges[I3_BRIDGE_X_2Input0] = &(bridges[CKT_BRIDGE_X_2Input0]);
   2.251 +	island->bridges[I3_BRIDGE_In_2Output0] = &(bridges[CKT_BRIDGE_In_2Output0]);
   2.252 +
   2.253 +	/* 
   2.254 +	 * Initialize Island 3: register Island 3 as a reader on 
   2.255 +	 * bridge In_2. 
   2.256 +	 */
   2.257 +	bridgeReaderCheckerFns = PR_WL__malloc( NUM_I3_CHECKERS_INVOLVE_BRIDGE_In_2 * sizeof(VReoCheckerFn *) );
   2.258 +	bridgeReaderDoerFns = PR_WL__malloc( NUM_I3_CHECKERS_INVOLVE_BRIDGE_In_2 * sizeof(VReoDoerFn *) );
   2.259 +	bridgeReaderCheckerFns[0] = (VReoCheckerFn) &CHECKER2_I3;
   2.260 +	bridgeReaderDoerFns[0] = (VReoDoerFn) &DOER2_I3;
   2.261 +
   2.262 +	bridge = &(bridges[CKT_BRIDGE_In_2]);
   2.263 +	bridge->reader = &(islands[CKT_I3]);
   2.264 +	bridge->readerType = Island;
   2.265 +	bridge->numReaderCheckerFns = NUM_I3_CHECKERS_INVOLVE_BRIDGE_In_2;
   2.266 +	bridge->readerCheckerFns = (VReoCheckerFn *) bridgeReaderCheckerFns;
   2.267 +	bridge->readerDoerFns = (VReoDoerFn *) bridgeReaderDoerFns;
   2.268 +
   2.269 +	/* 
   2.270 +	 * Initialize Island 3: register Island 3 as a reader on 
   2.271 +	 * bridge X_2Input0. 
   2.272 +	 */
   2.273 +	bridgeReaderCheckerFns = PR_WL__malloc( NUM_I3_CHECKERS_INVOLVE_BRIDGE_X_2Input0 * sizeof(VReoCheckerFn *) );
   2.274 +	bridgeReaderDoerFns = PR_WL__malloc( NUM_I3_CHECKERS_INVOLVE_BRIDGE_X_2Input0 * sizeof(VReoDoerFn *) );
   2.275 +	bridgeReaderCheckerFns[0] = (VReoCheckerFn) &CHECKER2_I3;
   2.276 +	bridgeReaderDoerFns[0] = (VReoDoerFn) &DOER2_I3;
   2.277 +
   2.278 +	bridge = &(bridges[CKT_BRIDGE_X_2Input0]);
   2.279 +	bridge->reader = &(islands[CKT_I3]);
   2.280 +	bridge->readerType = Island;
   2.281 +	bridge->numReaderCheckerFns = NUM_I3_CHECKERS_INVOLVE_BRIDGE_X_2Input0;
   2.282 +	bridge->readerCheckerFns = (VReoCheckerFn *) bridgeReaderCheckerFns;
   2.283 +	bridge->readerDoerFns = (VReoDoerFn *) bridgeReaderDoerFns;
   2.284 +
   2.285 +	/* 
   2.286 +	 * Initialize Island 3: register Island 3 as a writer on 
   2.287 +	 * bridge In_2Output0.
   2.288 +	 */
   2.289 +	bridgeWriterCheckerFns = PR_WL__malloc( NUM_I3_CHECKERS_INVOLVE_BRIDGE_In_2Output0 * sizeof(VReoCheckerFn *) );
   2.290 +	bridgeWriterDoerFns = PR_WL__malloc( NUM_I3_CHECKERS_INVOLVE_BRIDGE_In_2Output0 * sizeof(VReoDoerFn *) );
   2.291 +	bridgeWriterCheckerFns[0] = (VReoCheckerFn) &CHECKER2_I3;
   2.292 +	bridgeWriterDoerFns[0] = (VReoDoerFn) &DOER2_I3;
   2.293 +
   2.294 +	bridge = &(bridges[CKT_BRIDGE_In_2Output0]);
   2.295 +	bridge->writer = &(islands[CKT_I3]);
   2.296 +	bridge->writerType = Island;
   2.297 +	bridge->numWriterCheckerFns = NUM_I3_CHECKERS_INVOLVE_BRIDGE_In_2Output0;
   2.298 +	bridge->writerCheckerFns = (VReoCheckerFn *) bridgeWriterCheckerFns;
   2.299 +	bridge->writerDoerFns = (VReoDoerFn *) bridgeWriterDoerFns;
   2.300 +
   2.301 +	/* Initialize Island 4. */
   2.302 +	island = &(islands[CKT_I4]);
   2.303 +
   2.304 +	island->numCheckerFns = 1;
   2.305 +	island->numBridges = 3;
   2.306 +
   2.307 +	island->checkerFns = PR_WL__malloc(island->numCheckerFns * sizeof(VReoCheckerFn));
   2.308 +	island->checkerFns[0] = &Checker_0__I4;
   2.309 +
   2.310 +	island->doerFns = PR_WL__malloc(island->numCheckerFns * sizeof(VReoDoerFn));
   2.311 +	island->doerFns[0] = &Doer_0__I4;
   2.312 +
   2.313 +	island->bridges = PR_WL__malloc(island->numBridges * sizeof(VReoBridge *));
   2.314 +	island->bridges[I4_BRIDGE_In_3] = &(bridges[CKT_BRIDGE_In_3]);
   2.315 +	island->bridges[I4_BRIDGE_X_3Input0] = &(bridges[CKT_BRIDGE_X_3Input0]);
   2.316 +	island->bridges[I4_BRIDGE_In_3Output0] = &(bridges[CKT_BRIDGE_In_3Output0]);
   2.317 +
   2.318 +	/* 
   2.319 +	 * Initialize Island 4: register Island 4 as a reader on 
   2.320 +	 * bridge In_3. 
   2.321 +	 */
   2.322 +	bridgeReaderCheckerFns = PR_WL__malloc( NUM_I4_CHECKERS_INVOLVE_BRIDGE_In_3 * sizeof(VReoCheckerFn *) );
   2.323 +	bridgeReaderDoerFns = PR_WL__malloc( NUM_I4_CHECKERS_INVOLVE_BRIDGE_In_3 * sizeof(VReoDoerFn *) );
   2.324 +	bridgeReaderCheckerFns[0] = (VReoCheckerFn) &CHECKER3_I4;
   2.325 +	bridgeReaderDoerFns[0] = (VReoDoerFn) &DOER3_I4;
   2.326 +
   2.327 +	bridge = &(bridges[CKT_BRIDGE_In_3]);
   2.328 +	bridge->reader = &(islands[CKT_I4]);
   2.329 +	bridge->readerType = Island;
   2.330 +	bridge->numReaderCheckerFns = NUM_I4_CHECKERS_INVOLVE_BRIDGE_In_3;
   2.331 +	bridge->readerCheckerFns = (VReoCheckerFn *) bridgeReaderCheckerFns;
   2.332 +	bridge->readerDoerFns = (VReoDoerFn *) bridgeReaderDoerFns;
   2.333 +
   2.334 +	/* 
   2.335 +	 * Initialize Island 4: register Island 4 as a reader on 
   2.336 +	 * bridge X_3Input0. 
   2.337 +	 */
   2.338 +	bridgeReaderCheckerFns = PR_WL__malloc( NUM_I4_CHECKERS_INVOLVE_BRIDGE_X_3Input0 * sizeof(VReoCheckerFn *) );
   2.339 +	bridgeReaderDoerFns = PR_WL__malloc( NUM_I4_CHECKERS_INVOLVE_BRIDGE_X_3Input0 * sizeof(VReoDoerFn *) );
   2.340 +	bridgeReaderCheckerFns[0] = (VReoCheckerFn) &CHECKER3_I4;
   2.341 +	bridgeReaderDoerFns[0] = (VReoDoerFn) &DOER3_I4;
   2.342 +
   2.343 +	bridge = &(bridges[CKT_BRIDGE_X_3Input0]);
   2.344 +	bridge->reader = &(islands[CKT_I4]);
   2.345 +	bridge->readerType = Island;
   2.346 +	bridge->numReaderCheckerFns = NUM_I4_CHECKERS_INVOLVE_BRIDGE_X_3Input0;
   2.347 +	bridge->readerCheckerFns = (VReoCheckerFn *) bridgeReaderCheckerFns;
   2.348 +	bridge->readerDoerFns = (VReoDoerFn *) bridgeReaderDoerFns;
   2.349 +
   2.350 +	/* 
   2.351 +	 * Initialize Island 4: register Island 4 as a writer on 
   2.352 +	 * bridge In_3Output0.
   2.353 +	 */
   2.354 +	bridgeWriterCheckerFns = PR_WL__malloc( NUM_I4_CHECKERS_INVOLVE_BRIDGE_In_3Output0 * sizeof(VReoCheckerFn *) );
   2.355 +	bridgeWriterDoerFns = PR_WL__malloc( NUM_I4_CHECKERS_INVOLVE_BRIDGE_In_3Output0 * sizeof(VReoDoerFn *) );
   2.356 +	bridgeWriterCheckerFns[0] = (VReoCheckerFn) &CHECKER3_I4;
   2.357 +	bridgeWriterDoerFns[0] = (VReoDoerFn) &DOER3_I4;
   2.358 +
   2.359 +	bridge = &(bridges[CKT_BRIDGE_In_3Output0]);
   2.360 +	bridge->writer = &(islands[CKT_I4]);
   2.361 +	bridge->writerType = Island;
   2.362 +	bridge->numWriterCheckerFns = NUM_I4_CHECKERS_INVOLVE_BRIDGE_In_3Output0;
   2.363 +	bridge->writerCheckerFns = (VReoCheckerFn *) bridgeWriterCheckerFns;
   2.364 +	bridge->writerDoerFns = (VReoDoerFn *) bridgeWriterDoerFns;
   2.365 +
   2.366  	/* Initialize O1Island 0. */
   2.367  	o1island = &(o1islands[CKT_O1I0]);
   2.368  
   2.369 -	o1island->numBridges = 3;
   2.370 +	o1island->numBridges = 5;
   2.371  	o1island->bridges = PR_WL__malloc(o1island->numBridges * sizeof(VReoBridge *));
   2.372 +	o1island->bridges[O1I0_BRIDGE_Out_0Input3] = &(bridges[CKT_BRIDGE_Out_0Input3]);
   2.373 +	o1island->bridges[O1I0_BRIDGE_Out_0Input2] = &(bridges[CKT_BRIDGE_Out_0Input2]);
   2.374  	o1island->bridges[O1I0_BRIDGE_Out_0Input1] = &(bridges[CKT_BRIDGE_Out_0Input1]);
   2.375  	o1island->bridges[O1I0_BRIDGE_Out_0Input0] = &(bridges[CKT_BRIDGE_Out_0Input0]);
   2.376  	o1island->bridges[O1I0_BRIDGE_Out_0] = &(bridges[CKT_BRIDGE_Out_0]);
   2.377 @@ -364,6 +580,26 @@
   2.378  
   2.379  	/* 
   2.380  	 * Initialize O1Island 0: register O1Island 0 as a reader on 
   2.381 +	 * bridge Out_0Input3. 
   2.382 +	 */
   2.383 +	bridge = &(bridges[CKT_BRIDGE_Out_0Input3]);
   2.384 +	bridge->reader = &(o1island);
   2.385 +	bridge->readerType = O1island;
   2.386 +	bridge->readerPartnerQStruct = partnerQStruct0;
   2.387 +	bridge->readerOfferQ = offerQ0;
   2.388 +
   2.389 +	/* 
   2.390 +	 * Initialize O1Island 0: register O1Island 0 as a reader on 
   2.391 +	 * bridge Out_0Input2. 
   2.392 +	 */
   2.393 +	bridge = &(bridges[CKT_BRIDGE_Out_0Input2]);
   2.394 +	bridge->reader = &(o1island);
   2.395 +	bridge->readerType = O1island;
   2.396 +	bridge->readerPartnerQStruct = partnerQStruct0;
   2.397 +	bridge->readerOfferQ = offerQ0;
   2.398 +
   2.399 +	/* 
   2.400 +	 * Initialize O1Island 0: register O1Island 0 as a reader on 
   2.401  	 * bridge Out_0Input1. 
   2.402  	 */
   2.403  	bridge = &(bridges[CKT_BRIDGE_Out_0Input1]);
   2.404 @@ -397,6 +633,16 @@
   2.405  	//
   2.406  
   2.407  	/* Assumption: (writerType != NULL) implies (writerType != VP) */
   2.408 +	bridge = &(bridges[CKT_BRIDGE_Out_0Input3]);
   2.409 +	if (bridge->writerType != None && bridge->bridgeIsFull)
   2.410 +		writePrivQ( bridge, bridge->readerOfferQ );
   2.411 +
   2.412 +	/* Assumption: (writerType != NULL) implies (writerType != VP) */
   2.413 +	bridge = &(bridges[CKT_BRIDGE_Out_0Input2]);
   2.414 +	if (bridge->writerType != None && bridge->bridgeIsFull)
   2.415 +		writePrivQ( bridge, bridge->readerOfferQ );
   2.416 +
   2.417 +	/* Assumption: (writerType != NULL) implies (writerType != VP) */
   2.418  	bridge = &(bridges[CKT_BRIDGE_Out_0Input1]);
   2.419  	if (bridge->writerType != None && bridge->bridgeIsFull)
   2.420  		writePrivQ( bridge, bridge->readerOfferQ );
   2.421 @@ -432,6 +678,7 @@
   2.422  void create_VPs_w_init_and_connect( VReoCircuit *circuit, void **initDatums,
   2.423                                      SlaveVP *animVP) 
   2.424   {
   2.425 +
   2.426  	/* Declare variables. */
   2.427  	VReoBridge **boundaryBridges, *bridges, **bridgesForVP;
   2.428  	SlaveVP **VPs;
   2.429 @@ -446,16 +693,16 @@
   2.430  	/* Allocate memory for VPs. */
   2.431  	VPs = PR_WL__malloc(NUM_VPs * sizeof(SlaveVP *));
   2.432  
   2.433 -	/* Create Producer VP 0. */
   2.434 +	/* Create Producer VP 0 (Producer 0). */
   2.435  	bridgesForVP = PR_WL__malloc(1 * sizeof(VReoBridge *));
   2.436  	bridgesForVP[0] = boundaryBridges[CKT_VP_PROD0];
   2.437  
   2.438 -	prodParams = PR_WL__malloc(sizeof(MatrixMultWorkUnit));
   2.439 +	prodParams = PR_WL__malloc(sizeof(VPParams));
   2.440  	prodParams->inBridges = NULL;
   2.441  	prodParams->outBridges = bridgesForVP;
   2.442 -        prodParams->initData  = initDatums[CKT_VP_PROD0];
   2.443 +        prodParams->initData  = NULL; //this is special broadcast producer
   2.444  
   2.445 -	VPs[CKT_VP_PROD0] = VReo__create_VP(&producer_Fn, prodParams, circuit, animVP);
   2.446 +	VPs[CKT_VP_PROD0] = VReo__create_VP(&broadcast_producer_Fn, prodParams, circuit, animVP);
   2.447  
   2.448  	boundaryBridges[CKT_VP_PROD0]->writer = VPs[CKT_VP_PROD0];
   2.449  	boundaryBridges[CKT_VP_PROD0]->writerType = VP;
   2.450 @@ -464,10 +711,10 @@
   2.451  	bridgesForVP = PR_WL__malloc(1 * sizeof(VReoBridge *));
   2.452  	bridgesForVP[0] = boundaryBridges[CKT_VP_PROD1];
   2.453  
   2.454 -	prodParams = PR_WL__malloc(sizeof(MatrixMultWorkUnit));
   2.455 +	prodParams = PR_WL__malloc(sizeof(VPParams));
   2.456  	prodParams->inBridges = NULL;
   2.457  	prodParams->outBridges = bridgesForVP;
   2.458 -   prodParams->initData  = initDatums[CKT_VP_PROD1];
   2.459 +   prodParams->initData  = initDatums[0]; //gets first work unit
   2.460  
   2.461  	VPs[CKT_VP_PROD1] = VReo__create_VP(&producer_Fn, prodParams, circuit, animVP);
   2.462  
   2.463 @@ -478,49 +725,44 @@
   2.464  	bridgesForVP = PR_WL__malloc(1 * sizeof(VReoBridge *));
   2.465  	bridgesForVP[0] = boundaryBridges[CKT_VP_PROD2];
   2.466  
   2.467 -	prodParams = PR_WL__malloc(sizeof(MatrixMultWorkUnit));
   2.468 +	prodParams = PR_WL__malloc(sizeof(VPParams));
   2.469  	prodParams->inBridges = NULL;
   2.470  	prodParams->outBridges = bridgesForVP;
   2.471 -   prodParams->initData  = initDatums[CKT_VP_PROD2];
   2.472 +   prodParams->initData  = initDatums[1]; //second work-unit
   2.473  
   2.474  	VPs[CKT_VP_PROD2] = VReo__create_VP(&producer_Fn, prodParams, circuit, animVP);
   2.475  
   2.476  	boundaryBridges[CKT_VP_PROD2]->writer = VPs[CKT_VP_PROD2];
   2.477  	boundaryBridges[CKT_VP_PROD2]->writerType = VP;
   2.478  
   2.479 -//	/* Create Consumer VP 0. */
   2.480 -//	consParams = PR_WL__malloc(sizeof(TestAppConsumerParams));
   2.481 -//	
   2.482 -//	//bridgesForVP = PR_WL__malloc(1 * sizeof(VReoBridge *));
   2.483 -//	//bridgesForVP[0] = boundaryBridges[CKT_VP_CONS0];
   2.484 -//	
   2.485 -//	bridgesForVP = PR_WL__malloc(2 * sizeof(VReoBridge *));
   2.486 -//	bridgesForVP[0] = bridges[CKT_BRIDGE_Out_0];
   2.487 -//	bridgesForVP[0] = bridges[CKT_BRIDGE_Out_1];
   2.488 -//	
   2.489 -//	consParams->inBridges = bridgesForVP;
   2.490 -//	consParams->outBridges = NULL;
   2.491 -//	
   2.492 -//	VPs[CKT_VP_CONS0] = VReo__create_VP(&consumer_Fn, consParams, circuit, animVP);
   2.493 -//	boundaryBridges[CKT_VP_CONS0]->reader = VPs[CKT_VP_CONS0];
   2.494 -//	boundaryBridges[CKT_VP_CONS0]->readerType = VP;
   2.495 +	/* Create Producer VP 3. */
   2.496 +	bridgesForVP = PR_WL__malloc(1 * sizeof(VReoBridge *));
   2.497 +	bridgesForVP[0] = boundaryBridges[CKT_VP_PROD3];
   2.498  
   2.499 -//	/* Create Consumer VP 1. */
   2.500 -//	consParams = PR_WL__malloc(sizeof(TestAppConsumerParams));
   2.501 -//	
   2.502 -//	//bridgesForVP = PR_WL__malloc(1 * sizeof(VReoBridge *));
   2.503 -//	//bridgesForVP[0] = boundaryBridges[CKT_VP_CONS1];
   2.504 -//	
   2.505 -//	bridgesForVP = PR_WL__malloc(2 * sizeof(VReoBridge *));
   2.506 -//	bridgesForVP[0] = bridges[CKT_BRIDGE_Out_0];
   2.507 -//	bridgesForVP[0] = bridges[CKT_BRIDGE_Out_1];
   2.508 -//	
   2.509 -//	consParams->inBridges = bridgesForVP;
   2.510 -//	consParams->outBridges = NULL;
   2.511 -//	
   2.512 -//	VPs[CKT_VP_CONS1] = VReo__create_VP(&consumer_Fn, consParams, circuit, animVP);
   2.513 -//	boundaryBridges[CKT_VP_CONS1]->reader = VPs[CKT_VP_CONS1];
   2.514 -//	boundaryBridges[CKT_VP_CONS1]->readerType = VP;
   2.515 +	prodParams = PR_WL__malloc(sizeof(VPParams));
   2.516 +	prodParams->inBridges = NULL;
   2.517 +	prodParams->outBridges = bridgesForVP;
   2.518 +   prodParams->initData  = initDatums[2];  //third work unit
   2.519 +
   2.520 +	VPs[CKT_VP_PROD3] = VReo__create_VP(&producer_Fn, prodParams, circuit, animVP);
   2.521 +
   2.522 +	boundaryBridges[CKT_VP_PROD3]->writer = VPs[CKT_VP_PROD3];
   2.523 +	boundaryBridges[CKT_VP_PROD3]->writerType = VP;
   2.524 +
   2.525 +	/* Create Producer VP 4. */
   2.526 +	bridgesForVP = PR_WL__malloc(1 * sizeof(VReoBridge *));
   2.527 +	bridgesForVP[0] = boundaryBridges[CKT_VP_PROD4];
   2.528 +
   2.529 +	prodParams = PR_WL__malloc(sizeof(VPParams));
   2.530 +	prodParams->inBridges = NULL;
   2.531 +	prodParams->outBridges = bridgesForVP;
   2.532 +   prodParams->initData  = initDatums[3]; //fourth work-unit
   2.533 +
   2.534 +	VPs[CKT_VP_PROD4] = VReo__create_VP(&producer_Fn, prodParams, circuit, animVP);
   2.535 +
   2.536 +	boundaryBridges[CKT_VP_PROD4]->writer = VPs[CKT_VP_PROD4];
   2.537 +	boundaryBridges[CKT_VP_PROD4]->writerType = VP;
   2.538 +
   2.539  
   2.540  	/* Create Consumer VP. */
   2.541  	consParams = PR_WL__malloc(sizeof(VPParams));
   2.542 @@ -529,9 +771,8 @@
   2.543  	bridgesForVP[0] = &(bridges[CKT_BRIDGE_Out_0]);
   2.544  	bridgesForVP[1] = &(bridges[CKT_BRIDGE_Out_1]);
   2.545  
   2.546 -	consParams->inBridges  = bridgesForVP;
   2.547 +	consParams->inBridges = bridgesForVP;
   2.548  	consParams->outBridges = NULL;
   2.549 -   consParams->initData   = initDatums[CKT_VP_CONS0];
   2.550  
   2.551  	VPs[CKT_VP_CONS0] = VReo__create_VP(&consumer_Fn, consParams, circuit, animVP);
   2.552  
   2.553 @@ -549,14 +790,16 @@
   2.554  /* Checkers for Island 0. */
   2.555  
   2.556  bool32 Checker_0__I0( VReoIsland *island ) {
   2.557 -	VReoBridge *bridgeBroad_0Output1, *bridgeBroad_0Output2, *bridgeOut_1, *bridgeBroad_0;
   2.558 +	VReoBridge *bridgeBroad_0Output1, *bridgeBroad_0Output2, *bridgeBroad_0Output3, *bridgeOut_1, *bridgeBroad_0, *bridgeBroad_0Output4;
   2.559  	bool32 satisfied;
   2.560  
   2.561  	bridgeBroad_0Output1 = (island->bridges)[I0_BRIDGE_Broad_0Output1];
   2.562  	bridgeBroad_0Output2 = (island->bridges)[I0_BRIDGE_Broad_0Output2];
   2.563 +	bridgeBroad_0Output3 = (island->bridges)[I0_BRIDGE_Broad_0Output3];
   2.564  	bridgeOut_1 = (island->bridges)[I0_BRIDGE_Out_1];
   2.565  	bridgeBroad_0 = (island->bridges)[I0_BRIDGE_Broad_0];
   2.566 -	satisfied = READY_FOR_READ_BRIDGE_Broad_0 && READY_FOR_WRITE_BRIDGE_Broad_0Output1 && READY_FOR_WRITE_BRIDGE_Broad_0Output2 && READY_FOR_WRITE_BRIDGE_Out_1;
   2.567 +	bridgeBroad_0Output4 = (island->bridges)[I0_BRIDGE_Broad_0Output4];
   2.568 +	satisfied = READY_FOR_READ_BRIDGE_Broad_0 && READY_FOR_WRITE_BRIDGE_Broad_0Output1 && READY_FOR_WRITE_BRIDGE_Broad_0Output2 && READY_FOR_WRITE_BRIDGE_Broad_0Output3 && READY_FOR_WRITE_BRIDGE_Out_1 && READY_FOR_WRITE_BRIDGE_Broad_0Output4;
   2.569  	return satisfied;
   2.570  }
   2.571  
   2.572 @@ -586,6 +829,32 @@
   2.573  	return satisfied;
   2.574  }
   2.575  
   2.576 +/* Checkers for Island 3. */
   2.577 +
   2.578 +bool32 Checker_0__I3( VReoIsland *island ) {
   2.579 +	VReoBridge *bridgeIn_2, *bridgeX_2Input0, *bridgeIn_2Output0;
   2.580 +	bool32 satisfied;
   2.581 +
   2.582 +	bridgeIn_2 = (island->bridges)[I3_BRIDGE_In_2];
   2.583 +	bridgeX_2Input0 = (island->bridges)[I3_BRIDGE_X_2Input0];
   2.584 +	bridgeIn_2Output0 = (island->bridges)[I3_BRIDGE_In_2Output0];
   2.585 +	satisfied = READY_FOR_READ_BRIDGE_In_2 && READY_FOR_READ_BRIDGE_X_2Input0 && READY_FOR_WRITE_BRIDGE_In_2Output0;
   2.586 +	return satisfied;
   2.587 +}
   2.588 +
   2.589 +/* Checkers for Island 4. */
   2.590 +
   2.591 +bool32 Checker_0__I4( VReoIsland *island ) {
   2.592 +	VReoBridge *bridgeIn_3, *bridgeX_3Input0, *bridgeIn_3Output0;
   2.593 +	bool32 satisfied;
   2.594 +
   2.595 +	bridgeIn_3 = (island->bridges)[I4_BRIDGE_In_3];
   2.596 +	bridgeX_3Input0 = (island->bridges)[I4_BRIDGE_X_3Input0];
   2.597 +	bridgeIn_3Output0 = (island->bridges)[I4_BRIDGE_In_3Output0];
   2.598 +	satisfied = READY_FOR_READ_BRIDGE_In_3 && READY_FOR_READ_BRIDGE_X_3Input0 && READY_FOR_WRITE_BRIDGE_In_3Output0;
   2.599 +	return satisfied;
   2.600 +}
   2.601 +
   2.602  //==============================================================================
   2.603  
   2.604  /* Declaration of auxiliary doers. */
   2.605 @@ -593,41 +862,61 @@
   2.606  void Auxdoer_for_bridge_Broad_0( VReoBridge *bridge );
   2.607  void Auxdoer_for_bridge_In_0( VReoBridge *bridge );
   2.608  void Auxdoer_for_bridge_In_1( VReoBridge *bridge );
   2.609 +void Auxdoer_for_bridge_In_2( VReoBridge *bridge );
   2.610 +void Auxdoer_for_bridge_In_3( VReoBridge *bridge );
   2.611  void Auxdoer_for_bridge_Out_0( VReoBridge *bridge );
   2.612  void Auxdoer_for_bridge_Out_1( VReoBridge *bridge );
   2.613  void Auxdoer_for_bridge_In_0Output1( VReoBridge *bridge );
   2.614 -void Auxdoer_for_bridge_Out_0Input1( VReoBridge *bridge );
   2.615 +void Auxdoer_for_bridge_Out_0Input3( VReoBridge *bridge );
   2.616  
   2.617  void Auxdoer_for_bridge_Broad_0Output1( VReoBridge *bridge );
   2.618  void Auxdoer_for_bridge_X_0Input0( VReoBridge *bridge );
   2.619  
   2.620  void Auxdoer_for_bridge_In_1Output0( VReoBridge *bridge );
   2.621 -void Auxdoer_for_bridge_Out_0Input0( VReoBridge *bridge );
   2.622 +void Auxdoer_for_bridge_Out_0Input2( VReoBridge *bridge );
   2.623  
   2.624  void Auxdoer_for_bridge_Broad_0Output2( VReoBridge *bridge );
   2.625  void Auxdoer_for_bridge_X_1Input0( VReoBridge *bridge );
   2.626  
   2.627 +void Auxdoer_for_bridge_In_2Output0( VReoBridge *bridge );
   2.628 +void Auxdoer_for_bridge_Out_0Input1( VReoBridge *bridge );
   2.629 +
   2.630 +void Auxdoer_for_bridge_Broad_0Output3( VReoBridge *bridge );
   2.631 +void Auxdoer_for_bridge_X_2Input0( VReoBridge *bridge );
   2.632 +
   2.633 +void Auxdoer_for_bridge_In_3Output0( VReoBridge *bridge );
   2.634 +void Auxdoer_for_bridge_Out_0Input0( VReoBridge *bridge );
   2.635 +
   2.636 +void Auxdoer_for_bridge_Broad_0Output4( VReoBridge *bridge );
   2.637 +void Auxdoer_for_bridge_X_3Input0( VReoBridge *bridge );
   2.638 +
   2.639  /* Doers for Island 0. */
   2.640  
   2.641  void Doer_0__I0( VReoIsland *island ) {
   2.642 -	VReoBridge *bridgeBroad_0Output1, *bridgeBroad_0Output2, *bridgeOut_1, *bridgeBroad_0;
   2.643 +	VReoBridge *bridgeBroad_0Output1, *bridgeBroad_0Output2, *bridgeBroad_0Output3, *bridgeOut_1, *bridgeBroad_0, *bridgeBroad_0Output4;
   2.644  
   2.645  	/* Initialize bridges. */
   2.646  	bridgeBroad_0Output1 = (island->bridges)[I0_BRIDGE_Broad_0Output1];
   2.647  	bridgeBroad_0Output2 = (island->bridges)[I0_BRIDGE_Broad_0Output2];
   2.648 +	bridgeBroad_0Output3 = (island->bridges)[I0_BRIDGE_Broad_0Output3];
   2.649  	bridgeOut_1 = (island->bridges)[I0_BRIDGE_Out_1];
   2.650  	bridgeBroad_0 = (island->bridges)[I0_BRIDGE_Broad_0];
   2.651 +	bridgeBroad_0Output4 = (island->bridges)[I0_BRIDGE_Broad_0Output4];
   2.652  
   2.653  	/* Distribute data. */
   2.654  	bridgeBroad_0Output1->buffer = bridgeBroad_0->buffer;
   2.655  	bridgeBroad_0Output2->buffer = bridgeBroad_0->buffer;
   2.656 +	bridgeBroad_0Output3->buffer = bridgeBroad_0->buffer;
   2.657  	bridgeOut_1->buffer = bridgeBroad_0->buffer;
   2.658 +	bridgeBroad_0Output4->buffer = bridgeBroad_0->buffer;
   2.659  
   2.660  	/* Update bridge status. */
   2.661  	bridgeBroad_0->bridgeIsFull = FALSE;
   2.662  	bridgeBroad_0Output1->bridgeIsFull = TRUE;
   2.663  	bridgeBroad_0Output2->bridgeIsFull = TRUE;
   2.664 +	bridgeBroad_0Output3->bridgeIsFull = TRUE;
   2.665  	bridgeOut_1->bridgeIsFull = TRUE;
   2.666 +	bridgeBroad_0Output4->bridgeIsFull = TRUE;
   2.667  
   2.668  	/* Prepare reader VPs. */
   2.669  	PR_PI__make_slave_ready_for_lang(bridgeOut_1->waitingReaderVP, VReo_MAGIC_NUMBER);
   2.670 @@ -642,8 +931,10 @@
   2.671  	/* Call auxiliary doers to complete this transition. */
   2.672  	Auxdoer_for_bridge_Broad_0Output1(bridgeBroad_0Output1);
   2.673  	Auxdoer_for_bridge_Broad_0Output2(bridgeBroad_0Output2);
   2.674 +	Auxdoer_for_bridge_Broad_0Output3(bridgeBroad_0Output3);
   2.675  	Auxdoer_for_bridge_Out_1(bridgeOut_1);
   2.676  	Auxdoer_for_bridge_Broad_0(bridgeBroad_0);
   2.677 +	Auxdoer_for_bridge_Broad_0Output4(bridgeBroad_0Output4);
   2.678  }
   2.679  
   2.680  /* Doers for Island 1. */
   2.681 @@ -706,6 +997,66 @@
   2.682  	Auxdoer_for_bridge_X_1Input0(bridgeX_1Input0);
   2.683  }
   2.684  
   2.685 +/* Doers for Island 3. */
   2.686 +
   2.687 +void Doer_0__I3( VReoIsland *island ) {
   2.688 +	VReoBridge *bridgeIn_2, *bridgeX_2Input0, *bridgeIn_2Output0;
   2.689 +
   2.690 +	/* Initialize bridges. */
   2.691 +	bridgeIn_2 = (island->bridges)[I3_BRIDGE_In_2];
   2.692 +	bridgeX_2Input0 = (island->bridges)[I3_BRIDGE_X_2Input0];
   2.693 +	bridgeIn_2Output0 = (island->bridges)[I3_BRIDGE_In_2Output0];
   2.694 +
   2.695 +	/* Distribute data. */
   2.696 +	bridgeIn_2Output0->buffer = bridgeIn_2->buffer;
   2.697 +
   2.698 +	/* Update bridge status. */
   2.699 +	bridgeIn_2->bridgeIsFull = FALSE;
   2.700 +	bridgeX_2Input0->bridgeIsFull = FALSE;
   2.701 +	bridgeIn_2Output0->bridgeIsFull = TRUE;
   2.702 +
   2.703 +	/* Prepare reader VPs. */
   2.704 +
   2.705 +	/* Prepare writer VPs. */
   2.706 +	PR_PI__make_slave_ready_for_lang(bridgeIn_2->waitingWriterVP, VReo_MAGIC_NUMBER);
   2.707 +	bridgeIn_2->waitingWriterVP = NULL;
   2.708 +
   2.709 +	/* Call auxiliary doers to complete this transition. */
   2.710 +	Auxdoer_for_bridge_In_2(bridgeIn_2);
   2.711 +	Auxdoer_for_bridge_X_2Input0(bridgeX_2Input0);
   2.712 +	Auxdoer_for_bridge_In_2Output0(bridgeIn_2Output0);
   2.713 +}
   2.714 +
   2.715 +/* Doers for Island 4. */
   2.716 +
   2.717 +void Doer_0__I4( VReoIsland *island ) {
   2.718 +	VReoBridge *bridgeIn_3, *bridgeX_3Input0, *bridgeIn_3Output0;
   2.719 +
   2.720 +	/* Initialize bridges. */
   2.721 +	bridgeIn_3 = (island->bridges)[I4_BRIDGE_In_3];
   2.722 +	bridgeX_3Input0 = (island->bridges)[I4_BRIDGE_X_3Input0];
   2.723 +	bridgeIn_3Output0 = (island->bridges)[I4_BRIDGE_In_3Output0];
   2.724 +
   2.725 +	/* Distribute data. */
   2.726 +	bridgeIn_3Output0->buffer = bridgeIn_3->buffer;
   2.727 +
   2.728 +	/* Update bridge status. */
   2.729 +	bridgeIn_3->bridgeIsFull = FALSE;
   2.730 +	bridgeX_3Input0->bridgeIsFull = FALSE;
   2.731 +	bridgeIn_3Output0->bridgeIsFull = TRUE;
   2.732 +
   2.733 +	/* Prepare reader VPs. */
   2.734 +
   2.735 +	/* Prepare writer VPs. */
   2.736 +	PR_PI__make_slave_ready_for_lang(bridgeIn_3->waitingWriterVP, VReo_MAGIC_NUMBER);
   2.737 +	bridgeIn_3->waitingWriterVP = NULL;
   2.738 +
   2.739 +	/* Call auxiliary doers to complete this transition. */
   2.740 +	Auxdoer_for_bridge_In_3(bridgeIn_3);
   2.741 +	Auxdoer_for_bridge_X_3Input0(bridgeX_3Input0);
   2.742 +	Auxdoer_for_bridge_In_3Output0(bridgeIn_3Output0);
   2.743 +}
   2.744 +
   2.745  //==============================================================================
   2.746  
   2.747  /* Auxiliary doers for input bridges. */
   2.748 @@ -722,6 +1073,14 @@
   2.749  	;
   2.750  }
   2.751  
   2.752 +void Auxdoer_for_bridge_In_2( VReoBridge *bridge ) {
   2.753 +	;
   2.754 +}
   2.755 +
   2.756 +void Auxdoer_for_bridge_In_3( VReoBridge *bridge ) {
   2.757 +	;
   2.758 +}
   2.759 +
   2.760  /* Auxiliary doers for output bridges. */
   2.761  
   2.762  void Auxdoer_for_bridge_Out_0( VReoBridge *bridge ) {
   2.763 @@ -759,7 +1118,7 @@
   2.764      	VReo__check_an_o1island_that_reads_bridge( o1islandOnOtherSide, bridge, partnerQstruct );
   2.765      }
   2.766  }
   2.767 -void Auxdoer_for_bridge_Out_0Input1( VReoBridge *bridge ) {
   2.768 +void Auxdoer_for_bridge_Out_0Input3( VReoBridge *bridge ) {
   2.769  	int32 numCheckerFns;
   2.770  	VReoIsland *islandOnOtherSide;
   2.771  	VReoCheckerFn *checkerFns;
   2.772 @@ -861,7 +1220,7 @@
   2.773      	VReo__check_an_o1island_that_reads_bridge( o1islandOnOtherSide, bridge, partnerQstruct );
   2.774      }
   2.775  }
   2.776 -void Auxdoer_for_bridge_Out_0Input0( VReoBridge *bridge ) {
   2.777 +void Auxdoer_for_bridge_Out_0Input2( VReoBridge *bridge ) {
   2.778  	int32 numCheckerFns;
   2.779  	VReoIsland *islandOnOtherSide;
   2.780  	VReoCheckerFn *checkerFns;
   2.781 @@ -936,4 +1295,208 @@
   2.782  
   2.783  		VReo__check_an_o1island_that_writes_bridge( o1islandOnOtherSide, bridge, partnerQstruct );
   2.784      }
   2.785 +}
   2.786 +
   2.787 +void Auxdoer_for_bridge_In_2Output0( VReoBridge *bridge ) {
   2.788 +	int32 numCheckerFns;
   2.789 +	VReoIsland *islandOnOtherSide;
   2.790 +	VReoCheckerFn *checkerFns;
   2.791 +	VReoDoerFn *doerFns;
   2.792 +
   2.793 +	VReoO1island *o1islandOnOtherSide;
   2.794 +	VReoPartnerQStruct *partnerQstruct;
   2.795 +
   2.796 +	if (bridge->readerType == Island) {
   2.797 +		islandOnOtherSide = (VReoIsland*) bridge->reader;
   2.798 +		numCheckerFns = bridge->numReaderCheckerFns;
   2.799 +		checkerFns = bridge->readerCheckerFns;
   2.800 +		doerFns = bridge->readerDoerFns;
   2.801 +
   2.802 +		VReo__check_an_island( islandOnOtherSide, numCheckerFns, checkerFns, doerFns );
   2.803 +    }
   2.804 +
   2.805 +    else if (bridge->readerType == O1island) { 
   2.806 +    	o1islandOnOtherSide = (VReoO1island *)bridge->reader;
   2.807 +    	partnerQstruct =  bridge->readerPartnerQStruct;
   2.808 +
   2.809 +    	VReo__check_an_o1island_that_reads_bridge( o1islandOnOtherSide, bridge, partnerQstruct );
   2.810 +    }
   2.811 +}
   2.812 +void Auxdoer_for_bridge_Out_0Input1( VReoBridge *bridge ) {
   2.813 +	int32 numCheckerFns;
   2.814 +	VReoIsland *islandOnOtherSide;
   2.815 +	VReoCheckerFn *checkerFns;
   2.816 +	VReoDoerFn *doerFns;
   2.817 +
   2.818 +	VReoO1island *o1islandOnOtherSide;
   2.819 +	VReoPartnerQStruct *partnerQstruct;
   2.820 +
   2.821 +	if (bridge->writerType == Island) {
   2.822 +		islandOnOtherSide = (VReoIsland*) bridge->writer;
   2.823 +		numCheckerFns = bridge->numWriterCheckerFns;
   2.824 +		checkerFns = bridge->writerCheckerFns;
   2.825 +		doerFns = bridge->writerDoerFns;
   2.826 +
   2.827 +		VReo__check_an_island( islandOnOtherSide, numCheckerFns, checkerFns, doerFns );
   2.828 +    }
   2.829 +
   2.830 +	else if (bridge->writerType == O1island) { 
   2.831 +		o1islandOnOtherSide = (VReoO1island *)bridge->writer;
   2.832 +		partnerQstruct = bridge->writerPartnerQStruct;
   2.833 +
   2.834 +		VReo__check_an_o1island_that_writes_bridge( o1islandOnOtherSide, bridge, partnerQstruct );
   2.835 +    }
   2.836 +}
   2.837 +
   2.838 +void Auxdoer_for_bridge_Broad_0Output3( VReoBridge *bridge ) {
   2.839 +	int32 numCheckerFns;
   2.840 +	VReoIsland *islandOnOtherSide;
   2.841 +	VReoCheckerFn *checkerFns;
   2.842 +	VReoDoerFn *doerFns;
   2.843 +
   2.844 +	VReoO1island *o1islandOnOtherSide;
   2.845 +	VReoPartnerQStruct *partnerQstruct;
   2.846 +
   2.847 +	if (bridge->readerType == Island) {
   2.848 +		islandOnOtherSide = (VReoIsland*) bridge->reader;
   2.849 +		numCheckerFns = bridge->numReaderCheckerFns;
   2.850 +		checkerFns = bridge->readerCheckerFns;
   2.851 +		doerFns = bridge->readerDoerFns;
   2.852 +
   2.853 +		VReo__check_an_island( islandOnOtherSide, numCheckerFns, checkerFns, doerFns );
   2.854 +    }
   2.855 +
   2.856 +    else if (bridge->readerType == O1island) { 
   2.857 +    	o1islandOnOtherSide = (VReoO1island *)bridge->reader;
   2.858 +    	partnerQstruct =  bridge->readerPartnerQStruct;
   2.859 +
   2.860 +    	VReo__check_an_o1island_that_reads_bridge( o1islandOnOtherSide, bridge, partnerQstruct );
   2.861 +    }
   2.862 +}
   2.863 +void Auxdoer_for_bridge_X_2Input0( VReoBridge *bridge ) {
   2.864 +	int32 numCheckerFns;
   2.865 +	VReoIsland *islandOnOtherSide;
   2.866 +	VReoCheckerFn *checkerFns;
   2.867 +	VReoDoerFn *doerFns;
   2.868 +
   2.869 +	VReoO1island *o1islandOnOtherSide;
   2.870 +	VReoPartnerQStruct *partnerQstruct;
   2.871 +
   2.872 +	if (bridge->writerType == Island) {
   2.873 +		islandOnOtherSide = (VReoIsland*) bridge->writer;
   2.874 +		numCheckerFns = bridge->numWriterCheckerFns;
   2.875 +		checkerFns = bridge->writerCheckerFns;
   2.876 +		doerFns = bridge->writerDoerFns;
   2.877 +
   2.878 +		VReo__check_an_island( islandOnOtherSide, numCheckerFns, checkerFns, doerFns );
   2.879 +    }
   2.880 +
   2.881 +	else if (bridge->writerType == O1island) { 
   2.882 +		o1islandOnOtherSide = (VReoO1island *)bridge->writer;
   2.883 +		partnerQstruct = bridge->writerPartnerQStruct;
   2.884 +
   2.885 +		VReo__check_an_o1island_that_writes_bridge( o1islandOnOtherSide, bridge, partnerQstruct );
   2.886 +    }
   2.887 +}
   2.888 +
   2.889 +void Auxdoer_for_bridge_In_3Output0( VReoBridge *bridge ) {
   2.890 +	int32 numCheckerFns;
   2.891 +	VReoIsland *islandOnOtherSide;
   2.892 +	VReoCheckerFn *checkerFns;
   2.893 +	VReoDoerFn *doerFns;
   2.894 +
   2.895 +	VReoO1island *o1islandOnOtherSide;
   2.896 +	VReoPartnerQStruct *partnerQstruct;
   2.897 +
   2.898 +	if (bridge->readerType == Island) {
   2.899 +		islandOnOtherSide = (VReoIsland*) bridge->reader;
   2.900 +		numCheckerFns = bridge->numReaderCheckerFns;
   2.901 +		checkerFns = bridge->readerCheckerFns;
   2.902 +		doerFns = bridge->readerDoerFns;
   2.903 +
   2.904 +		VReo__check_an_island( islandOnOtherSide, numCheckerFns, checkerFns, doerFns );
   2.905 +    }
   2.906 +
   2.907 +    else if (bridge->readerType == O1island) { 
   2.908 +    	o1islandOnOtherSide = (VReoO1island *)bridge->reader;
   2.909 +    	partnerQstruct =  bridge->readerPartnerQStruct;
   2.910 +
   2.911 +    	VReo__check_an_o1island_that_reads_bridge( o1islandOnOtherSide, bridge, partnerQstruct );
   2.912 +    }
   2.913 +}
   2.914 +void Auxdoer_for_bridge_Out_0Input0( VReoBridge *bridge ) {
   2.915 +	int32 numCheckerFns;
   2.916 +	VReoIsland *islandOnOtherSide;
   2.917 +	VReoCheckerFn *checkerFns;
   2.918 +	VReoDoerFn *doerFns;
   2.919 +
   2.920 +	VReoO1island *o1islandOnOtherSide;
   2.921 +	VReoPartnerQStruct *partnerQstruct;
   2.922 +
   2.923 +	if (bridge->writerType == Island) {
   2.924 +		islandOnOtherSide = (VReoIsland*) bridge->writer;
   2.925 +		numCheckerFns = bridge->numWriterCheckerFns;
   2.926 +		checkerFns = bridge->writerCheckerFns;
   2.927 +		doerFns = bridge->writerDoerFns;
   2.928 +
   2.929 +		VReo__check_an_island( islandOnOtherSide, numCheckerFns, checkerFns, doerFns );
   2.930 +    }
   2.931 +
   2.932 +	else if (bridge->writerType == O1island) { 
   2.933 +		o1islandOnOtherSide = (VReoO1island *)bridge->writer;
   2.934 +		partnerQstruct = bridge->writerPartnerQStruct;
   2.935 +
   2.936 +		VReo__check_an_o1island_that_writes_bridge( o1islandOnOtherSide, bridge, partnerQstruct );
   2.937 +    }
   2.938 +}
   2.939 +
   2.940 +void Auxdoer_for_bridge_Broad_0Output4( VReoBridge *bridge ) {
   2.941 +	int32 numCheckerFns;
   2.942 +	VReoIsland *islandOnOtherSide;
   2.943 +	VReoCheckerFn *checkerFns;
   2.944 +	VReoDoerFn *doerFns;
   2.945 +
   2.946 +	VReoO1island *o1islandOnOtherSide;
   2.947 +	VReoPartnerQStruct *partnerQstruct;
   2.948 +
   2.949 +	if (bridge->readerType == Island) {
   2.950 +		islandOnOtherSide = (VReoIsland*) bridge->reader;
   2.951 +		numCheckerFns = bridge->numReaderCheckerFns;
   2.952 +		checkerFns = bridge->readerCheckerFns;
   2.953 +		doerFns = bridge->readerDoerFns;
   2.954 +
   2.955 +		VReo__check_an_island( islandOnOtherSide, numCheckerFns, checkerFns, doerFns );
   2.956 +    }
   2.957 +
   2.958 +    else if (bridge->readerType == O1island) { 
   2.959 +    	o1islandOnOtherSide = (VReoO1island *)bridge->reader;
   2.960 +    	partnerQstruct =  bridge->readerPartnerQStruct;
   2.961 +
   2.962 +    	VReo__check_an_o1island_that_reads_bridge( o1islandOnOtherSide, bridge, partnerQstruct );
   2.963 +    }
   2.964 +}
   2.965 +void Auxdoer_for_bridge_X_3Input0( VReoBridge *bridge ) {
   2.966 +	int32 numCheckerFns;
   2.967 +	VReoIsland *islandOnOtherSide;
   2.968 +	VReoCheckerFn *checkerFns;
   2.969 +	VReoDoerFn *doerFns;
   2.970 +
   2.971 +	VReoO1island *o1islandOnOtherSide;
   2.972 +	VReoPartnerQStruct *partnerQstruct;
   2.973 +
   2.974 +	if (bridge->writerType == Island) {
   2.975 +		islandOnOtherSide = (VReoIsland*) bridge->writer;
   2.976 +		numCheckerFns = bridge->numWriterCheckerFns;
   2.977 +		checkerFns = bridge->writerCheckerFns;
   2.978 +		doerFns = bridge->writerDoerFns;
   2.979 +
   2.980 +		VReo__check_an_island( islandOnOtherSide, numCheckerFns, checkerFns, doerFns );
   2.981 +    }
   2.982 +
   2.983 +	else if (bridge->writerType == O1island) { 
   2.984 +		o1islandOnOtherSide = (VReoO1island *)bridge->writer;
   2.985 +		partnerQstruct = bridge->writerPartnerQStruct;
   2.986 +
   2.987 +		VReo__check_an_o1island_that_writes_bridge( o1islandOnOtherSide, bridge, partnerQstruct );
   2.988 +    }
   2.989  }
   2.990 \ No newline at end of file
     3.1 --- a/Reo__Matrix_Mult/Circuit.h	Wed Feb 19 09:27:10 2014 -0800
     3.2 +++ b/Reo__Matrix_Mult/Circuit.h	Sat Jul 12 20:21:47 2014 +0200
     3.3 @@ -5,33 +5,35 @@
     3.4  //#include "VReo_impl/VReo.h"
     3.5  #include <PR__include/PR__structs__common.h>
     3.6  #include <PR__include/langlets/vreo_wrapper_library.h>
     3.7 -#include <PR__include/prqueue.h>
     3.8 -#include <PR__include/PR__WL.h>
     3.9  
    3.10  //==============================================================================
    3.11  
    3.12  /* Counts. */
    3.13 -#define NUM_VPs 5
    3.14 -#define NUM_PROD 3
    3.15 -#define NUM_ISLANDS 3
    3.16 +#define NUM_VPs 7
    3.17 +#define NUM_PROD 5
    3.18 +#define NUM_ISLANDS 5
    3.19  #define NUM_O1ISLANDS 1
    3.20 -#define NUM_BRIDGES 9
    3.21 -#define NUM_BOUNDARY_BRIDGES 5
    3.22 +#define NUM_BRIDGES 15
    3.23 +#define NUM_BOUNDARY_BRIDGES 7
    3.24  
    3.25  /* Producer VPs attached to circuit. */
    3.26  #define CKT_VP_PROD0 0
    3.27  #define CKT_VP_PROD1 1
    3.28  #define CKT_VP_PROD2 2
    3.29 +#define CKT_VP_PROD3 3
    3.30 +#define CKT_VP_PROD4 4
    3.31  
    3.32  /* Consumer VPs attached to circuit. */
    3.33 -// #define CKT_VP_CONS0 (3+0)
    3.34 -// #define CKT_VP_CONS1 (3+1)
    3.35 -#define CKT_VP_CONS0 3
    3.36 +// #define CKT_VP_CONS0 (5+0)
    3.37 +// #define CKT_VP_CONS1 (5+1)
    3.38 +#define CKT_VP_CONS0 5
    3.39  
    3.40  /* Islands in circuit. */
    3.41  #define CKT_I0 0
    3.42  #define CKT_I1 1
    3.43  #define CKT_I2 2
    3.44 +#define CKT_I3 3
    3.45 +#define CKT_I4 4
    3.46  
    3.47  /* O1Islands in circuit. */
    3.48  #define CKT_O1I0 0
    3.49 @@ -40,30 +42,50 @@
    3.50  #define CKT_BRIDGE_Broad_0 0
    3.51  #define CKT_BRIDGE_In_0 1
    3.52  #define CKT_BRIDGE_In_1 2
    3.53 -#define CKT_BRIDGE_Out_0 3
    3.54 -#define CKT_BRIDGE_Out_1 4
    3.55 +#define CKT_BRIDGE_In_2 3
    3.56 +#define CKT_BRIDGE_In_3 4
    3.57 +#define CKT_BRIDGE_Out_0 5
    3.58 +#define CKT_BRIDGE_Out_1 6
    3.59  
    3.60 -#define CKT_BRIDGE_FIFO0 (5+0)
    3.61 -#define CKT_BRIDGE_In_0Output1 (5+0)
    3.62 -#define CKT_BRIDGE_Out_0Input1 (5+0)
    3.63 +#define CKT_BRIDGE_FIFO0 (7+0)
    3.64 +#define CKT_BRIDGE_In_0Output1 (7+0)
    3.65 +#define CKT_BRIDGE_Out_0Input3 (7+0)
    3.66  
    3.67 -#define CKT_BRIDGE_FIFO1 (5+1)
    3.68 -#define CKT_BRIDGE_Broad_0Output1 (5+1)
    3.69 -#define CKT_BRIDGE_X_0Input0 (5+1)
    3.70 +#define CKT_BRIDGE_FIFO1 (7+1)
    3.71 +#define CKT_BRIDGE_Broad_0Output1 (7+1)
    3.72 +#define CKT_BRIDGE_X_0Input0 (7+1)
    3.73  
    3.74 -#define CKT_BRIDGE_FIFO2 (5+2)
    3.75 -#define CKT_BRIDGE_In_1Output0 (5+2)
    3.76 -#define CKT_BRIDGE_Out_0Input0 (5+2)
    3.77 +#define CKT_BRIDGE_FIFO2 (7+2)
    3.78 +#define CKT_BRIDGE_In_1Output0 (7+2)
    3.79 +#define CKT_BRIDGE_Out_0Input2 (7+2)
    3.80  
    3.81 -#define CKT_BRIDGE_FIFO3 (5+3)
    3.82 -#define CKT_BRIDGE_Broad_0Output2 (5+3)
    3.83 -#define CKT_BRIDGE_X_1Input0 (5+3)
    3.84 +#define CKT_BRIDGE_FIFO3 (7+3)
    3.85 +#define CKT_BRIDGE_Broad_0Output2 (7+3)
    3.86 +#define CKT_BRIDGE_X_1Input0 (7+3)
    3.87 +
    3.88 +#define CKT_BRIDGE_FIFO4 (7+4)
    3.89 +#define CKT_BRIDGE_In_2Output0 (7+4)
    3.90 +#define CKT_BRIDGE_Out_0Input1 (7+4)
    3.91 +
    3.92 +#define CKT_BRIDGE_FIFO5 (7+5)
    3.93 +#define CKT_BRIDGE_Broad_0Output3 (7+5)
    3.94 +#define CKT_BRIDGE_X_2Input0 (7+5)
    3.95 +
    3.96 +#define CKT_BRIDGE_FIFO6 (7+6)
    3.97 +#define CKT_BRIDGE_In_3Output0 (7+6)
    3.98 +#define CKT_BRIDGE_Out_0Input0 (7+6)
    3.99 +
   3.100 +#define CKT_BRIDGE_FIFO7 (7+7)
   3.101 +#define CKT_BRIDGE_Broad_0Output4 (7+7)
   3.102 +#define CKT_BRIDGE_X_3Input0 (7+7)
   3.103  
   3.104  /* Bridges in Island 0. */
   3.105  #define I0_BRIDGE_Broad_0Output1 0
   3.106  #define I0_BRIDGE_Broad_0Output2 1
   3.107 -#define I0_BRIDGE_Out_1 2
   3.108 -#define I0_BRIDGE_Broad_0 3
   3.109 +#define I0_BRIDGE_Broad_0Output3 2
   3.110 +#define I0_BRIDGE_Out_1 3
   3.111 +#define I0_BRIDGE_Broad_0 4
   3.112 +#define I0_BRIDGE_Broad_0Output4 5
   3.113  
   3.114  /* Bridges in Island 1. */
   3.115  #define I1_BRIDGE_X_0Input0 0
   3.116 @@ -75,21 +97,35 @@
   3.117  #define I2_BRIDGE_In_1 1
   3.118  #define I2_BRIDGE_X_1Input0 2
   3.119  
   3.120 +/* Bridges in Island 3. */
   3.121 +#define I3_BRIDGE_In_2 0
   3.122 +#define I3_BRIDGE_X_2Input0 1
   3.123 +#define I3_BRIDGE_In_2Output0 2
   3.124 +
   3.125 +/* Bridges in Island 4. */
   3.126 +#define I4_BRIDGE_In_3 0
   3.127 +#define I4_BRIDGE_X_3Input0 1
   3.128 +#define I4_BRIDGE_In_3Output0 2
   3.129 +
   3.130  /* Bridges in O1Island 0. */
   3.131 -#define O1I0_BRIDGE_Out_0 0
   3.132 -#define O1I0_BRIDGE_Out_0Input1 1
   3.133 -#define O1I0_BRIDGE_Out_0Input0 2
   3.134 +#define O1I0_BRIDGE_Out_0Input3 0
   3.135 +#define O1I0_BRIDGE_Out_0 1
   3.136 +#define O1I0_BRIDGE_Out_0Input2 2
   3.137 +#define O1I0_BRIDGE_Out_0Input1 3
   3.138 +#define O1I0_BRIDGE_Out_0Input0 4
   3.139  
   3.140  /* Readiness of boundary bridges. */
   3.141  #define READY_FOR_READ_BRIDGE_Broad_0 bridgeBroad_0->bridgeIsFull
   3.142  #define READY_FOR_READ_BRIDGE_In_0 bridgeIn_0->bridgeIsFull
   3.143  #define READY_FOR_READ_BRIDGE_In_1 bridgeIn_1->bridgeIsFull
   3.144 +#define READY_FOR_READ_BRIDGE_In_2 bridgeIn_2->bridgeIsFull
   3.145 +#define READY_FOR_READ_BRIDGE_In_3 bridgeIn_3->bridgeIsFull
   3.146  #define READY_FOR_WRITE_BRIDGE_Out_0 bridgeOut_0->waitingReaderVP
   3.147  #define READY_FOR_WRITE_BRIDGE_Out_1 bridgeOut_1->waitingReaderVP
   3.148  
   3.149  /* Readiness of bridges of FIFO 0. */ 
   3.150  #define READY_FOR_WRITE_BRIDGE_In_0Output1 !bridgeIn_0Output1->bridgeIsFull
   3.151 -#define READY_FOR_READ_BRIDGE_Out_0Input1 bridgeOut_0Input1->bridgeIsFull
   3.152 +#define READY_FOR_READ_BRIDGE_Out_0Input3 bridgeOut_0Input3->bridgeIsFull
   3.153  
   3.154  /* Readiness of bridges of FIFO 1. */ 
   3.155  #define READY_FOR_WRITE_BRIDGE_Broad_0Output1 !bridgeBroad_0Output1->bridgeIsFull
   3.156 @@ -97,17 +133,35 @@
   3.157  
   3.158  /* Readiness of bridges of FIFO 2. */ 
   3.159  #define READY_FOR_WRITE_BRIDGE_In_1Output0 !bridgeIn_1Output0->bridgeIsFull
   3.160 -#define READY_FOR_READ_BRIDGE_Out_0Input0 bridgeOut_0Input0->bridgeIsFull
   3.161 +#define READY_FOR_READ_BRIDGE_Out_0Input2 bridgeOut_0Input2->bridgeIsFull
   3.162  
   3.163  /* Readiness of bridges of FIFO 3. */ 
   3.164  #define READY_FOR_WRITE_BRIDGE_Broad_0Output2 !bridgeBroad_0Output2->bridgeIsFull
   3.165  #define READY_FOR_READ_BRIDGE_X_1Input0 bridgeX_1Input0->bridgeIsFull
   3.166  
   3.167 +/* Readiness of bridges of FIFO 4. */ 
   3.168 +#define READY_FOR_WRITE_BRIDGE_In_2Output0 !bridgeIn_2Output0->bridgeIsFull
   3.169 +#define READY_FOR_READ_BRIDGE_Out_0Input1 bridgeOut_0Input1->bridgeIsFull
   3.170 +
   3.171 +/* Readiness of bridges of FIFO 5. */ 
   3.172 +#define READY_FOR_WRITE_BRIDGE_Broad_0Output3 !bridgeBroad_0Output3->bridgeIsFull
   3.173 +#define READY_FOR_READ_BRIDGE_X_2Input0 bridgeX_2Input0->bridgeIsFull
   3.174 +
   3.175 +/* Readiness of bridges of FIFO 6. */ 
   3.176 +#define READY_FOR_WRITE_BRIDGE_In_3Output0 !bridgeIn_3Output0->bridgeIsFull
   3.177 +#define READY_FOR_READ_BRIDGE_Out_0Input0 bridgeOut_0Input0->bridgeIsFull
   3.178 +
   3.179 +/* Readiness of bridges of FIFO 7. */ 
   3.180 +#define READY_FOR_WRITE_BRIDGE_Broad_0Output4 !bridgeBroad_0Output4->bridgeIsFull
   3.181 +#define READY_FOR_READ_BRIDGE_X_3Input0 bridgeX_3Input0->bridgeIsFull
   3.182 +
   3.183  /* Number of checkers per bridge in Island 0. */
   3.184  #define NUM_I0_CHECKERS_INVOLVE_BRIDGE_Broad_0Output1 1
   3.185  #define NUM_I0_CHECKERS_INVOLVE_BRIDGE_Broad_0Output2 1
   3.186 +#define NUM_I0_CHECKERS_INVOLVE_BRIDGE_Broad_0Output3 1
   3.187  #define NUM_I0_CHECKERS_INVOLVE_BRIDGE_Out_1 1
   3.188  #define NUM_I0_CHECKERS_INVOLVE_BRIDGE_Broad_0 1
   3.189 +#define NUM_I0_CHECKERS_INVOLVE_BRIDGE_Broad_0Output4 1
   3.190  
   3.191  /* Number of checkers per bridge in Island 1. */
   3.192  #define NUM_I1_CHECKERS_INVOLVE_BRIDGE_X_0Input0 1
   3.193 @@ -119,9 +173,19 @@
   3.194  #define NUM_I2_CHECKERS_INVOLVE_BRIDGE_In_1 1
   3.195  #define NUM_I2_CHECKERS_INVOLVE_BRIDGE_X_1Input0 1
   3.196  
   3.197 +/* Number of checkers per bridge in Island 3. */
   3.198 +#define NUM_I3_CHECKERS_INVOLVE_BRIDGE_In_2 1
   3.199 +#define NUM_I3_CHECKERS_INVOLVE_BRIDGE_X_2Input0 1
   3.200 +#define NUM_I3_CHECKERS_INVOLVE_BRIDGE_In_2Output0 1
   3.201 +
   3.202 +/* Number of checkers per bridge in Island 4. */
   3.203 +#define NUM_I4_CHECKERS_INVOLVE_BRIDGE_In_3 1
   3.204 +#define NUM_I4_CHECKERS_INVOLVE_BRIDGE_X_3Input0 1
   3.205 +#define NUM_I4_CHECKERS_INVOLVE_BRIDGE_In_3Output0 1
   3.206 +
   3.207  /* Checkers and doers for Island 0. */
   3.208 -#define CHECKER3_I0 Checker_0__I0
   3.209 -#define    DOER3_I0 Doer_0__I0
   3.210 +#define CHECKER2_I0 Checker_0__I0
   3.211 +#define    DOER2_I0 Doer_0__I0
   3.212  
   3.213  /* Checkers and doers for Island 1. */
   3.214  #define CHECKER2_I1 Checker_0__I1
   3.215 @@ -131,6 +195,14 @@
   3.216  #define CHECKER3_I2 Checker_0__I2
   3.217  #define    DOER3_I2 Doer_0__I2
   3.218  
   3.219 +/* Checkers and doers for Island 3. */
   3.220 +#define CHECKER2_I3 Checker_0__I3
   3.221 +#define    DOER2_I3 Doer_0__I3
   3.222 +
   3.223 +/* Checkers and doers for Island 4. */
   3.224 +#define CHECKER3_I4 Checker_0__I4
   3.225 +#define    DOER3_I4 Doer_0__I4
   3.226 +
   3.227  //==============================================================================
   3.228  
   3.229  /* Create VPs and connect. */
   3.230 @@ -148,6 +220,12 @@
   3.231  /* Checkers of Island 2. */
   3.232  bool32 Checker_0__I2( VReoIsland *island );
   3.233  
   3.234 +/* Checkers of Island 3. */
   3.235 +bool32 Checker_0__I3( VReoIsland *island );
   3.236 +
   3.237 +/* Checkers of Island 4. */
   3.238 +bool32 Checker_0__I4( VReoIsland *island );
   3.239 +
   3.240  /* Doers of Island 0. */
   3.241  void Doer_0__I0( VReoIsland *island );
   3.242  
   3.243 @@ -157,4 +235,10 @@
   3.244  /* Doers of Island 2. */
   3.245  void Doer_0__I2( VReoIsland *island );
   3.246  
   3.247 +/* Doers of Island 3. */
   3.248 +void Doer_0__I3( VReoIsland *island );
   3.249 +
   3.250 +/* Doers of Island 4. */
   3.251 +void Doer_0__I4( VReoIsland *island );
   3.252 +
   3.253  #endif	/* _Circuit_App1_H */
   3.254 \ No newline at end of file
     4.1 --- a/Reo__Matrix_Mult/DivideWork.c	Wed Feb 19 09:27:10 2014 -0800
     4.2 +++ b/Reo__Matrix_Mult/DivideWork.c	Sat Jul 12 20:21:47 2014 +0200
     4.3 @@ -31,16 +31,15 @@
     4.4  
     4.5     if( leftMatrix->numRows != rightMatrix->numCols ) 
     4.6      { printf("error: left num rows must == right num cols\n"); exit(0);}
     4.7 -   if( leftMatrix->numRows % 4 != 0 ) 
     4.8 -    { printf("error: left num rows must be divisible by 4\n"); exit(0);}
     4.9  
    4.10     targetDivisor = (int)sqrt( targetNumUnits );
    4.11     targetIncrement = (int)(leftMatrix->numRows / targetDivisor);
    4.12 -   if( targetDivisor * targetDivisor != targetNumUnits ||
    4.13 -       targetIncrement * targetDivisor != leftMatrix->numRows ) 
    4.14 -    { printf("error: the target number of units to be made must be a perfect square and it must evenly divide the left number of rows (vector length)\n");
    4.15 +   if( targetDivisor * targetDivisor != targetNumUnits ) 
    4.16 +    { printf("error: the target number of units to be made must be a perfect square: %d)\n", targetNumUnits);
    4.17        fflush(stdout); exit(0);
    4.18      }
    4.19 +   if( targetIncrement * targetDivisor != leftMatrix->numRows  ) 
    4.20 +    { printf("error: left num rows [%d] must be divisible by sqrt(num work-units to make) [%d]\n", leftMatrix->numRows, targetDivisor); exit(0);}
    4.21     
    4.22     
    4.23        //make a data struct for each work unit, and fill it with params of work
     5.1 --- a/Reo__Matrix_Mult/MeasurementStuff.c	Wed Feb 19 09:27:10 2014 -0800
     5.2 +++ b/Reo__Matrix_Mult/MeasurementStuff.c	Sat Jul 12 20:21:47 2014 +0200
     5.3 @@ -13,62 +13,70 @@
     5.4  
     5.5  //SELECT how the measurement is done
     5.6  //only one must be enabled
     5.7 -#define MEASURE_TSC
     5.8 +//#define MEASURE_TSC
     5.9  //#define MEASURE_PERF
    5.10 +#define MEASURE_SKIP
    5.11  
    5.12 -#define saveTimeStampCountInto(low, high) \
    5.13 -   asm volatile("RDTSC;                   \
    5.14 -                 movl %%eax, %0;          \
    5.15 -                 movl %%edx, %1;"         \
    5.16 -   /* outputs */ : "=m" (low), "=m" (high)\
    5.17 -   /* inputs  */ :                        \
    5.18 -   /* clobber */ : "%eax", "%edx"         \
    5.19 -                );
    5.20 +#ifdef MEASURE_SKIP
    5.21 +    #define saveTimeStampCountInto(low, high)
    5.22 +    #define saveLowTimeStampCountInto(low)
    5.23 +#else
    5.24 +    #define saveTimeStampCountInto(low, high) \
    5.25 +       asm volatile("RDTSC;                   \
    5.26 +                     movl %%eax, %0;          \
    5.27 +                     movl %%edx, %1;"         \
    5.28 +       /* outputs */ : "=m" (low), "=m" (high)\
    5.29 +       /* inputs  */ :                        \
    5.30 +       /* clobber */ : "%eax", "%edx"         \
    5.31 +                    );
    5.32  
    5.33 -#define saveLowTimeStampCountInto(low)    \
    5.34 -   asm volatile("RDTSC;                   \
    5.35 -                 movl %%eax, %0;"         \
    5.36 -   /* outputs */ : "=m" (low)             \
    5.37 -   /* inputs  */ :                        \
    5.38 -   /* clobber */ : "%eax", "%edx"         \
    5.39 -                );
    5.40 +    #define saveLowTimeStampCountInto(low)    \
    5.41 +       asm volatile("RDTSC;                   \
    5.42 +                     movl %%eax, %0;"         \
    5.43 +       /* outputs */ : "=m" (low)             \
    5.44 +       /* inputs  */ :                        \
    5.45 +       /* clobber */ : "%eax", "%edx"         \
    5.46 +                    );
    5.47  
    5.48 -union timeStamp {
    5.49 -	uint32_t lowHigh[2]; //lowHigh[0] is low, lowHigh[1] is high
    5.50 -	uint64_t total;
    5.51 -};
    5.52 +    union timeStamp {
    5.53 +            uint32_t lowHigh[2]; //lowHigh[0] is low, lowHigh[1] is high
    5.54 +            uint64_t total;
    5.55 +    };
    5.56  
    5.57 -struct perfData {
    5.58 -	uint64_t cycles;
    5.59 -	uint64_t instructions;
    5.60 -};
    5.61 +    struct perfData {
    5.62 +            uint64_t cycles;
    5.63 +            uint64_t instructions;
    5.64 +    };
    5.65 +#endif
    5.66  
    5.67  //MEASURE_TSC should be mutually exclusive with MEASURE_PERF
    5.68  #ifdef MEASURE_TSC
    5.69  typedef union timeStamp MeasStruct;
    5.70 -#else
    5.71 -#ifdef MEASURE_PERF
    5.72 +#elif defined MEASURE_PERF
    5.73  typedef struct perfData MeasStruct;
    5.74 -#endif
    5.75 +#elif defined MEASURE_SKIP
    5.76 +typedef void* MeasStruct;
    5.77  #endif
    5.78  
    5.79  
    5.80  //read and save current perf-counter readings for cycles and instrs
    5.81  #ifdef MEASURE_PERF
    5.82 -#define takeAMeas(core, perfDataStruct) do{     \
    5.83 -   int cycles_fd = cycles_counter_fd[core];             \
    5.84 -   int nread;                                           \
    5.85 -                                                        \
    5.86 -   nread = read(cycles_fd,&(perfDataStruct.cycles),sizeof(perfDataStruct.cycles));    \
    5.87 -   if(nread<0){                                         \
    5.88 -       perror("Error reading cycles counter");          \
    5.89 -       cycles = 0;                                      \
    5.90 -   }                                                    \
    5.91 +#define takeAMeas(core, perfDataStruct) do{                                         \
    5.92 +   int cycles_fd = cycles_counter_fd[core];                                         \
    5.93 +   int nread;                                                                       \
    5.94 +                                                                                    \
    5.95 +   nread = read(cycles_fd,&(perfDataStruct.cycles),sizeof(perfDataStruct.cycles));  \
    5.96 +   if(nread<0){                                                                     \
    5.97 +       perror("Error reading cycles counter");                                      \
    5.98 +       cycles = 0;                                                                  \
    5.99 +   }                                                                                \
   5.100   } while (0) //macro magic for scoping
   5.101 -#else
   5.102 -#define takeAMeas(core, timeStampStruct) do{     \
   5.103 -   saveTimeStampCountInto(timeStampStruct.lowHigh[0], timeStampStruct.lowHigh[1]);\
   5.104 +#elif defined MEASURE_TSC
   5.105 +#define takeAMeas(core, timeStampStruct) do{                                        \
   5.106 +   saveTimeStampCountInto(timeStampStruct.lowHigh[0], timeStampStruct.lowHigh[1]);  \
   5.107   } while (0) //macro magic for scoping
   5.108 +#elif defined MEASURE_SKIP
   5.109 +#define takeAMeas(core, timeStampStruct)
   5.110  #endif
   5.111  
   5.112  #ifdef MEASURE_PERF
   5.113 @@ -98,7 +106,9 @@
   5.114  	return GetTickCount();
   5.115  }
   5.116  #else
   5.117 -#error "I don't know how to measure time on your platform"
   5.118 +    #ifndef MEASURE_SKIP
   5.119 +        #error "I don't know how to measure time on your platform"
   5.120 +    #endif
   5.121  #endif
   5.122  
   5.123  #endif //H_MEASUREMENTSTUFF_
     6.1 --- a/Reo__Matrix_Mult/Producer_and_Consumer.c	Wed Feb 19 09:27:10 2014 -0800
     6.2 +++ b/Reo__Matrix_Mult/Producer_and_Consumer.c	Sat Jul 12 20:21:47 2014 +0200
     6.3 @@ -10,6 +10,41 @@
     6.4  #include "Reo__Matrix_Mult.h"
     6.5  #include "../Matrix_Mult.h"
     6.6  
     6.7 +#define NEVER_ENDS 1
     6.8 +
     6.9 +/*The input to a VP's birth function is a struct that holds two arrays of
    6.10 + * pointers to bridges -- one for input bridges, one for output bridges
    6.11 + */
    6.12 +void 
    6.13 +broadcast_producer_Fn(void *_birthParams, SlaveVP *animVP) 
    6.14 + {
    6.15 +   VPParams *birthParams = (VPParams *) _birthParams;
    6.16 +
    6.17 +   //Tell the Reo tool that generates circuit about the bridges of this VP
    6.18 +   //#Reo numInBridges 0 | numOutbridges 1
    6.19 +   VReoBridge **outBridges = birthParams->outBridges;
    6.20 +   VReoBridge *bridge;
    6.21 +   TestAppProdConsMsg *msg;
    6.22 +   int32 i = 0;
    6.23 +
    6.24 +         DEBUG__printf(dbgAppFlow, "Broadcast Producer on core: %d", animVP->coreAnimatedBy);
    6.25 +
    6.26 +   bridge = outBridges[0];
    6.27 +
    6.28 +   //broadcast producer continually puts things onto its output port
    6.29 +   msg = PR__malloc(sizeof(TestAppProdConsMsg));
    6.30 +   msg->producerID = animVP->slaveNum;
    6.31 +   for( i = 0; i < numIterations; i++ )
    6.32 +    {
    6.33 +      msg->producedCnt = i;
    6.34 +      VReo__put_into_bridge(msg, bridge, animVP);
    6.35 +      DEBUG__printf(dbgAppFlow, "Broadcast Producer %d, put in %d", msg->producerID,
    6.36 +                    msg->producedCnt);
    6.37 +    }
    6.38 +         DEBUG__printf(dbgAppFlow, "Broadcast producer ending");
    6.39 +   VReo__end_VP(animVP);
    6.40 + }
    6.41 +
    6.42  /*The input to a VP's birth function is a struct that holds two arrays of
    6.43   * pointers to bridges -- one for input bridges, one for output bridges
    6.44   * and, optionally, an array of workUnit params.
    6.45 @@ -23,23 +58,23 @@
    6.46     //#Reo numInBridges 0 | numOutbridges 1
    6.47     VReoBridge **outBridges = birthParams->outBridges;
    6.48     VReoBridge *bridge;
    6.49 -   TestAppProdConsMsg *msg;
    6.50     MatrixMultWorkUnit *matrixMultWorkUnit;
    6.51     int32 i;
    6.52  
    6.53 -         DEBUG__printf( dbgAppFlow, "Producer on core: %d", animVP->coreAnimatedBy );
    6.54 +         DEBUG__printf( dbgAppFlow, "Started Multiply Producer: %d on core: %d", animVP->slaveNum, animVP->coreAnimatedBy );
    6.55  
    6.56     bridge = outBridges[0];
    6.57  	
    6.58     //Do the multiplies
    6.59     matrixMultWorkUnit = (MatrixMultWorkUnit *)birthParams->initData;
    6.60 -   for (i = 0; i < NUM_ITER; i++) 
    6.61 +   for (i = 0; i < numIterations; i++) 
    6.62      {
    6.63        calcProduct( matrixMultWorkUnit ); //result appears by side effect
    6.64        VReo__put_into_bridge( matrixMultWorkUnit, bridge, animVP );
    6.65              DEBUG__printf( dbgAppFlow, "Producer %d, put in %d", 
    6.66 -                           msg->producerID, msg->producedCnt );
    6.67 +                           animVP->slaveNum, i );
    6.68      }
    6.69 +         DEBUG__printf(dbgAppFlow, "Producer %d done, ending", animVP->slaveNum);
    6.70     VReo__end_VP( animVP );
    6.71   }
    6.72  
    6.73 @@ -75,13 +110,13 @@
    6.74     float *finalArray, *partArray;
    6.75     Matrix *leftMatrix, *rightMatrix, *resultMatrix;
    6.76     
    6.77 -   for (i = 0; i < NUM_ITER; i++) 
    6.78 +   for (i = 0; i < numIterations; i++) 
    6.79      {
    6.80 -      for (j = 0; j < NUM_PROD; j++) 
    6.81 +      for (j = 0; j < NUM_PROD -1; j++) 
    6.82         {
    6.83           //get next result from a producer
    6.84           resWorkUnit   = (MatrixMultWorkUnit *) VReo__get_from_bridge(inBridge0, animVP);
    6.85 -               DEBUG__printf( dbgAppFlow, "Consumer got \n" );
    6.86 +               DEBUG__printf( dbgAppFlow, "Consumer got something" );
    6.87           //now set up variables will use to copy partial result to final matrix array
    6.88           partArray     = resWorkUnit->prodArray;
    6.89           resultMatrix  = resWorkUnit->resultMatrix; //matrix for full orig piece
    6.90 @@ -115,10 +150,11 @@
    6.91  //         PR__free(resWorkUnit->partResArray);
    6.92  //         PR__free(resWorkUnit);
    6.93         }
    6.94 -
    6.95 +            DEBUG__printf(dbgAppFlow, "Completed Iteration: %d", i+1);
    6.96        //tell producers they can go on to next matrix
    6.97        VReo__get_from_bridge(inBridge1, animVP); //doing a get triggers broadcast
    6.98      }
    6.99 +         DEBUG__printf(dbgAppFlow, "Consumer done, ending");
   6.100     VReo__end_VP(animVP);
   6.101   }
   6.102  
     7.1 --- a/Reo__Matrix_Mult/Reo__Matrix_Mult.h	Wed Feb 19 09:27:10 2014 -0800
     7.2 +++ b/Reo__Matrix_Mult/Reo__Matrix_Mult.h	Sat Jul 12 20:21:47 2014 +0200
     7.3 @@ -4,10 +4,11 @@
     7.4  #include <stdio.h>
     7.5  
     7.6  #include <PR__include/langlets/vreo_wrapper_library.h>
     7.7 +#include "../PR_defs__turn_on_and_off.h"
     7.8  #include "Circuit.h"
     7.9  #include "../Matrix_Mult.h"
    7.10  
    7.11 -extern int NUM_ITER;
    7.12 +extern int numIterations;
    7.13  
    7.14  //===============================  Defines  ==============================
    7.15  /* The parameter values in here represent one unit of work
    7.16 @@ -80,6 +81,7 @@
    7.17  
    7.18  //============================= Processor Functions =========================
    7.19  void matrix_mult__seed_Fn(void *data, SlaveVP *animatingVP); //seed VP function
    7.20 +void broadcast_producer_Fn(void *_birthParams, SlaveVP *animVP); 
    7.21  void producer_Fn(void *data, SlaveVP *animatingVP);
    7.22  void consumer_Fn(void *data, SlaveVP *animatingVP);
    7.23  
     8.1 --- a/Reo__Matrix_Mult/SeedVP.c	Wed Feb 19 09:27:10 2014 -0800
     8.2 +++ b/Reo__Matrix_Mult/SeedVP.c	Sat Jul 12 20:21:47 2014 +0200
     8.3 @@ -46,7 +46,7 @@
     8.4     
     8.5     /* Log. */
     8.6     DEBUG__printf(dbgAppFlow, "start app");
     8.7 -
     8.8 +   
     8.9     /* Start Reo plug-in. */
    8.10     VReo__start(seedVP);
    8.11  
    8.12 @@ -70,16 +70,18 @@
    8.13  	//work is all done, so take a measurement snapshot at end
    8.14  		takeAMeas(0, benchEndMeas);
    8.15  
    8.16 -	#ifdef MEASURE_PERF
    8.17 +	#if   defined MEASURE_PERF
    8.18  		uint64_t totalExeCycles = ( benchEndMeas.cycles - benchStartMeas.cycles);
    8.19 -		printf("Total Execution: %lu\n", totalExeCycles);
    8.20 -	#else
    8.21 +		printf("Total Execution: %lu\n\n\n", totalExeCycles);
    8.22 +        #elif defined MEASURE_TSC
    8.23  		uint64_t totalExeCycles = (benchEndMeas.total - benchStartMeas.total);
    8.24 -		printf("Total Cycles of Execution: %lu\n", totalExeCycles);
    8.25 +		printf("Total Cycles of Execution: %lu\n\n\n", totalExeCycles);
    8.26 +        #elif defined MEASURE_SKIP
    8.27 +                printf("Execution completed, measurements have been skipped \n\n\n");
    8.28  	#endif
    8.29  
    8.30  		fflush(stdout);
    8.31 -		exit(0);
    8.32 +                
    8.33  
    8.34  	/* Stop Reo plug-in. */
    8.35  	VReo__shutdown(seedVP);
     9.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     9.2 +++ b/Reo__Matrix_Mult/k_3/Circuit.c	Sat Jul 12 20:21:47 2014 +0200
     9.3 @@ -0,0 +1,939 @@
     9.4 +#include <math.h>
     9.5 +#include <string.h>
     9.6 +#include "Reo__Matrix_Mult.h"
     9.7 +#include "Circuit.h"
     9.8 +
     9.9 +VReoCircuit *create_circuit(SlaveVP *animVP) {
    9.10 +
    9.11 +	/* Declare variables. */
    9.12 +	VReoCircuit  *circuit;
    9.13 +	VReoBridge   *bridge, *bridges, **boundaryBridges;
    9.14 +	VReoIsland   *islands, *island;
    9.15 +	VReoO1island *o1islands, *o1island;
    9.16 +	VReoCheckerFn *bridgeReaderCheckerFns, *bridgeWriterCheckerFns;
    9.17 +	VReoDoerFn   *bridgeReaderDoerFns, *bridgeWriterDoerFns;
    9.18 +	PrivQueueStruc *offerQ0, *offerQ1;
    9.19 +	VReoPartnerQStruct *partnerQStruct0, *partnerQStruct1;
    9.20 +
    9.21 +	/* Allocate memory for bridges, islands, and the circuit. */
    9.22 +	bridges = PR_WL__malloc(NUM_BRIDGES * sizeof(VReoBridge));
    9.23 +	islands = PR_WL__malloc((NUM_ISLANDS == 0 ? 1 : NUM_ISLANDS) * sizeof(VReoIsland));
    9.24 +	o1islands = PR_WL__malloc((NUM_O1ISLANDS == 0 ? 1 : NUM_O1ISLANDS) * sizeof(VReoO1island));
    9.25 +	circuit = (VReoCircuit *) PR_WL__malloc(sizeof(VReoCircuit));
    9.26 +
    9.27 +	//
    9.28 +	// INITIALIZE BRIDGES
    9.29 +	//
    9.30 +
    9.31 +	/* Initialize bridge Broad_0. */
    9.32 +	bridge = &(bridges[CKT_BRIDGE_Broad_0]);
    9.33 +	bridge->buffer = NULL;
    9.34 +	bridge->bridgeIsFull = FALSE;
    9.35 +        bridge->writerType   = None;
    9.36 +        bridge->readerType   = None;
    9.37 +	bridge->waitingReaderVP = NULL;
    9.38 +	bridge->waitingWriterVP = NULL;
    9.39 +	bridge->readerPartnerQStruct = NULL;
    9.40 +	bridge->writerPartnerQStruct = NULL;
    9.41 +
    9.42 +	/* Initialize bridge In_0. */
    9.43 +	bridge = &(bridges[CKT_BRIDGE_In_0]);
    9.44 +	bridge->buffer = NULL;
    9.45 +	bridge->bridgeIsFull = FALSE;
    9.46 +	bridge->waitingReaderVP = NULL;
    9.47 +	bridge->waitingWriterVP = NULL;
    9.48 +	bridge->readerPartnerQStruct = NULL;
    9.49 +	bridge->writerPartnerQStruct = NULL;
    9.50 +
    9.51 +	/* Initialize bridge In_1. */
    9.52 +	bridge = &(bridges[CKT_BRIDGE_In_1]);
    9.53 +	bridge->buffer = NULL;
    9.54 +	bridge->bridgeIsFull = FALSE;
    9.55 +	bridge->waitingReaderVP = NULL;
    9.56 +	bridge->waitingWriterVP = NULL;
    9.57 +	bridge->readerPartnerQStruct = NULL;
    9.58 +	bridge->writerPartnerQStruct = NULL;
    9.59 +
    9.60 +	/* Initialize bridge Out_0. */
    9.61 +	bridge = &(bridges[CKT_BRIDGE_Out_0]);
    9.62 +	bridge->buffer = NULL;
    9.63 +	bridge->bridgeIsFull = FALSE;
    9.64 +	bridge->waitingReaderVP = NULL;
    9.65 +	bridge->waitingWriterVP = NULL;
    9.66 +	bridge->readerPartnerQStruct = NULL;
    9.67 +	bridge->writerPartnerQStruct = NULL;
    9.68 +
    9.69 +	/* Initialize bridge Out_1. */
    9.70 +	bridge = &(bridges[CKT_BRIDGE_Out_1]);
    9.71 +	bridge->buffer = NULL;
    9.72 +	bridge->bridgeIsFull = FALSE;
    9.73 +	bridge->waitingReaderVP = NULL;
    9.74 +	bridge->waitingWriterVP = NULL;
    9.75 +	bridge->readerPartnerQStruct = NULL;
    9.76 +	bridge->writerPartnerQStruct = NULL;
    9.77 +
    9.78 +	/* Initialize bridge FIFO0. */
    9.79 +	bridge = &(bridges[CKT_BRIDGE_FIFO0]);
    9.80 +	bridge->buffer = NULL;
    9.81 +	bridge->bridgeIsFull = FALSE;
    9.82 +   bridge->waitingReaderVP = NULL;
    9.83 +	bridge->waitingWriterVP = NULL;
    9.84 +	bridge->readerPartnerQStruct = NULL;
    9.85 +	bridge->writerPartnerQStruct = NULL;
    9.86 +
    9.87 +	/* Initialize bridge FIFO1. */
    9.88 +	bridge = &(bridges[CKT_BRIDGE_FIFO1]);
    9.89 +	bridge->buffer = malloc(1);
    9.90 +	bridge->bridgeIsFull = TRUE;
    9.91 +	bridge->waitingReaderVP = NULL;
    9.92 +	bridge->waitingWriterVP = NULL;
    9.93 +	bridge->readerPartnerQStruct = NULL;
    9.94 +	bridge->writerPartnerQStruct = NULL;
    9.95 +
    9.96 +	/* Initialize bridge FIFO2. */
    9.97 +	bridge = &(bridges[CKT_BRIDGE_FIFO2]);
    9.98 +	bridge->buffer = NULL;
    9.99 +	bridge->bridgeIsFull = FALSE;
   9.100 +   bridge->waitingReaderVP = NULL;
   9.101 +	bridge->waitingWriterVP = NULL;
   9.102 +	bridge->readerPartnerQStruct = NULL;
   9.103 +	bridge->writerPartnerQStruct = NULL;
   9.104 +
   9.105 +	/* Initialize bridge FIFO3. */
   9.106 +	bridge = &(bridges[CKT_BRIDGE_FIFO3]);
   9.107 +	bridge->buffer = malloc(1);
   9.108 +	bridge->bridgeIsFull = TRUE;
   9.109 +	bridge->waitingReaderVP = NULL;
   9.110 +	bridge->waitingWriterVP = NULL;
   9.111 +	bridge->readerPartnerQStruct = NULL;
   9.112 +	bridge->writerPartnerQStruct = NULL;
   9.113 +
   9.114 +	/* Initialize boundary bridges. */
   9.115 +	boundaryBridges = PR_WL__malloc(NUM_BOUNDARY_BRIDGES * sizeof(VReoBridge*));
   9.116 +	boundaryBridges[0] = &(bridges[CKT_BRIDGE_Broad_0]);
   9.117 +	boundaryBridges[1] = &(bridges[CKT_BRIDGE_In_0]);
   9.118 +	boundaryBridges[2] = &(bridges[CKT_BRIDGE_In_1]);
   9.119 +	boundaryBridges[3] = &(bridges[CKT_BRIDGE_Out_0]);
   9.120 +	boundaryBridges[4] = &(bridges[CKT_BRIDGE_Out_1]);
   9.121 +
   9.122 +	//
   9.123 +	// INITIALIZE ISLANDS
   9.124 +	//
   9.125 +
   9.126 +	/* Initialize Island 0. */
   9.127 +	island = &(islands[CKT_I0]);
   9.128 +
   9.129 +	island->numCheckerFns = 1;
   9.130 +	island->numBridges = 4;
   9.131 +
   9.132 +	island->checkerFns = PR_WL__malloc(island->numCheckerFns * sizeof(VReoCheckerFn));
   9.133 +	island->checkerFns[0] = &Checker_0__I0;
   9.134 +
   9.135 +	island->doerFns = PR_WL__malloc(island->numCheckerFns * sizeof(VReoDoerFn));
   9.136 +	island->doerFns[0] = &Doer_0__I0;
   9.137 +
   9.138 +	island->bridges = PR_WL__malloc(island->numBridges * sizeof(VReoBridge *));
   9.139 +	island->bridges[I0_BRIDGE_Broad_0] = &(bridges[CKT_BRIDGE_Broad_0]);
   9.140 +	island->bridges[I0_BRIDGE_Broad_0Output1] = &(bridges[CKT_BRIDGE_Broad_0Output1]);
   9.141 +	island->bridges[I0_BRIDGE_Broad_0Output2] = &(bridges[CKT_BRIDGE_Broad_0Output2]);
   9.142 +	island->bridges[I0_BRIDGE_Out_1] = &(bridges[CKT_BRIDGE_Out_1]);
   9.143 +
   9.144 +	/* 
   9.145 +	 * Initialize Island 0: register Island 0 as a reader on 
   9.146 +	 * bridge Broad_0. 
   9.147 +	 */
   9.148 +	bridgeReaderCheckerFns = PR_WL__malloc( NUM_I0_CHECKERS_INVOLVE_BRIDGE_Broad_0 * sizeof(VReoCheckerFn *) );
   9.149 +	bridgeReaderDoerFns = PR_WL__malloc( NUM_I0_CHECKERS_INVOLVE_BRIDGE_Broad_0 * sizeof(VReoDoerFn *) );
   9.150 +	bridgeReaderCheckerFns[0] = (VReoCheckerFn) &CHECKER3_I0;
   9.151 +	bridgeReaderDoerFns[0] = (VReoDoerFn) &DOER3_I0;
   9.152 +
   9.153 +	bridge = &(bridges[CKT_BRIDGE_Broad_0]);
   9.154 +	bridge->reader = &(islands[CKT_I0]);
   9.155 +	bridge->readerType = Island;
   9.156 +	bridge->numReaderCheckerFns = NUM_I0_CHECKERS_INVOLVE_BRIDGE_Broad_0;
   9.157 +	bridge->readerCheckerFns = (VReoCheckerFn *) bridgeReaderCheckerFns;
   9.158 +	bridge->readerDoerFns = (VReoDoerFn *) bridgeReaderDoerFns;
   9.159 +
   9.160 +	/* 
   9.161 +	 * Initialize Island 0: register Island 0 as a writer on 
   9.162 +	 * bridge Broad_0Output1.
   9.163 +	 */
   9.164 +	bridgeWriterCheckerFns = PR_WL__malloc( NUM_I0_CHECKERS_INVOLVE_BRIDGE_Broad_0Output1 * sizeof(VReoCheckerFn *) );
   9.165 +	bridgeWriterDoerFns = PR_WL__malloc( NUM_I0_CHECKERS_INVOLVE_BRIDGE_Broad_0Output1 * sizeof(VReoDoerFn *) );
   9.166 +	bridgeWriterCheckerFns[0] = (VReoCheckerFn) &CHECKER3_I0;
   9.167 +	bridgeWriterDoerFns[0] = (VReoDoerFn) &DOER3_I0;
   9.168 +
   9.169 +	bridge = &(bridges[CKT_BRIDGE_Broad_0Output1]);
   9.170 +	bridge->writer = &(islands[CKT_I0]);
   9.171 +	bridge->writerType = Island;
   9.172 +	bridge->numWriterCheckerFns = NUM_I0_CHECKERS_INVOLVE_BRIDGE_Broad_0Output1;
   9.173 +	bridge->writerCheckerFns = (VReoCheckerFn *) bridgeWriterCheckerFns;
   9.174 +	bridge->writerDoerFns = (VReoDoerFn *) bridgeWriterDoerFns;
   9.175 +
   9.176 +	/* 
   9.177 +	 * Initialize Island 0: register Island 0 as a writer on 
   9.178 +	 * bridge Broad_0Output2.
   9.179 +	 */
   9.180 +	bridgeWriterCheckerFns = PR_WL__malloc( NUM_I0_CHECKERS_INVOLVE_BRIDGE_Broad_0Output2 * sizeof(VReoCheckerFn *) );
   9.181 +	bridgeWriterDoerFns = PR_WL__malloc( NUM_I0_CHECKERS_INVOLVE_BRIDGE_Broad_0Output2 * sizeof(VReoDoerFn *) );
   9.182 +	bridgeWriterCheckerFns[0] = (VReoCheckerFn) &CHECKER3_I0;
   9.183 +	bridgeWriterDoerFns[0] = (VReoDoerFn) &DOER3_I0;
   9.184 +
   9.185 +	bridge = &(bridges[CKT_BRIDGE_Broad_0Output2]);
   9.186 +	bridge->writer = &(islands[CKT_I0]);
   9.187 +	bridge->writerType = Island;
   9.188 +	bridge->numWriterCheckerFns = NUM_I0_CHECKERS_INVOLVE_BRIDGE_Broad_0Output2;
   9.189 +	bridge->writerCheckerFns = (VReoCheckerFn *) bridgeWriterCheckerFns;
   9.190 +	bridge->writerDoerFns = (VReoDoerFn *) bridgeWriterDoerFns;
   9.191 +
   9.192 +	/* 
   9.193 +	 * Initialize Island 0: register Island 0 as a writer on 
   9.194 +	 * bridge Out_1.
   9.195 +	 */
   9.196 +	bridgeWriterCheckerFns = PR_WL__malloc( NUM_I0_CHECKERS_INVOLVE_BRIDGE_Out_1 * sizeof(VReoCheckerFn *) );
   9.197 +	bridgeWriterDoerFns = PR_WL__malloc( NUM_I0_CHECKERS_INVOLVE_BRIDGE_Out_1 * sizeof(VReoDoerFn *) );
   9.198 +	bridgeWriterCheckerFns[0] = (VReoCheckerFn) &CHECKER3_I0;
   9.199 +	bridgeWriterDoerFns[0] = (VReoDoerFn) &DOER3_I0;
   9.200 +
   9.201 +	bridge = &(bridges[CKT_BRIDGE_Out_1]);
   9.202 +	bridge->writer = &(islands[CKT_I0]);
   9.203 +	bridge->writerType = Island;
   9.204 +	bridge->numWriterCheckerFns = NUM_I0_CHECKERS_INVOLVE_BRIDGE_Out_1;
   9.205 +	bridge->writerCheckerFns = (VReoCheckerFn *) bridgeWriterCheckerFns;
   9.206 +	bridge->writerDoerFns = (VReoDoerFn *) bridgeWriterDoerFns;
   9.207 +
   9.208 +	/* Initialize Island 1. */
   9.209 +	island = &(islands[CKT_I1]);
   9.210 +
   9.211 +	island->numCheckerFns = 1;
   9.212 +	island->numBridges = 3;
   9.213 +
   9.214 +	island->checkerFns = PR_WL__malloc(island->numCheckerFns * sizeof(VReoCheckerFn));
   9.215 +	island->checkerFns[0] = &Checker_0__I1;
   9.216 +
   9.217 +	island->doerFns = PR_WL__malloc(island->numCheckerFns * sizeof(VReoDoerFn));
   9.218 +	island->doerFns[0] = &Doer_0__I1;
   9.219 +
   9.220 +	island->bridges = PR_WL__malloc(island->numBridges * sizeof(VReoBridge *));
   9.221 +	island->bridges[I1_BRIDGE_X_0Input0] = &(bridges[CKT_BRIDGE_X_0Input0]);
   9.222 +	island->bridges[I1_BRIDGE_In_0] = &(bridges[CKT_BRIDGE_In_0]);
   9.223 +	island->bridges[I1_BRIDGE_In_0Output1] = &(bridges[CKT_BRIDGE_In_0Output1]);
   9.224 +
   9.225 +	/* 
   9.226 +	 * Initialize Island 1: register Island 1 as a reader on 
   9.227 +	 * bridge X_0Input0. 
   9.228 +	 */
   9.229 +	bridgeReaderCheckerFns = PR_WL__malloc( NUM_I1_CHECKERS_INVOLVE_BRIDGE_X_0Input0 * sizeof(VReoCheckerFn *) );
   9.230 +	bridgeReaderDoerFns = PR_WL__malloc( NUM_I1_CHECKERS_INVOLVE_BRIDGE_X_0Input0 * sizeof(VReoDoerFn *) );
   9.231 +	bridgeReaderCheckerFns[0] = (VReoCheckerFn) &CHECKER2_I1;
   9.232 +	bridgeReaderDoerFns[0] = (VReoDoerFn) &DOER2_I1;
   9.233 +
   9.234 +	bridge = &(bridges[CKT_BRIDGE_X_0Input0]);
   9.235 +	bridge->reader = &(islands[CKT_I1]);
   9.236 +	bridge->readerType = Island;
   9.237 +	bridge->numReaderCheckerFns = NUM_I1_CHECKERS_INVOLVE_BRIDGE_X_0Input0;
   9.238 +	bridge->readerCheckerFns = (VReoCheckerFn *) bridgeReaderCheckerFns;
   9.239 +	bridge->readerDoerFns = (VReoDoerFn *) bridgeReaderDoerFns;
   9.240 +
   9.241 +	/* 
   9.242 +	 * Initialize Island 1: register Island 1 as a reader on 
   9.243 +	 * bridge In_0. 
   9.244 +	 */
   9.245 +	bridgeReaderCheckerFns = PR_WL__malloc( NUM_I1_CHECKERS_INVOLVE_BRIDGE_In_0 * sizeof(VReoCheckerFn *) );
   9.246 +	bridgeReaderDoerFns = PR_WL__malloc( NUM_I1_CHECKERS_INVOLVE_BRIDGE_In_0 * sizeof(VReoDoerFn *) );
   9.247 +	bridgeReaderCheckerFns[0] = (VReoCheckerFn) &CHECKER2_I1;
   9.248 +	bridgeReaderDoerFns[0] = (VReoDoerFn) &DOER2_I1;
   9.249 +
   9.250 +	bridge = &(bridges[CKT_BRIDGE_In_0]);
   9.251 +	bridge->reader = &(islands[CKT_I1]);
   9.252 +	bridge->readerType = Island;
   9.253 +	bridge->numReaderCheckerFns = NUM_I1_CHECKERS_INVOLVE_BRIDGE_In_0;
   9.254 +	bridge->readerCheckerFns = (VReoCheckerFn *) bridgeReaderCheckerFns;
   9.255 +	bridge->readerDoerFns = (VReoDoerFn *) bridgeReaderDoerFns;
   9.256 +
   9.257 +	/* 
   9.258 +	 * Initialize Island 1: register Island 1 as a writer on 
   9.259 +	 * bridge In_0Output1.
   9.260 +	 */
   9.261 +	bridgeWriterCheckerFns = PR_WL__malloc( NUM_I1_CHECKERS_INVOLVE_BRIDGE_In_0Output1 * sizeof(VReoCheckerFn *) );
   9.262 +	bridgeWriterDoerFns = PR_WL__malloc( NUM_I1_CHECKERS_INVOLVE_BRIDGE_In_0Output1 * sizeof(VReoDoerFn *) );
   9.263 +	bridgeWriterCheckerFns[0] = (VReoCheckerFn) &CHECKER2_I1;
   9.264 +	bridgeWriterDoerFns[0] = (VReoDoerFn) &DOER2_I1;
   9.265 +
   9.266 +	bridge = &(bridges[CKT_BRIDGE_In_0Output1]);
   9.267 +	bridge->writer = &(islands[CKT_I1]);
   9.268 +	bridge->writerType = Island;
   9.269 +	bridge->numWriterCheckerFns = NUM_I1_CHECKERS_INVOLVE_BRIDGE_In_0Output1;
   9.270 +	bridge->writerCheckerFns = (VReoCheckerFn *) bridgeWriterCheckerFns;
   9.271 +	bridge->writerDoerFns = (VReoDoerFn *) bridgeWriterDoerFns;
   9.272 +
   9.273 +	/* Initialize Island 2. */
   9.274 +	island = &(islands[CKT_I2]);
   9.275 +
   9.276 +	island->numCheckerFns = 1;
   9.277 +	island->numBridges = 3;
   9.278 +
   9.279 +	island->checkerFns = PR_WL__malloc(island->numCheckerFns * sizeof(VReoCheckerFn));
   9.280 +	island->checkerFns[0] = &Checker_0__I2;
   9.281 +
   9.282 +	island->doerFns = PR_WL__malloc(island->numCheckerFns * sizeof(VReoDoerFn));
   9.283 +	island->doerFns[0] = &Doer_0__I2;
   9.284 +
   9.285 +	island->bridges = PR_WL__malloc(island->numBridges * sizeof(VReoBridge *));
   9.286 +	island->bridges[I2_BRIDGE_In_1] = &(bridges[CKT_BRIDGE_In_1]);
   9.287 +	island->bridges[I2_BRIDGE_X_1Input0] = &(bridges[CKT_BRIDGE_X_1Input0]);
   9.288 +	island->bridges[I2_BRIDGE_In_1Output0] = &(bridges[CKT_BRIDGE_In_1Output0]);
   9.289 +
   9.290 +	/* 
   9.291 +	 * Initialize Island 2: register Island 2 as a reader on 
   9.292 +	 * bridge In_1. 
   9.293 +	 */
   9.294 +	bridgeReaderCheckerFns = PR_WL__malloc( NUM_I2_CHECKERS_INVOLVE_BRIDGE_In_1 * sizeof(VReoCheckerFn *) );
   9.295 +	bridgeReaderDoerFns = PR_WL__malloc( NUM_I2_CHECKERS_INVOLVE_BRIDGE_In_1 * sizeof(VReoDoerFn *) );
   9.296 +	bridgeReaderCheckerFns[0] = (VReoCheckerFn) &CHECKER3_I2;
   9.297 +	bridgeReaderDoerFns[0] = (VReoDoerFn) &DOER3_I2;
   9.298 +
   9.299 +	bridge = &(bridges[CKT_BRIDGE_In_1]);
   9.300 +	bridge->reader = &(islands[CKT_I2]);
   9.301 +	bridge->readerType = Island;
   9.302 +	bridge->numReaderCheckerFns = NUM_I2_CHECKERS_INVOLVE_BRIDGE_In_1;
   9.303 +	bridge->readerCheckerFns = (VReoCheckerFn *) bridgeReaderCheckerFns;
   9.304 +	bridge->readerDoerFns = (VReoDoerFn *) bridgeReaderDoerFns;
   9.305 +
   9.306 +	/* 
   9.307 +	 * Initialize Island 2: register Island 2 as a reader on 
   9.308 +	 * bridge X_1Input0. 
   9.309 +	 */
   9.310 +	bridgeReaderCheckerFns = PR_WL__malloc( NUM_I2_CHECKERS_INVOLVE_BRIDGE_X_1Input0 * sizeof(VReoCheckerFn *) );
   9.311 +	bridgeReaderDoerFns = PR_WL__malloc( NUM_I2_CHECKERS_INVOLVE_BRIDGE_X_1Input0 * sizeof(VReoDoerFn *) );
   9.312 +	bridgeReaderCheckerFns[0] = (VReoCheckerFn) &CHECKER3_I2;
   9.313 +	bridgeReaderDoerFns[0] = (VReoDoerFn) &DOER3_I2;
   9.314 +
   9.315 +	bridge = &(bridges[CKT_BRIDGE_X_1Input0]);
   9.316 +	bridge->reader = &(islands[CKT_I2]);
   9.317 +	bridge->readerType = Island;
   9.318 +	bridge->numReaderCheckerFns = NUM_I2_CHECKERS_INVOLVE_BRIDGE_X_1Input0;
   9.319 +	bridge->readerCheckerFns = (VReoCheckerFn *) bridgeReaderCheckerFns;
   9.320 +	bridge->readerDoerFns = (VReoDoerFn *) bridgeReaderDoerFns;
   9.321 +
   9.322 +	/* 
   9.323 +	 * Initialize Island 2: register Island 2 as a writer on 
   9.324 +	 * bridge In_1Output0.
   9.325 +	 */
   9.326 +	bridgeWriterCheckerFns = PR_WL__malloc( NUM_I2_CHECKERS_INVOLVE_BRIDGE_In_1Output0 * sizeof(VReoCheckerFn *) );
   9.327 +	bridgeWriterDoerFns = PR_WL__malloc( NUM_I2_CHECKERS_INVOLVE_BRIDGE_In_1Output0 * sizeof(VReoDoerFn *) );
   9.328 +	bridgeWriterCheckerFns[0] = (VReoCheckerFn) &CHECKER3_I2;
   9.329 +	bridgeWriterDoerFns[0] = (VReoDoerFn) &DOER3_I2;
   9.330 +
   9.331 +	bridge = &(bridges[CKT_BRIDGE_In_1Output0]);
   9.332 +	bridge->writer = &(islands[CKT_I2]);
   9.333 +	bridge->writerType = Island;
   9.334 +	bridge->numWriterCheckerFns = NUM_I2_CHECKERS_INVOLVE_BRIDGE_In_1Output0;
   9.335 +	bridge->writerCheckerFns = (VReoCheckerFn *) bridgeWriterCheckerFns;
   9.336 +	bridge->writerDoerFns = (VReoDoerFn *) bridgeWriterDoerFns;
   9.337 +
   9.338 +	/* Initialize O1Island 0. */
   9.339 +	o1island = &(o1islands[CKT_O1I0]);
   9.340 +
   9.341 +	o1island->numBridges = 3;
   9.342 +	o1island->bridges = PR_WL__malloc(o1island->numBridges * sizeof(VReoBridge *));
   9.343 +	o1island->bridges[O1I0_BRIDGE_Out_0Input1] = &(bridges[CKT_BRIDGE_Out_0Input1]);
   9.344 +	o1island->bridges[O1I0_BRIDGE_Out_0Input0] = &(bridges[CKT_BRIDGE_Out_0Input0]);
   9.345 +	o1island->bridges[O1I0_BRIDGE_Out_0] = &(bridges[CKT_BRIDGE_Out_0]);
   9.346 +
   9.347 +	/* 
   9.348 +	 * Initialize O1Island 0: create queues (queue 0 holds puts of input 
   9.349 +	 * bridges; queue 1 holds gets of the output bridge). 
   9.350 +	 */
   9.351 +	offerQ0 = makePrivQ();
   9.352 +	offerQ1 = makePrivQ();
   9.353 +
   9.354 +	partnerQStruct0 = PR_WL__malloc( sizeof(VReoPartnerQStruct) );
   9.355 +	partnerQStruct0->numQs = 1;
   9.356 +	partnerQStruct0->partnerQs = PR_WL__malloc( partnerQStruct0->numQs * sizeof(PrivQueueStruc *) );
   9.357 +	partnerQStruct0->doerFns = PR_WL__malloc( partnerQStruct0->numQs * sizeof(VReoO1islandDoerFn) );
   9.358 +	partnerQStruct0->doerFns[0] = &o1islandReadBridgeToWrittenBridgeDoer;
   9.359 +	partnerQStruct0->partnerQs[0] = offerQ1;
   9.360 +
   9.361 +	partnerQStruct1 = PR_WL__malloc( sizeof(VReoPartnerQStruct) );
   9.362 +	partnerQStruct1->numQs = 1;
   9.363 +	partnerQStruct1->partnerQs = PR_WL__malloc( partnerQStruct1->numQs * sizeof(PrivQueueStruc *) );
   9.364 +	partnerQStruct1->doerFns = PR_WL__malloc( partnerQStruct1->numQs * sizeof(VReoO1islandDoerFn) );
   9.365 +	partnerQStruct1->doerFns[0] = &o1islandReadBridgeToWrittenBridgeDoer;
   9.366 +	partnerQStruct1->partnerQs[0] = offerQ0;
   9.367 +
   9.368 +	/* 
   9.369 +	 * Initialize O1Island 0: register O1Island 0 as a reader on 
   9.370 +	 * bridge Out_0Input1. 
   9.371 +	 */
   9.372 +	bridge = &(bridges[CKT_BRIDGE_Out_0Input1]);
   9.373 +	bridge->reader = &(o1island);
   9.374 +	bridge->readerType = O1island;
   9.375 +	bridge->readerPartnerQStruct = partnerQStruct0;
   9.376 +	bridge->readerOfferQ = offerQ0;
   9.377 +
   9.378 +	/* 
   9.379 +	 * Initialize O1Island 0: register O1Island 0 as a reader on 
   9.380 +	 * bridge Out_0Input0. 
   9.381 +	 */
   9.382 +	bridge = &(bridges[CKT_BRIDGE_Out_0Input0]);
   9.383 +	bridge->reader = &(o1island);
   9.384 +	bridge->readerType = O1island;
   9.385 +	bridge->readerPartnerQStruct = partnerQStruct0;
   9.386 +	bridge->readerOfferQ = offerQ0;
   9.387 +
   9.388 +	/* 
   9.389 +	 * Initialize O1Island 0: register O1Island 0 as the only 
   9.390 +	 * writer on bridge Out_0.
   9.391 +	 */
   9.392 +	bridge = &(bridges[CKT_BRIDGE_Out_0]);
   9.393 +	bridge->writer = &(o1island);
   9.394 +	bridge->writerType = O1island;
   9.395 +	bridge->writerPartnerQStruct = partnerQStruct1;
   9.396 +	bridge->writerOfferQ = offerQ1;
   9.397 +
   9.398 +	//
   9.399 +	// INITIALIZE QUEUES
   9.400 +	//
   9.401 +
   9.402 +	/* Assumption: (writerType != NULL) implies (writerType != VP) */
   9.403 +	bridge = &(bridges[CKT_BRIDGE_Out_0Input1]);
   9.404 +	if (bridge->writerType != None && bridge->bridgeIsFull)
   9.405 +		writePrivQ( bridge, bridge->readerOfferQ );
   9.406 +
   9.407 +	/* Assumption: (writerType != NULL) implies (writerType != VP) */
   9.408 +	bridge = &(bridges[CKT_BRIDGE_Out_0Input0]);
   9.409 +	if (bridge->writerType != None && bridge->bridgeIsFull)
   9.410 +		writePrivQ( bridge, bridge->readerOfferQ );
   9.411 +
   9.412 +	/* Assumption: (readerType != NULL) implies (readerType != VP) */
   9.413 +	bridge = &(bridges[CKT_BRIDGE_Out_0]);
   9.414 +	if (bridge->readerType != None && !bridge->bridgeIsFull)
   9.415 +		writePrivQ( bridge, bridge->writerOfferQ );
   9.416 +
   9.417 +	//
   9.418 +	// INITIALIZE CIRCUIT
   9.419 +	//
   9.420 +
   9.421 +	/* Initialize circuit. */
   9.422 +	circuit->numIslands = NUM_ISLANDS;
   9.423 +	circuit->numO1islands = NUM_O1ISLANDS;
   9.424 +	circuit->numBridges = NUM_BRIDGES;
   9.425 +	circuit->islands = islands;
   9.426 +	circuit->o1islands = o1islands;
   9.427 +	circuit->bridges = bridges;
   9.428 +	circuit->boundaryBridges = boundaryBridges;
   9.429 +	circuit->VPs = NULL;
   9.430 +
   9.431 +	/* Return. */
   9.432 +	return (circuit);
   9.433 +}
   9.434 +
   9.435 +void create_VPs_w_init_and_connect( VReoCircuit *circuit, void **initDatums,
   9.436 +                                    SlaveVP *animVP) 
   9.437 + {
   9.438 +	/* Declare variables. */
   9.439 +	VReoBridge **boundaryBridges, *bridges, **bridgesForVP;
   9.440 +	SlaveVP **VPs;
   9.441 +
   9.442 +	VPParams *prodParams;
   9.443 +	VPParams *consParams;
   9.444 +
   9.445 +	/* Initialize (boundary) bridges. */
   9.446 +	boundaryBridges = circuit->boundaryBridges;
   9.447 +	bridges = circuit->bridges;
   9.448 +
   9.449 +	/* Allocate memory for VPs. */
   9.450 +	VPs = PR_WL__malloc(NUM_VPs * sizeof(SlaveVP *));
   9.451 +
   9.452 +	/* Create Producer VP 0. */
   9.453 +	bridgesForVP = PR_WL__malloc(1 * sizeof(VReoBridge *));
   9.454 +	bridgesForVP[0] = boundaryBridges[CKT_VP_PROD0];
   9.455 +
   9.456 +	prodParams = PR_WL__malloc(sizeof(MatrixMultWorkUnit));
   9.457 +	prodParams->inBridges = NULL;
   9.458 +	prodParams->outBridges = bridgesForVP;
   9.459 +        prodParams->initData  = initDatums[CKT_VP_PROD0];
   9.460 +
   9.461 +	VPs[CKT_VP_PROD0] = VReo__create_VP(&producer_Fn, prodParams, circuit, animVP);
   9.462 +
   9.463 +	boundaryBridges[CKT_VP_PROD0]->writer = VPs[CKT_VP_PROD0];
   9.464 +	boundaryBridges[CKT_VP_PROD0]->writerType = VP;
   9.465 +
   9.466 +	/* Create Producer VP 1. */
   9.467 +	bridgesForVP = PR_WL__malloc(1 * sizeof(VReoBridge *));
   9.468 +	bridgesForVP[0] = boundaryBridges[CKT_VP_PROD1];
   9.469 +
   9.470 +	prodParams = PR_WL__malloc(sizeof(MatrixMultWorkUnit));
   9.471 +	prodParams->inBridges = NULL;
   9.472 +	prodParams->outBridges = bridgesForVP;
   9.473 +   prodParams->initData  = initDatums[CKT_VP_PROD1];
   9.474 +
   9.475 +	VPs[CKT_VP_PROD1] = VReo__create_VP(&producer_Fn, prodParams, circuit, animVP);
   9.476 +
   9.477 +	boundaryBridges[CKT_VP_PROD1]->writer = VPs[CKT_VP_PROD1];
   9.478 +	boundaryBridges[CKT_VP_PROD1]->writerType = VP;
   9.479 +
   9.480 +	/* Create Producer VP 2. */
   9.481 +	bridgesForVP = PR_WL__malloc(1 * sizeof(VReoBridge *));
   9.482 +	bridgesForVP[0] = boundaryBridges[CKT_VP_PROD2];
   9.483 +
   9.484 +	prodParams = PR_WL__malloc(sizeof(MatrixMultWorkUnit));
   9.485 +	prodParams->inBridges = NULL;
   9.486 +	prodParams->outBridges = bridgesForVP;
   9.487 +   prodParams->initData  = initDatums[CKT_VP_PROD2];
   9.488 +
   9.489 +	VPs[CKT_VP_PROD2] = VReo__create_VP(&producer_Fn, prodParams, circuit, animVP);
   9.490 +
   9.491 +	boundaryBridges[CKT_VP_PROD2]->writer = VPs[CKT_VP_PROD2];
   9.492 +	boundaryBridges[CKT_VP_PROD2]->writerType = VP;
   9.493 +
   9.494 +//	/* Create Consumer VP 0. */
   9.495 +//	consParams = PR_WL__malloc(sizeof(TestAppConsumerParams));
   9.496 +//	
   9.497 +//	//bridgesForVP = PR_WL__malloc(1 * sizeof(VReoBridge *));
   9.498 +//	//bridgesForVP[0] = boundaryBridges[CKT_VP_CONS0];
   9.499 +//	
   9.500 +//	bridgesForVP = PR_WL__malloc(2 * sizeof(VReoBridge *));
   9.501 +//	bridgesForVP[0] = bridges[CKT_BRIDGE_Out_0];
   9.502 +//	bridgesForVP[0] = bridges[CKT_BRIDGE_Out_1];
   9.503 +//	
   9.504 +//	consParams->inBridges = bridgesForVP;
   9.505 +//	consParams->outBridges = NULL;
   9.506 +//	
   9.507 +//	VPs[CKT_VP_CONS0] = VReo__create_VP(&consumer_Fn, consParams, circuit, animVP);
   9.508 +//	boundaryBridges[CKT_VP_CONS0]->reader = VPs[CKT_VP_CONS0];
   9.509 +//	boundaryBridges[CKT_VP_CONS0]->readerType = VP;
   9.510 +
   9.511 +//	/* Create Consumer VP 1. */
   9.512 +//	consParams = PR_WL__malloc(sizeof(TestAppConsumerParams));
   9.513 +//	
   9.514 +//	//bridgesForVP = PR_WL__malloc(1 * sizeof(VReoBridge *));
   9.515 +//	//bridgesForVP[0] = boundaryBridges[CKT_VP_CONS1];
   9.516 +//	
   9.517 +//	bridgesForVP = PR_WL__malloc(2 * sizeof(VReoBridge *));
   9.518 +//	bridgesForVP[0] = bridges[CKT_BRIDGE_Out_0];
   9.519 +//	bridgesForVP[0] = bridges[CKT_BRIDGE_Out_1];
   9.520 +//	
   9.521 +//	consParams->inBridges = bridgesForVP;
   9.522 +//	consParams->outBridges = NULL;
   9.523 +//	
   9.524 +//	VPs[CKT_VP_CONS1] = VReo__create_VP(&consumer_Fn, consParams, circuit, animVP);
   9.525 +//	boundaryBridges[CKT_VP_CONS1]->reader = VPs[CKT_VP_CONS1];
   9.526 +//	boundaryBridges[CKT_VP_CONS1]->readerType = VP;
   9.527 +
   9.528 +	/* Create Consumer VP. */
   9.529 +	consParams = PR_WL__malloc(sizeof(VPParams));
   9.530 +
   9.531 +	bridgesForVP = PR_WL__malloc(2 * sizeof(VReoBridge *));
   9.532 +	bridgesForVP[0] = &(bridges[CKT_BRIDGE_Out_0]);
   9.533 +	bridgesForVP[1] = &(bridges[CKT_BRIDGE_Out_1]);
   9.534 +
   9.535 +	consParams->inBridges  = bridgesForVP;
   9.536 +	consParams->outBridges = NULL;
   9.537 +   consParams->initData   = initDatums[CKT_VP_CONS0];
   9.538 +
   9.539 +	VPs[CKT_VP_CONS0] = VReo__create_VP(&consumer_Fn, consParams, circuit, animVP);
   9.540 +
   9.541 +	bridges[CKT_BRIDGE_Out_0].reader = VPs[CKT_VP_CONS0];
   9.542 +	bridges[CKT_BRIDGE_Out_1].reader = VPs[CKT_VP_CONS0];
   9.543 +	bridges[CKT_BRIDGE_Out_0].readerType = VP;
   9.544 +	bridges[CKT_BRIDGE_Out_1].readerType = VP;
   9.545 +
   9.546 +	/* Start circuit. */
   9.547 +	VReo__start_circuit(circuit, animVP);
   9.548 +}
   9.549 +
   9.550 +//==============================================================================
   9.551 +
   9.552 +/* Checkers for Island 0. */
   9.553 +
   9.554 +bool32 Checker_0__I0( VReoIsland *island ) {
   9.555 +	VReoBridge *bridgeBroad_0Output1, *bridgeBroad_0Output2, *bridgeOut_1, *bridgeBroad_0;
   9.556 +	bool32 satisfied;
   9.557 +
   9.558 +	bridgeBroad_0Output1 = (island->bridges)[I0_BRIDGE_Broad_0Output1];
   9.559 +	bridgeBroad_0Output2 = (island->bridges)[I0_BRIDGE_Broad_0Output2];
   9.560 +	bridgeOut_1 = (island->bridges)[I0_BRIDGE_Out_1];
   9.561 +	bridgeBroad_0 = (island->bridges)[I0_BRIDGE_Broad_0];
   9.562 +	satisfied = READY_FOR_READ_BRIDGE_Broad_0 && READY_FOR_WRITE_BRIDGE_Broad_0Output1 && READY_FOR_WRITE_BRIDGE_Broad_0Output2 && READY_FOR_WRITE_BRIDGE_Out_1;
   9.563 +	return satisfied;
   9.564 +}
   9.565 +
   9.566 +/* Checkers for Island 1. */
   9.567 +
   9.568 +bool32 Checker_0__I1( VReoIsland *island ) {
   9.569 +	VReoBridge *bridgeX_0Input0, *bridgeIn_0, *bridgeIn_0Output1;
   9.570 +	bool32 satisfied;
   9.571 +
   9.572 +	bridgeX_0Input0 = (island->bridges)[I1_BRIDGE_X_0Input0];
   9.573 +	bridgeIn_0 = (island->bridges)[I1_BRIDGE_In_0];
   9.574 +	bridgeIn_0Output1 = (island->bridges)[I1_BRIDGE_In_0Output1];
   9.575 +	satisfied = READY_FOR_READ_BRIDGE_X_0Input0 && READY_FOR_READ_BRIDGE_In_0 && READY_FOR_WRITE_BRIDGE_In_0Output1;
   9.576 +	return satisfied;
   9.577 +}
   9.578 +
   9.579 +/* Checkers for Island 2. */
   9.580 +
   9.581 +bool32 Checker_0__I2( VReoIsland *island ) {
   9.582 +	VReoBridge *bridgeIn_1Output0, *bridgeIn_1, *bridgeX_1Input0;
   9.583 +	bool32 satisfied;
   9.584 +
   9.585 +	bridgeIn_1Output0 = (island->bridges)[I2_BRIDGE_In_1Output0];
   9.586 +	bridgeIn_1 = (island->bridges)[I2_BRIDGE_In_1];
   9.587 +	bridgeX_1Input0 = (island->bridges)[I2_BRIDGE_X_1Input0];
   9.588 +	satisfied = READY_FOR_READ_BRIDGE_In_1 && READY_FOR_READ_BRIDGE_X_1Input0 && READY_FOR_WRITE_BRIDGE_In_1Output0;
   9.589 +	return satisfied;
   9.590 +}
   9.591 +
   9.592 +//==============================================================================
   9.593 +
   9.594 +/* Declaration of auxiliary doers. */
   9.595 +
   9.596 +void Auxdoer_for_bridge_Broad_0( VReoBridge *bridge );
   9.597 +void Auxdoer_for_bridge_In_0( VReoBridge *bridge );
   9.598 +void Auxdoer_for_bridge_In_1( VReoBridge *bridge );
   9.599 +void Auxdoer_for_bridge_Out_0( VReoBridge *bridge );
   9.600 +void Auxdoer_for_bridge_Out_1( VReoBridge *bridge );
   9.601 +void Auxdoer_for_bridge_In_0Output1( VReoBridge *bridge );
   9.602 +void Auxdoer_for_bridge_Out_0Input1( VReoBridge *bridge );
   9.603 +
   9.604 +void Auxdoer_for_bridge_Broad_0Output1( VReoBridge *bridge );
   9.605 +void Auxdoer_for_bridge_X_0Input0( VReoBridge *bridge );
   9.606 +
   9.607 +void Auxdoer_for_bridge_In_1Output0( VReoBridge *bridge );
   9.608 +void Auxdoer_for_bridge_Out_0Input0( VReoBridge *bridge );
   9.609 +
   9.610 +void Auxdoer_for_bridge_Broad_0Output2( VReoBridge *bridge );
   9.611 +void Auxdoer_for_bridge_X_1Input0( VReoBridge *bridge );
   9.612 +
   9.613 +/* Doers for Island 0. */
   9.614 +
   9.615 +void Doer_0__I0( VReoIsland *island ) {
   9.616 +	VReoBridge *bridgeBroad_0Output1, *bridgeBroad_0Output2, *bridgeOut_1, *bridgeBroad_0;
   9.617 +
   9.618 +	/* Initialize bridges. */
   9.619 +	bridgeBroad_0Output1 = (island->bridges)[I0_BRIDGE_Broad_0Output1];
   9.620 +	bridgeBroad_0Output2 = (island->bridges)[I0_BRIDGE_Broad_0Output2];
   9.621 +	bridgeOut_1 = (island->bridges)[I0_BRIDGE_Out_1];
   9.622 +	bridgeBroad_0 = (island->bridges)[I0_BRIDGE_Broad_0];
   9.623 +
   9.624 +	/* Distribute data. */
   9.625 +	bridgeBroad_0Output1->buffer = bridgeBroad_0->buffer;
   9.626 +	bridgeBroad_0Output2->buffer = bridgeBroad_0->buffer;
   9.627 +	bridgeOut_1->buffer = bridgeBroad_0->buffer;
   9.628 +
   9.629 +	/* Update bridge status. */
   9.630 +	bridgeBroad_0->bridgeIsFull = FALSE;
   9.631 +	bridgeBroad_0Output1->bridgeIsFull = TRUE;
   9.632 +	bridgeBroad_0Output2->bridgeIsFull = TRUE;
   9.633 +	bridgeOut_1->bridgeIsFull = TRUE;
   9.634 +
   9.635 +	/* Prepare reader VPs. */
   9.636 +	PR_PI__make_slave_ready_for_lang(bridgeOut_1->waitingReaderVP, VReo_MAGIC_NUMBER);
   9.637 +	bridgeOut_1->waitingReaderVP->dataRetFromReq = bridgeOut_1->buffer;
   9.638 +	bridgeOut_1->waitingReaderVP = NULL;
   9.639 +	bridgeOut_1->bridgeIsFull = FALSE;
   9.640 +
   9.641 +	/* Prepare writer VPs. */
   9.642 +	PR_PI__make_slave_ready_for_lang(bridgeBroad_0->waitingWriterVP, VReo_MAGIC_NUMBER);
   9.643 +	bridgeBroad_0->waitingWriterVP = NULL;
   9.644 +
   9.645 +	/* Call auxiliary doers to complete this transition. */
   9.646 +	Auxdoer_for_bridge_Broad_0Output1(bridgeBroad_0Output1);
   9.647 +	Auxdoer_for_bridge_Broad_0Output2(bridgeBroad_0Output2);
   9.648 +	Auxdoer_for_bridge_Out_1(bridgeOut_1);
   9.649 +	Auxdoer_for_bridge_Broad_0(bridgeBroad_0);
   9.650 +}
   9.651 +
   9.652 +/* Doers for Island 1. */
   9.653 +
   9.654 +void Doer_0__I1( VReoIsland *island ) {
   9.655 +	VReoBridge *bridgeX_0Input0, *bridgeIn_0, *bridgeIn_0Output1;
   9.656 +
   9.657 +	/* Initialize bridges. */
   9.658 +	bridgeX_0Input0 = (island->bridges)[I1_BRIDGE_X_0Input0];
   9.659 +	bridgeIn_0 = (island->bridges)[I1_BRIDGE_In_0];
   9.660 +	bridgeIn_0Output1 = (island->bridges)[I1_BRIDGE_In_0Output1];
   9.661 +
   9.662 +	/* Distribute data. */
   9.663 +	bridgeIn_0Output1->buffer = bridgeIn_0->buffer;
   9.664 +
   9.665 +	/* Update bridge status. */
   9.666 +	bridgeX_0Input0->bridgeIsFull = FALSE;
   9.667 +	bridgeIn_0->bridgeIsFull = FALSE;
   9.668 +	bridgeIn_0Output1->bridgeIsFull = TRUE;
   9.669 +
   9.670 +	/* Prepare reader VPs. */
   9.671 +
   9.672 +	/* Prepare writer VPs. */
   9.673 +	PR_PI__make_slave_ready_for_lang(bridgeIn_0->waitingWriterVP, VReo_MAGIC_NUMBER);
   9.674 +	bridgeIn_0->waitingWriterVP = NULL;
   9.675 +
   9.676 +	/* Call auxiliary doers to complete this transition. */
   9.677 +	Auxdoer_for_bridge_X_0Input0(bridgeX_0Input0);
   9.678 +	Auxdoer_for_bridge_In_0(bridgeIn_0);
   9.679 +	Auxdoer_for_bridge_In_0Output1(bridgeIn_0Output1);
   9.680 +}
   9.681 +
   9.682 +/* Doers for Island 2. */
   9.683 +
   9.684 +void Doer_0__I2( VReoIsland *island ) {
   9.685 +	VReoBridge *bridgeIn_1Output0, *bridgeIn_1, *bridgeX_1Input0;
   9.686 +
   9.687 +	/* Initialize bridges. */
   9.688 +	bridgeIn_1Output0 = (island->bridges)[I2_BRIDGE_In_1Output0];
   9.689 +	bridgeIn_1 = (island->bridges)[I2_BRIDGE_In_1];
   9.690 +	bridgeX_1Input0 = (island->bridges)[I2_BRIDGE_X_1Input0];
   9.691 +
   9.692 +	/* Distribute data. */
   9.693 +	bridgeIn_1Output0->buffer = bridgeIn_1->buffer;
   9.694 +
   9.695 +	/* Update bridge status. */
   9.696 +	bridgeIn_1->bridgeIsFull = FALSE;
   9.697 +	bridgeX_1Input0->bridgeIsFull = FALSE;
   9.698 +	bridgeIn_1Output0->bridgeIsFull = TRUE;
   9.699 +
   9.700 +	/* Prepare reader VPs. */
   9.701 +
   9.702 +	/* Prepare writer VPs. */
   9.703 +	PR_PI__make_slave_ready_for_lang(bridgeIn_1->waitingWriterVP, VReo_MAGIC_NUMBER);
   9.704 +	bridgeIn_1->waitingWriterVP = NULL;
   9.705 +
   9.706 +	/* Call auxiliary doers to complete this transition. */
   9.707 +	Auxdoer_for_bridge_In_1Output0(bridgeIn_1Output0);
   9.708 +	Auxdoer_for_bridge_In_1(bridgeIn_1);
   9.709 +	Auxdoer_for_bridge_X_1Input0(bridgeX_1Input0);
   9.710 +}
   9.711 +
   9.712 +//==============================================================================
   9.713 +
   9.714 +/* Auxiliary doers for input bridges. */
   9.715 +
   9.716 +void Auxdoer_for_bridge_Broad_0( VReoBridge *bridge ) {
   9.717 +	;
   9.718 +}
   9.719 +
   9.720 +void Auxdoer_for_bridge_In_0( VReoBridge *bridge ) {
   9.721 +	;
   9.722 +}
   9.723 +
   9.724 +void Auxdoer_for_bridge_In_1( VReoBridge *bridge ) {
   9.725 +	;
   9.726 +}
   9.727 +
   9.728 +/* Auxiliary doers for output bridges. */
   9.729 +
   9.730 +void Auxdoer_for_bridge_Out_0( VReoBridge *bridge ) {
   9.731 +	;
   9.732 +}
   9.733 +
   9.734 +void Auxdoer_for_bridge_Out_1( VReoBridge *bridge ) {
   9.735 +	;
   9.736 +}
   9.737 +
   9.738 +/* Auxiliary doers for FIFO bridges. */
   9.739 +
   9.740 +void Auxdoer_for_bridge_In_0Output1( VReoBridge *bridge ) {
   9.741 +	int32 numCheckerFns;
   9.742 +	VReoIsland *islandOnOtherSide;
   9.743 +	VReoCheckerFn *checkerFns;
   9.744 +	VReoDoerFn *doerFns;
   9.745 +
   9.746 +	VReoO1island *o1islandOnOtherSide;
   9.747 +	VReoPartnerQStruct *partnerQstruct;
   9.748 +
   9.749 +	if (bridge->readerType == Island) {
   9.750 +		islandOnOtherSide = (VReoIsland*) bridge->reader;
   9.751 +		numCheckerFns = bridge->numReaderCheckerFns;
   9.752 +		checkerFns = bridge->readerCheckerFns;
   9.753 +		doerFns = bridge->readerDoerFns;
   9.754 +
   9.755 +		VReo__check_an_island( islandOnOtherSide, numCheckerFns, checkerFns, doerFns );
   9.756 +    }
   9.757 +
   9.758 +    else if (bridge->readerType == O1island) { 
   9.759 +    	o1islandOnOtherSide = (VReoO1island *)bridge->reader;
   9.760 +    	partnerQstruct =  bridge->readerPartnerQStruct;
   9.761 +
   9.762 +    	VReo__check_an_o1island_that_reads_bridge( o1islandOnOtherSide, bridge, partnerQstruct );
   9.763 +    }
   9.764 +}
   9.765 +void Auxdoer_for_bridge_Out_0Input1( VReoBridge *bridge ) {
   9.766 +	int32 numCheckerFns;
   9.767 +	VReoIsland *islandOnOtherSide;
   9.768 +	VReoCheckerFn *checkerFns;
   9.769 +	VReoDoerFn *doerFns;
   9.770 +
   9.771 +	VReoO1island *o1islandOnOtherSide;
   9.772 +	VReoPartnerQStruct *partnerQstruct;
   9.773 +
   9.774 +	if (bridge->writerType == Island) {
   9.775 +		islandOnOtherSide = (VReoIsland*) bridge->writer;
   9.776 +		numCheckerFns = bridge->numWriterCheckerFns;
   9.777 +		checkerFns = bridge->writerCheckerFns;
   9.778 +		doerFns = bridge->writerDoerFns;
   9.779 +
   9.780 +		VReo__check_an_island( islandOnOtherSide, numCheckerFns, checkerFns, doerFns );
   9.781 +    }
   9.782 +
   9.783 +	else if (bridge->writerType == O1island) { 
   9.784 +		o1islandOnOtherSide = (VReoO1island *)bridge->writer;
   9.785 +		partnerQstruct = bridge->writerPartnerQStruct;
   9.786 +
   9.787 +		VReo__check_an_o1island_that_writes_bridge( o1islandOnOtherSide, bridge, partnerQstruct );
   9.788 +    }
   9.789 +}
   9.790 +
   9.791 +void Auxdoer_for_bridge_Broad_0Output1( VReoBridge *bridge ) {
   9.792 +	int32 numCheckerFns;
   9.793 +	VReoIsland *islandOnOtherSide;
   9.794 +	VReoCheckerFn *checkerFns;
   9.795 +	VReoDoerFn *doerFns;
   9.796 +
   9.797 +	VReoO1island *o1islandOnOtherSide;
   9.798 +	VReoPartnerQStruct *partnerQstruct;
   9.799 +
   9.800 +	if (bridge->readerType == Island) {
   9.801 +		islandOnOtherSide = (VReoIsland*) bridge->reader;
   9.802 +		numCheckerFns = bridge->numReaderCheckerFns;
   9.803 +		checkerFns = bridge->readerCheckerFns;
   9.804 +		doerFns = bridge->readerDoerFns;
   9.805 +
   9.806 +		VReo__check_an_island( islandOnOtherSide, numCheckerFns, checkerFns, doerFns );
   9.807 +    }
   9.808 +
   9.809 +    else if (bridge->readerType == O1island) { 
   9.810 +    	o1islandOnOtherSide = (VReoO1island *)bridge->reader;
   9.811 +    	partnerQstruct =  bridge->readerPartnerQStruct;
   9.812 +
   9.813 +    	VReo__check_an_o1island_that_reads_bridge( o1islandOnOtherSide, bridge, partnerQstruct );
   9.814 +    }
   9.815 +}
   9.816 +void Auxdoer_for_bridge_X_0Input0( VReoBridge *bridge ) {
   9.817 +	int32 numCheckerFns;
   9.818 +	VReoIsland *islandOnOtherSide;
   9.819 +	VReoCheckerFn *checkerFns;
   9.820 +	VReoDoerFn *doerFns;
   9.821 +
   9.822 +	VReoO1island *o1islandOnOtherSide;
   9.823 +	VReoPartnerQStruct *partnerQstruct;
   9.824 +
   9.825 +	if (bridge->writerType == Island) {
   9.826 +		islandOnOtherSide = (VReoIsland*) bridge->writer;
   9.827 +		numCheckerFns = bridge->numWriterCheckerFns;
   9.828 +		checkerFns = bridge->writerCheckerFns;
   9.829 +		doerFns = bridge->writerDoerFns;
   9.830 +
   9.831 +		VReo__check_an_island( islandOnOtherSide, numCheckerFns, checkerFns, doerFns );
   9.832 +    }
   9.833 +
   9.834 +	else if (bridge->writerType == O1island) { 
   9.835 +		o1islandOnOtherSide = (VReoO1island *)bridge->writer;
   9.836 +		partnerQstruct = bridge->writerPartnerQStruct;
   9.837 +
   9.838 +		VReo__check_an_o1island_that_writes_bridge( o1islandOnOtherSide, bridge, partnerQstruct );
   9.839 +    }
   9.840 +}
   9.841 +
   9.842 +void Auxdoer_for_bridge_In_1Output0( VReoBridge *bridge ) {
   9.843 +	int32 numCheckerFns;
   9.844 +	VReoIsland *islandOnOtherSide;
   9.845 +	VReoCheckerFn *checkerFns;
   9.846 +	VReoDoerFn *doerFns;
   9.847 +
   9.848 +	VReoO1island *o1islandOnOtherSide;
   9.849 +	VReoPartnerQStruct *partnerQstruct;
   9.850 +
   9.851 +	if (bridge->readerType == Island) {
   9.852 +		islandOnOtherSide = (VReoIsland*) bridge->reader;
   9.853 +		numCheckerFns = bridge->numReaderCheckerFns;
   9.854 +		checkerFns = bridge->readerCheckerFns;
   9.855 +		doerFns = bridge->readerDoerFns;
   9.856 +
   9.857 +		VReo__check_an_island( islandOnOtherSide, numCheckerFns, checkerFns, doerFns );
   9.858 +    }
   9.859 +
   9.860 +    else if (bridge->readerType == O1island) { 
   9.861 +    	o1islandOnOtherSide = (VReoO1island *)bridge->reader;
   9.862 +    	partnerQstruct =  bridge->readerPartnerQStruct;
   9.863 +
   9.864 +    	VReo__check_an_o1island_that_reads_bridge( o1islandOnOtherSide, bridge, partnerQstruct );
   9.865 +    }
   9.866 +}
   9.867 +void Auxdoer_for_bridge_Out_0Input0( VReoBridge *bridge ) {
   9.868 +	int32 numCheckerFns;
   9.869 +	VReoIsland *islandOnOtherSide;
   9.870 +	VReoCheckerFn *checkerFns;
   9.871 +	VReoDoerFn *doerFns;
   9.872 +
   9.873 +	VReoO1island *o1islandOnOtherSide;
   9.874 +	VReoPartnerQStruct *partnerQstruct;
   9.875 +
   9.876 +	if (bridge->writerType == Island) {
   9.877 +		islandOnOtherSide = (VReoIsland*) bridge->writer;
   9.878 +		numCheckerFns = bridge->numWriterCheckerFns;
   9.879 +		checkerFns = bridge->writerCheckerFns;
   9.880 +		doerFns = bridge->writerDoerFns;
   9.881 +
   9.882 +		VReo__check_an_island( islandOnOtherSide, numCheckerFns, checkerFns, doerFns );
   9.883 +    }
   9.884 +
   9.885 +	else if (bridge->writerType == O1island) { 
   9.886 +		o1islandOnOtherSide = (VReoO1island *)bridge->writer;
   9.887 +		partnerQstruct = bridge->writerPartnerQStruct;
   9.888 +
   9.889 +		VReo__check_an_o1island_that_writes_bridge( o1islandOnOtherSide, bridge, partnerQstruct );
   9.890 +    }
   9.891 +}
   9.892 +
   9.893 +void Auxdoer_for_bridge_Broad_0Output2( VReoBridge *bridge ) {
   9.894 +	int32 numCheckerFns;
   9.895 +	VReoIsland *islandOnOtherSide;
   9.896 +	VReoCheckerFn *checkerFns;
   9.897 +	VReoDoerFn *doerFns;
   9.898 +
   9.899 +	VReoO1island *o1islandOnOtherSide;
   9.900 +	VReoPartnerQStruct *partnerQstruct;
   9.901 +
   9.902 +	if (bridge->readerType == Island) {
   9.903 +		islandOnOtherSide = (VReoIsland*) bridge->reader;
   9.904 +		numCheckerFns = bridge->numReaderCheckerFns;
   9.905 +		checkerFns = bridge->readerCheckerFns;
   9.906 +		doerFns = bridge->readerDoerFns;
   9.907 +
   9.908 +		VReo__check_an_island( islandOnOtherSide, numCheckerFns, checkerFns, doerFns );
   9.909 +    }
   9.910 +
   9.911 +    else if (bridge->readerType == O1island) { 
   9.912 +    	o1islandOnOtherSide = (VReoO1island *)bridge->reader;
   9.913 +    	partnerQstruct =  bridge->readerPartnerQStruct;
   9.914 +
   9.915 +    	VReo__check_an_o1island_that_reads_bridge( o1islandOnOtherSide, bridge, partnerQstruct );
   9.916 +    }
   9.917 +}
   9.918 +void Auxdoer_for_bridge_X_1Input0( VReoBridge *bridge ) {
   9.919 +	int32 numCheckerFns;
   9.920 +	VReoIsland *islandOnOtherSide;
   9.921 +	VReoCheckerFn *checkerFns;
   9.922 +	VReoDoerFn *doerFns;
   9.923 +
   9.924 +	VReoO1island *o1islandOnOtherSide;
   9.925 +	VReoPartnerQStruct *partnerQstruct;
   9.926 +
   9.927 +	if (bridge->writerType == Island) {
   9.928 +		islandOnOtherSide = (VReoIsland*) bridge->writer;
   9.929 +		numCheckerFns = bridge->numWriterCheckerFns;
   9.930 +		checkerFns = bridge->writerCheckerFns;
   9.931 +		doerFns = bridge->writerDoerFns;
   9.932 +
   9.933 +		VReo__check_an_island( islandOnOtherSide, numCheckerFns, checkerFns, doerFns );
   9.934 +    }
   9.935 +
   9.936 +	else if (bridge->writerType == O1island) { 
   9.937 +		o1islandOnOtherSide = (VReoO1island *)bridge->writer;
   9.938 +		partnerQstruct = bridge->writerPartnerQStruct;
   9.939 +
   9.940 +		VReo__check_an_o1island_that_writes_bridge( o1islandOnOtherSide, bridge, partnerQstruct );
   9.941 +    }
   9.942 +}
   9.943 \ No newline at end of file
    10.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    10.2 +++ b/Reo__Matrix_Mult/k_3/Circuit.h	Sat Jul 12 20:21:47 2014 +0200
    10.3 @@ -0,0 +1,160 @@
    10.4 +#ifndef _Circuit_App1_H
    10.5 +#define	_Circuit_App1_H
    10.6 +
    10.7 +//#include "PR_impl/PR.h"
    10.8 +//#include "VReo_impl/VReo.h"
    10.9 +#include <PR__include/PR__structs__common.h>
   10.10 +#include <PR__include/langlets/vreo_wrapper_library.h>
   10.11 +#include <PR__include/prqueue.h>
   10.12 +#include <PR__include/PR__WL.h>
   10.13 +
   10.14 +//==============================================================================
   10.15 +
   10.16 +/* Counts. */
   10.17 +#define NUM_VPs 5
   10.18 +#define NUM_PROD 3
   10.19 +#define NUM_ISLANDS 3
   10.20 +#define NUM_O1ISLANDS 1
   10.21 +#define NUM_BRIDGES 9
   10.22 +#define NUM_BOUNDARY_BRIDGES 5
   10.23 +
   10.24 +/* Producer VPs attached to circuit. */
   10.25 +#define CKT_VP_PROD0 0
   10.26 +#define CKT_VP_PROD1 1
   10.27 +#define CKT_VP_PROD2 2
   10.28 +
   10.29 +/* Consumer VPs attached to circuit. */
   10.30 +// #define CKT_VP_CONS0 (3+0)
   10.31 +// #define CKT_VP_CONS1 (3+1)
   10.32 +#define CKT_VP_CONS0 3
   10.33 +
   10.34 +/* Islands in circuit. */
   10.35 +#define CKT_I0 0
   10.36 +#define CKT_I1 1
   10.37 +#define CKT_I2 2
   10.38 +
   10.39 +/* O1Islands in circuit. */
   10.40 +#define CKT_O1I0 0
   10.41 +
   10.42 +/* Bridges in circuit. */
   10.43 +#define CKT_BRIDGE_Broad_0 0
   10.44 +#define CKT_BRIDGE_In_0 1
   10.45 +#define CKT_BRIDGE_In_1 2
   10.46 +#define CKT_BRIDGE_Out_0 3
   10.47 +#define CKT_BRIDGE_Out_1 4
   10.48 +
   10.49 +#define CKT_BRIDGE_FIFO0 (5+0)
   10.50 +#define CKT_BRIDGE_In_0Output1 (5+0)
   10.51 +#define CKT_BRIDGE_Out_0Input1 (5+0)
   10.52 +
   10.53 +#define CKT_BRIDGE_FIFO1 (5+1)
   10.54 +#define CKT_BRIDGE_Broad_0Output1 (5+1)
   10.55 +#define CKT_BRIDGE_X_0Input0 (5+1)
   10.56 +
   10.57 +#define CKT_BRIDGE_FIFO2 (5+2)
   10.58 +#define CKT_BRIDGE_In_1Output0 (5+2)
   10.59 +#define CKT_BRIDGE_Out_0Input0 (5+2)
   10.60 +
   10.61 +#define CKT_BRIDGE_FIFO3 (5+3)
   10.62 +#define CKT_BRIDGE_Broad_0Output2 (5+3)
   10.63 +#define CKT_BRIDGE_X_1Input0 (5+3)
   10.64 +
   10.65 +/* Bridges in Island 0. */
   10.66 +#define I0_BRIDGE_Broad_0Output1 0
   10.67 +#define I0_BRIDGE_Broad_0Output2 1
   10.68 +#define I0_BRIDGE_Out_1 2
   10.69 +#define I0_BRIDGE_Broad_0 3
   10.70 +
   10.71 +/* Bridges in Island 1. */
   10.72 +#define I1_BRIDGE_X_0Input0 0
   10.73 +#define I1_BRIDGE_In_0 1
   10.74 +#define I1_BRIDGE_In_0Output1 2
   10.75 +
   10.76 +/* Bridges in Island 2. */
   10.77 +#define I2_BRIDGE_In_1Output0 0
   10.78 +#define I2_BRIDGE_In_1 1
   10.79 +#define I2_BRIDGE_X_1Input0 2
   10.80 +
   10.81 +/* Bridges in O1Island 0. */
   10.82 +#define O1I0_BRIDGE_Out_0 0
   10.83 +#define O1I0_BRIDGE_Out_0Input1 1
   10.84 +#define O1I0_BRIDGE_Out_0Input0 2
   10.85 +
   10.86 +/* Readiness of boundary bridges. */
   10.87 +#define READY_FOR_READ_BRIDGE_Broad_0 bridgeBroad_0->bridgeIsFull
   10.88 +#define READY_FOR_READ_BRIDGE_In_0 bridgeIn_0->bridgeIsFull
   10.89 +#define READY_FOR_READ_BRIDGE_In_1 bridgeIn_1->bridgeIsFull
   10.90 +#define READY_FOR_WRITE_BRIDGE_Out_0 bridgeOut_0->waitingReaderVP
   10.91 +#define READY_FOR_WRITE_BRIDGE_Out_1 bridgeOut_1->waitingReaderVP
   10.92 +
   10.93 +/* Readiness of bridges of FIFO 0. */ 
   10.94 +#define READY_FOR_WRITE_BRIDGE_In_0Output1 !bridgeIn_0Output1->bridgeIsFull
   10.95 +#define READY_FOR_READ_BRIDGE_Out_0Input1 bridgeOut_0Input1->bridgeIsFull
   10.96 +
   10.97 +/* Readiness of bridges of FIFO 1. */ 
   10.98 +#define READY_FOR_WRITE_BRIDGE_Broad_0Output1 !bridgeBroad_0Output1->bridgeIsFull
   10.99 +#define READY_FOR_READ_BRIDGE_X_0Input0 bridgeX_0Input0->bridgeIsFull
  10.100 +
  10.101 +/* Readiness of bridges of FIFO 2. */ 
  10.102 +#define READY_FOR_WRITE_BRIDGE_In_1Output0 !bridgeIn_1Output0->bridgeIsFull
  10.103 +#define READY_FOR_READ_BRIDGE_Out_0Input0 bridgeOut_0Input0->bridgeIsFull
  10.104 +
  10.105 +/* Readiness of bridges of FIFO 3. */ 
  10.106 +#define READY_FOR_WRITE_BRIDGE_Broad_0Output2 !bridgeBroad_0Output2->bridgeIsFull
  10.107 +#define READY_FOR_READ_BRIDGE_X_1Input0 bridgeX_1Input0->bridgeIsFull
  10.108 +
  10.109 +/* Number of checkers per bridge in Island 0. */
  10.110 +#define NUM_I0_CHECKERS_INVOLVE_BRIDGE_Broad_0Output1 1
  10.111 +#define NUM_I0_CHECKERS_INVOLVE_BRIDGE_Broad_0Output2 1
  10.112 +#define NUM_I0_CHECKERS_INVOLVE_BRIDGE_Out_1 1
  10.113 +#define NUM_I0_CHECKERS_INVOLVE_BRIDGE_Broad_0 1
  10.114 +
  10.115 +/* Number of checkers per bridge in Island 1. */
  10.116 +#define NUM_I1_CHECKERS_INVOLVE_BRIDGE_X_0Input0 1
  10.117 +#define NUM_I1_CHECKERS_INVOLVE_BRIDGE_In_0 1
  10.118 +#define NUM_I1_CHECKERS_INVOLVE_BRIDGE_In_0Output1 1
  10.119 +
  10.120 +/* Number of checkers per bridge in Island 2. */
  10.121 +#define NUM_I2_CHECKERS_INVOLVE_BRIDGE_In_1Output0 1
  10.122 +#define NUM_I2_CHECKERS_INVOLVE_BRIDGE_In_1 1
  10.123 +#define NUM_I2_CHECKERS_INVOLVE_BRIDGE_X_1Input0 1
  10.124 +
  10.125 +/* Checkers and doers for Island 0. */
  10.126 +#define CHECKER3_I0 Checker_0__I0
  10.127 +#define    DOER3_I0 Doer_0__I0
  10.128 +
  10.129 +/* Checkers and doers for Island 1. */
  10.130 +#define CHECKER2_I1 Checker_0__I1
  10.131 +#define    DOER2_I1 Doer_0__I1
  10.132 +
  10.133 +/* Checkers and doers for Island 2. */
  10.134 +#define CHECKER3_I2 Checker_0__I2
  10.135 +#define    DOER3_I2 Doer_0__I2
  10.136 +
  10.137 +//==============================================================================
  10.138 +
  10.139 +/* Create VPs and connect. */
  10.140 +void create_VPs_and_connect( VReoCircuit *circuit, SlaveVP *animVP );
  10.141 +
  10.142 +/* Create circuit. */
  10.143 +VReoCircuit * create_circuit( SlaveVP *animVP );
  10.144 +
  10.145 +/* Checkers of Island 0. */
  10.146 +bool32 Checker_0__I0( VReoIsland *island );
  10.147 +
  10.148 +/* Checkers of Island 1. */
  10.149 +bool32 Checker_0__I1( VReoIsland *island );
  10.150 +
  10.151 +/* Checkers of Island 2. */
  10.152 +bool32 Checker_0__I2( VReoIsland *island );
  10.153 +
  10.154 +/* Doers of Island 0. */
  10.155 +void Doer_0__I0( VReoIsland *island );
  10.156 +
  10.157 +/* Doers of Island 1. */
  10.158 +void Doer_0__I1( VReoIsland *island );
  10.159 +
  10.160 +/* Doers of Island 2. */
  10.161 +void Doer_0__I2( VReoIsland *island );
  10.162 +
  10.163 +#endif	/* _Circuit_App1_H */
  10.164 \ No newline at end of file
    11.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    11.2 +++ b/Reo__Matrix_Mult/k_3_corr/Circuit_corr.c	Sat Jul 12 20:21:47 2014 +0200
    11.3 @@ -0,0 +1,939 @@
    11.4 +#include <math.h>
    11.5 +#include <string.h>
    11.6 +#include "Reo__Matrix_Mult.h"
    11.7 +#include "Circuit.h"
    11.8 +
    11.9 +VReoCircuit *create_circuit(SlaveVP *animVP) {
   11.10 +
   11.11 +	/* Declare variables. */
   11.12 +	VReoCircuit  *circuit;
   11.13 +	VReoBridge   *bridge, *bridges, **boundaryBridges;
   11.14 +	VReoIsland   *islands, *island;
   11.15 +	VReoO1island *o1islands, *o1island;
   11.16 +	VReoCheckerFn *bridgeReaderCheckerFns, *bridgeWriterCheckerFns;
   11.17 +	VReoDoerFn   *bridgeReaderDoerFns, *bridgeWriterDoerFns;
   11.18 +	PrivQueueStruc *offerQ0, *offerQ1;
   11.19 +	VReoPartnerQStruct *partnerQStruct0, *partnerQStruct1;
   11.20 +
   11.21 +	/* Allocate memory for bridges, islands, and the circuit. */
   11.22 +	bridges = PR_WL__malloc(NUM_BRIDGES * sizeof(VReoBridge));
   11.23 +	islands = PR_WL__malloc((NUM_ISLANDS == 0 ? 1 : NUM_ISLANDS) * sizeof(VReoIsland));
   11.24 +	o1islands = PR_WL__malloc((NUM_O1ISLANDS == 0 ? 1 : NUM_O1ISLANDS) * sizeof(VReoO1island));
   11.25 +	circuit = (VReoCircuit *) PR_WL__malloc(sizeof(VReoCircuit));
   11.26 +
   11.27 +	//
   11.28 +	// INITIALIZE BRIDGES
   11.29 +	//
   11.30 +
   11.31 +	/* Initialize bridge Broad_0. */
   11.32 +	bridge = &(bridges[CKT_BRIDGE_Broad_0]);
   11.33 +	bridge->buffer = NULL;
   11.34 +	bridge->bridgeIsFull = FALSE;
   11.35 +        bridge->writerType   = None;
   11.36 +        bridge->readerType   = None;
   11.37 +	bridge->waitingReaderVP = NULL;
   11.38 +	bridge->waitingWriterVP = NULL;
   11.39 +	bridge->readerPartnerQStruct = NULL;
   11.40 +	bridge->writerPartnerQStruct = NULL;
   11.41 +
   11.42 +	/* Initialize bridge In_0. */
   11.43 +	bridge = &(bridges[CKT_BRIDGE_In_0]);
   11.44 +	bridge->buffer = NULL;
   11.45 +	bridge->bridgeIsFull = FALSE;
   11.46 +	bridge->waitingReaderVP = NULL;
   11.47 +	bridge->waitingWriterVP = NULL;
   11.48 +	bridge->readerPartnerQStruct = NULL;
   11.49 +	bridge->writerPartnerQStruct = NULL;
   11.50 +
   11.51 +	/* Initialize bridge In_1. */
   11.52 +	bridge = &(bridges[CKT_BRIDGE_In_1]);
   11.53 +	bridge->buffer = NULL;
   11.54 +	bridge->bridgeIsFull = FALSE;
   11.55 +	bridge->waitingReaderVP = NULL;
   11.56 +	bridge->waitingWriterVP = NULL;
   11.57 +	bridge->readerPartnerQStruct = NULL;
   11.58 +	bridge->writerPartnerQStruct = NULL;
   11.59 +
   11.60 +	/* Initialize bridge Out_0. */
   11.61 +	bridge = &(bridges[CKT_BRIDGE_Out_0]);
   11.62 +	bridge->buffer = NULL;
   11.63 +	bridge->bridgeIsFull = FALSE;
   11.64 +	bridge->waitingReaderVP = NULL;
   11.65 +	bridge->waitingWriterVP = NULL;
   11.66 +	bridge->readerPartnerQStruct = NULL;
   11.67 +	bridge->writerPartnerQStruct = NULL;
   11.68 +
   11.69 +	/* Initialize bridge Out_1. */
   11.70 +	bridge = &(bridges[CKT_BRIDGE_Out_1]);
   11.71 +	bridge->buffer = NULL;
   11.72 +	bridge->bridgeIsFull = FALSE;
   11.73 +	bridge->waitingReaderVP = NULL;
   11.74 +	bridge->waitingWriterVP = NULL;
   11.75 +	bridge->readerPartnerQStruct = NULL;
   11.76 +	bridge->writerPartnerQStruct = NULL;
   11.77 +
   11.78 +	/* Initialize bridge FIFO0. */
   11.79 +	bridge = &(bridges[CKT_BRIDGE_FIFO0]);
   11.80 +	bridge->buffer = NULL;
   11.81 +	bridge->bridgeIsFull = FALSE;
   11.82 +   bridge->waitingReaderVP = NULL;
   11.83 +	bridge->waitingWriterVP = NULL;
   11.84 +	bridge->readerPartnerQStruct = NULL;
   11.85 +	bridge->writerPartnerQStruct = NULL;
   11.86 +
   11.87 +	/* Initialize bridge FIFO1. */
   11.88 +	bridge = &(bridges[CKT_BRIDGE_FIFO1]);
   11.89 +	bridge->buffer = malloc(1);
   11.90 +	bridge->bridgeIsFull = TRUE;
   11.91 +	bridge->waitingReaderVP = NULL;
   11.92 +	bridge->waitingWriterVP = NULL;
   11.93 +	bridge->readerPartnerQStruct = NULL;
   11.94 +	bridge->writerPartnerQStruct = NULL;
   11.95 +
   11.96 +	/* Initialize bridge FIFO2. */
   11.97 +	bridge = &(bridges[CKT_BRIDGE_FIFO2]);
   11.98 +	bridge->buffer = NULL;
   11.99 +	bridge->bridgeIsFull = FALSE;
  11.100 +   bridge->waitingReaderVP = NULL;
  11.101 +	bridge->waitingWriterVP = NULL;
  11.102 +	bridge->readerPartnerQStruct = NULL;
  11.103 +	bridge->writerPartnerQStruct = NULL;
  11.104 +
  11.105 +	/* Initialize bridge FIFO3. */
  11.106 +	bridge = &(bridges[CKT_BRIDGE_FIFO3]);
  11.107 +	bridge->buffer = malloc(1);
  11.108 +	bridge->bridgeIsFull = TRUE;
  11.109 +	bridge->waitingReaderVP = NULL;
  11.110 +	bridge->waitingWriterVP = NULL;
  11.111 +	bridge->readerPartnerQStruct = NULL;
  11.112 +	bridge->writerPartnerQStruct = NULL;
  11.113 +
  11.114 +	/* Initialize boundary bridges. */
  11.115 +	boundaryBridges = PR_WL__malloc(NUM_BOUNDARY_BRIDGES * sizeof(VReoBridge*));
  11.116 +	boundaryBridges[0] = &(bridges[CKT_BRIDGE_Broad_0]);
  11.117 +	boundaryBridges[1] = &(bridges[CKT_BRIDGE_In_0]);
  11.118 +	boundaryBridges[2] = &(bridges[CKT_BRIDGE_In_1]);
  11.119 +	boundaryBridges[3] = &(bridges[CKT_BRIDGE_Out_0]);
  11.120 +	boundaryBridges[4] = &(bridges[CKT_BRIDGE_Out_1]);
  11.121 +
  11.122 +	//
  11.123 +	// INITIALIZE ISLANDS
  11.124 +	//
  11.125 +
  11.126 +	/* Initialize Island 0. */
  11.127 +	island = &(islands[CKT_I0]);
  11.128 +
  11.129 +	island->numCheckerFns = 1;
  11.130 +	island->numBridges = 4;
  11.131 +
  11.132 +	island->checkerFns = PR_WL__malloc(island->numCheckerFns * sizeof(VReoCheckerFn));
  11.133 +	island->checkerFns[0] = &Checker_0__I0;
  11.134 +
  11.135 +	island->doerFns = PR_WL__malloc(island->numCheckerFns * sizeof(VReoDoerFn));
  11.136 +	island->doerFns[0] = &Doer_0__I0;
  11.137 +
  11.138 +	island->bridges = PR_WL__malloc(island->numBridges * sizeof(VReoBridge *));
  11.139 +	island->bridges[I0_BRIDGE_Broad_0] = &(bridges[CKT_BRIDGE_Broad_0]);
  11.140 +	island->bridges[I0_BRIDGE_Broad_0Output1] = &(bridges[CKT_BRIDGE_Broad_0Output1]);
  11.141 +	island->bridges[I0_BRIDGE_Broad_0Output2] = &(bridges[CKT_BRIDGE_Broad_0Output2]);
  11.142 +	island->bridges[I0_BRIDGE_Out_1] = &(bridges[CKT_BRIDGE_Out_1]);
  11.143 +
  11.144 +	/* 
  11.145 +	 * Initialize Island 0: register Island 0 as a reader on 
  11.146 +	 * bridge Broad_0. 
  11.147 +	 */
  11.148 +	bridgeReaderCheckerFns = PR_WL__malloc( NUM_I0_CHECKERS_INVOLVE_BRIDGE_Broad_0 * sizeof(VReoCheckerFn *) );
  11.149 +	bridgeReaderDoerFns = PR_WL__malloc( NUM_I0_CHECKERS_INVOLVE_BRIDGE_Broad_0 * sizeof(VReoDoerFn *) );
  11.150 +	bridgeReaderCheckerFns[0] = (VReoCheckerFn) &CHECKER3_I0;
  11.151 +	bridgeReaderDoerFns[0] = (VReoDoerFn) &DOER3_I0;
  11.152 +
  11.153 +	bridge = &(bridges[CKT_BRIDGE_Broad_0]);
  11.154 +	bridge->reader = &(islands[CKT_I0]);
  11.155 +	bridge->readerType = Island;
  11.156 +	bridge->numReaderCheckerFns = NUM_I0_CHECKERS_INVOLVE_BRIDGE_Broad_0;
  11.157 +	bridge->readerCheckerFns = (VReoCheckerFn *) bridgeReaderCheckerFns;
  11.158 +	bridge->readerDoerFns = (VReoDoerFn *) bridgeReaderDoerFns;
  11.159 +
  11.160 +	/* 
  11.161 +	 * Initialize Island 0: register Island 0 as a writer on 
  11.162 +	 * bridge Broad_0Output1.
  11.163 +	 */
  11.164 +	bridgeWriterCheckerFns = PR_WL__malloc( NUM_I0_CHECKERS_INVOLVE_BRIDGE_Broad_0Output1 * sizeof(VReoCheckerFn *) );
  11.165 +	bridgeWriterDoerFns = PR_WL__malloc( NUM_I0_CHECKERS_INVOLVE_BRIDGE_Broad_0Output1 * sizeof(VReoDoerFn *) );
  11.166 +	bridgeWriterCheckerFns[0] = (VReoCheckerFn) &CHECKER3_I0;
  11.167 +	bridgeWriterDoerFns[0] = (VReoDoerFn) &DOER3_I0;
  11.168 +
  11.169 +	bridge = &(bridges[CKT_BRIDGE_Broad_0Output1]);
  11.170 +	bridge->writer = &(islands[CKT_I0]);
  11.171 +	bridge->writerType = Island;
  11.172 +	bridge->numWriterCheckerFns = NUM_I0_CHECKERS_INVOLVE_BRIDGE_Broad_0Output1;
  11.173 +	bridge->writerCheckerFns = (VReoCheckerFn *) bridgeWriterCheckerFns;
  11.174 +	bridge->writerDoerFns = (VReoDoerFn *) bridgeWriterDoerFns;
  11.175 +
  11.176 +	/* 
  11.177 +	 * Initialize Island 0: register Island 0 as a writer on 
  11.178 +	 * bridge Broad_0Output2.
  11.179 +	 */
  11.180 +	bridgeWriterCheckerFns = PR_WL__malloc( NUM_I0_CHECKERS_INVOLVE_BRIDGE_Broad_0Output2 * sizeof(VReoCheckerFn *) );
  11.181 +	bridgeWriterDoerFns = PR_WL__malloc( NUM_I0_CHECKERS_INVOLVE_BRIDGE_Broad_0Output2 * sizeof(VReoDoerFn *) );
  11.182 +	bridgeWriterCheckerFns[0] = (VReoCheckerFn) &CHECKER3_I0;
  11.183 +	bridgeWriterDoerFns[0] = (VReoDoerFn) &DOER3_I0;
  11.184 +
  11.185 +	bridge = &(bridges[CKT_BRIDGE_Broad_0Output2]);
  11.186 +	bridge->writer = &(islands[CKT_I0]);
  11.187 +	bridge->writerType = Island;
  11.188 +	bridge->numWriterCheckerFns = NUM_I0_CHECKERS_INVOLVE_BRIDGE_Broad_0Output2;
  11.189 +	bridge->writerCheckerFns = (VReoCheckerFn *) bridgeWriterCheckerFns;
  11.190 +	bridge->writerDoerFns = (VReoDoerFn *) bridgeWriterDoerFns;
  11.191 +
  11.192 +	/* 
  11.193 +	 * Initialize Island 0: register Island 0 as a writer on 
  11.194 +	 * bridge Out_1.
  11.195 +	 */
  11.196 +	bridgeWriterCheckerFns = PR_WL__malloc( NUM_I0_CHECKERS_INVOLVE_BRIDGE_Out_1 * sizeof(VReoCheckerFn *) );
  11.197 +	bridgeWriterDoerFns = PR_WL__malloc( NUM_I0_CHECKERS_INVOLVE_BRIDGE_Out_1 * sizeof(VReoDoerFn *) );
  11.198 +	bridgeWriterCheckerFns[0] = (VReoCheckerFn) &CHECKER3_I0;
  11.199 +	bridgeWriterDoerFns[0] = (VReoDoerFn) &DOER3_I0;
  11.200 +
  11.201 +	bridge = &(bridges[CKT_BRIDGE_Out_1]);
  11.202 +	bridge->writer = &(islands[CKT_I0]);
  11.203 +	bridge->writerType = Island;
  11.204 +	bridge->numWriterCheckerFns = NUM_I0_CHECKERS_INVOLVE_BRIDGE_Out_1;
  11.205 +	bridge->writerCheckerFns = (VReoCheckerFn *) bridgeWriterCheckerFns;
  11.206 +	bridge->writerDoerFns = (VReoDoerFn *) bridgeWriterDoerFns;
  11.207 +
  11.208 +	/* Initialize Island 1. */
  11.209 +	island = &(islands[CKT_I1]);
  11.210 +
  11.211 +	island->numCheckerFns = 1;
  11.212 +	island->numBridges = 3;
  11.213 +
  11.214 +	island->checkerFns = PR_WL__malloc(island->numCheckerFns * sizeof(VReoCheckerFn));
  11.215 +	island->checkerFns[0] = &Checker_0__I1;
  11.216 +
  11.217 +	island->doerFns = PR_WL__malloc(island->numCheckerFns * sizeof(VReoDoerFn));
  11.218 +	island->doerFns[0] = &Doer_0__I1;
  11.219 +
  11.220 +	island->bridges = PR_WL__malloc(island->numBridges * sizeof(VReoBridge *));
  11.221 +	island->bridges[I1_BRIDGE_X_0Input0] = &(bridges[CKT_BRIDGE_X_0Input0]);
  11.222 +	island->bridges[I1_BRIDGE_In_0] = &(bridges[CKT_BRIDGE_In_0]);
  11.223 +	island->bridges[I1_BRIDGE_In_0Output1] = &(bridges[CKT_BRIDGE_In_0Output1]);
  11.224 +
  11.225 +	/* 
  11.226 +	 * Initialize Island 1: register Island 1 as a reader on 
  11.227 +	 * bridge X_0Input0. 
  11.228 +	 */
  11.229 +	bridgeReaderCheckerFns = PR_WL__malloc( NUM_I1_CHECKERS_INVOLVE_BRIDGE_X_0Input0 * sizeof(VReoCheckerFn *) );
  11.230 +	bridgeReaderDoerFns = PR_WL__malloc( NUM_I1_CHECKERS_INVOLVE_BRIDGE_X_0Input0 * sizeof(VReoDoerFn *) );
  11.231 +	bridgeReaderCheckerFns[0] = (VReoCheckerFn) &CHECKER2_I1;
  11.232 +	bridgeReaderDoerFns[0] = (VReoDoerFn) &DOER2_I1;
  11.233 +
  11.234 +	bridge = &(bridges[CKT_BRIDGE_X_0Input0]);
  11.235 +	bridge->reader = &(islands[CKT_I1]);
  11.236 +	bridge->readerType = Island;
  11.237 +	bridge->numReaderCheckerFns = NUM_I1_CHECKERS_INVOLVE_BRIDGE_X_0Input0;
  11.238 +	bridge->readerCheckerFns = (VReoCheckerFn *) bridgeReaderCheckerFns;
  11.239 +	bridge->readerDoerFns = (VReoDoerFn *) bridgeReaderDoerFns;
  11.240 +
  11.241 +	/* 
  11.242 +	 * Initialize Island 1: register Island 1 as a reader on 
  11.243 +	 * bridge In_0. 
  11.244 +	 */
  11.245 +	bridgeReaderCheckerFns = PR_WL__malloc( NUM_I1_CHECKERS_INVOLVE_BRIDGE_In_0 * sizeof(VReoCheckerFn *) );
  11.246 +	bridgeReaderDoerFns = PR_WL__malloc( NUM_I1_CHECKERS_INVOLVE_BRIDGE_In_0 * sizeof(VReoDoerFn *) );
  11.247 +	bridgeReaderCheckerFns[0] = (VReoCheckerFn) &CHECKER2_I1;
  11.248 +	bridgeReaderDoerFns[0] = (VReoDoerFn) &DOER2_I1;
  11.249 +
  11.250 +	bridge = &(bridges[CKT_BRIDGE_In_0]);
  11.251 +	bridge->reader = &(islands[CKT_I1]);
  11.252 +	bridge->readerType = Island;
  11.253 +	bridge->numReaderCheckerFns = NUM_I1_CHECKERS_INVOLVE_BRIDGE_In_0;
  11.254 +	bridge->readerCheckerFns = (VReoCheckerFn *) bridgeReaderCheckerFns;
  11.255 +	bridge->readerDoerFns = (VReoDoerFn *) bridgeReaderDoerFns;
  11.256 +
  11.257 +	/* 
  11.258 +	 * Initialize Island 1: register Island 1 as a writer on 
  11.259 +	 * bridge In_0Output1.
  11.260 +	 */
  11.261 +	bridgeWriterCheckerFns = PR_WL__malloc( NUM_I1_CHECKERS_INVOLVE_BRIDGE_In_0Output1 * sizeof(VReoCheckerFn *) );
  11.262 +	bridgeWriterDoerFns = PR_WL__malloc( NUM_I1_CHECKERS_INVOLVE_BRIDGE_In_0Output1 * sizeof(VReoDoerFn *) );
  11.263 +	bridgeWriterCheckerFns[0] = (VReoCheckerFn) &CHECKER2_I1;
  11.264 +	bridgeWriterDoerFns[0] = (VReoDoerFn) &DOER2_I1;
  11.265 +
  11.266 +	bridge = &(bridges[CKT_BRIDGE_In_0Output1]);
  11.267 +	bridge->writer = &(islands[CKT_I1]);
  11.268 +	bridge->writerType = Island;
  11.269 +	bridge->numWriterCheckerFns = NUM_I1_CHECKERS_INVOLVE_BRIDGE_In_0Output1;
  11.270 +	bridge->writerCheckerFns = (VReoCheckerFn *) bridgeWriterCheckerFns;
  11.271 +	bridge->writerDoerFns = (VReoDoerFn *) bridgeWriterDoerFns;
  11.272 +
  11.273 +	/* Initialize Island 2. */
  11.274 +	island = &(islands[CKT_I2]);
  11.275 +
  11.276 +	island->numCheckerFns = 1;
  11.277 +	island->numBridges = 3;
  11.278 +
  11.279 +	island->checkerFns = PR_WL__malloc(island->numCheckerFns * sizeof(VReoCheckerFn));
  11.280 +	island->checkerFns[0] = &Checker_0__I2;
  11.281 +
  11.282 +	island->doerFns = PR_WL__malloc(island->numCheckerFns * sizeof(VReoDoerFn));
  11.283 +	island->doerFns[0] = &Doer_0__I2;
  11.284 +
  11.285 +	island->bridges = PR_WL__malloc(island->numBridges * sizeof(VReoBridge *));
  11.286 +	island->bridges[I2_BRIDGE_In_1] = &(bridges[CKT_BRIDGE_In_1]);
  11.287 +	island->bridges[I2_BRIDGE_X_1Input0] = &(bridges[CKT_BRIDGE_X_1Input0]);
  11.288 +	island->bridges[I2_BRIDGE_In_1Output0] = &(bridges[CKT_BRIDGE_In_1Output0]);
  11.289 +
  11.290 +	/* 
  11.291 +	 * Initialize Island 2: register Island 2 as a reader on 
  11.292 +	 * bridge In_1. 
  11.293 +	 */
  11.294 +	bridgeReaderCheckerFns = PR_WL__malloc( NUM_I2_CHECKERS_INVOLVE_BRIDGE_In_1 * sizeof(VReoCheckerFn *) );
  11.295 +	bridgeReaderDoerFns = PR_WL__malloc( NUM_I2_CHECKERS_INVOLVE_BRIDGE_In_1 * sizeof(VReoDoerFn *) );
  11.296 +	bridgeReaderCheckerFns[0] = (VReoCheckerFn) &CHECKER3_I2;
  11.297 +	bridgeReaderDoerFns[0] = (VReoDoerFn) &DOER3_I2;
  11.298 +
  11.299 +	bridge = &(bridges[CKT_BRIDGE_In_1]);
  11.300 +	bridge->reader = &(islands[CKT_I2]);
  11.301 +	bridge->readerType = Island;
  11.302 +	bridge->numReaderCheckerFns = NUM_I2_CHECKERS_INVOLVE_BRIDGE_In_1;
  11.303 +	bridge->readerCheckerFns = (VReoCheckerFn *) bridgeReaderCheckerFns;
  11.304 +	bridge->readerDoerFns = (VReoDoerFn *) bridgeReaderDoerFns;
  11.305 +
  11.306 +	/* 
  11.307 +	 * Initialize Island 2: register Island 2 as a reader on 
  11.308 +	 * bridge X_1Input0. 
  11.309 +	 */
  11.310 +	bridgeReaderCheckerFns = PR_WL__malloc( NUM_I2_CHECKERS_INVOLVE_BRIDGE_X_1Input0 * sizeof(VReoCheckerFn *) );
  11.311 +	bridgeReaderDoerFns = PR_WL__malloc( NUM_I2_CHECKERS_INVOLVE_BRIDGE_X_1Input0 * sizeof(VReoDoerFn *) );
  11.312 +	bridgeReaderCheckerFns[0] = (VReoCheckerFn) &CHECKER3_I2;
  11.313 +	bridgeReaderDoerFns[0] = (VReoDoerFn) &DOER3_I2;
  11.314 +
  11.315 +	bridge = &(bridges[CKT_BRIDGE_X_1Input0]);
  11.316 +	bridge->reader = &(islands[CKT_I2]);
  11.317 +	bridge->readerType = Island;
  11.318 +	bridge->numReaderCheckerFns = NUM_I2_CHECKERS_INVOLVE_BRIDGE_X_1Input0;
  11.319 +	bridge->readerCheckerFns = (VReoCheckerFn *) bridgeReaderCheckerFns;
  11.320 +	bridge->readerDoerFns = (VReoDoerFn *) bridgeReaderDoerFns;
  11.321 +
  11.322 +	/* 
  11.323 +	 * Initialize Island 2: register Island 2 as a writer on 
  11.324 +	 * bridge In_1Output0.
  11.325 +	 */
  11.326 +	bridgeWriterCheckerFns = PR_WL__malloc( NUM_I2_CHECKERS_INVOLVE_BRIDGE_In_1Output0 * sizeof(VReoCheckerFn *) );
  11.327 +	bridgeWriterDoerFns = PR_WL__malloc( NUM_I2_CHECKERS_INVOLVE_BRIDGE_In_1Output0 * sizeof(VReoDoerFn *) );
  11.328 +	bridgeWriterCheckerFns[0] = (VReoCheckerFn) &CHECKER3_I2;
  11.329 +	bridgeWriterDoerFns[0] = (VReoDoerFn) &DOER3_I2;
  11.330 +
  11.331 +	bridge = &(bridges[CKT_BRIDGE_In_1Output0]);
  11.332 +	bridge->writer = &(islands[CKT_I2]);
  11.333 +	bridge->writerType = Island;
  11.334 +	bridge->numWriterCheckerFns = NUM_I2_CHECKERS_INVOLVE_BRIDGE_In_1Output0;
  11.335 +	bridge->writerCheckerFns = (VReoCheckerFn *) bridgeWriterCheckerFns;
  11.336 +	bridge->writerDoerFns = (VReoDoerFn *) bridgeWriterDoerFns;
  11.337 +
  11.338 +	/* Initialize O1Island 0. */
  11.339 +	o1island = &(o1islands[CKT_O1I0]);
  11.340 +
  11.341 +	o1island->numBridges = 3;
  11.342 +	o1island->bridges = PR_WL__malloc(o1island->numBridges * sizeof(VReoBridge *));
  11.343 +	o1island->bridges[O1I0_BRIDGE_Out_0Input1] = &(bridges[CKT_BRIDGE_Out_0Input1]);
  11.344 +	o1island->bridges[O1I0_BRIDGE_Out_0Input0] = &(bridges[CKT_BRIDGE_Out_0Input0]);
  11.345 +	o1island->bridges[O1I0_BRIDGE_Out_0] = &(bridges[CKT_BRIDGE_Out_0]);
  11.346 +
  11.347 +	/* 
  11.348 +	 * Initialize O1Island 0: create queues (queue 0 holds puts of input 
  11.349 +	 * bridges; queue 1 holds gets of the output bridge). 
  11.350 +	 */
  11.351 +	offerQ0 = makePrivQ();
  11.352 +	offerQ1 = makePrivQ();
  11.353 +
  11.354 +	partnerQStruct0 = PR_WL__malloc( sizeof(VReoPartnerQStruct) );
  11.355 +	partnerQStruct0->numQs = 1;
  11.356 +	partnerQStruct0->partnerQs = PR_WL__malloc( partnerQStruct0->numQs * sizeof(PrivQueueStruc *) );
  11.357 +	partnerQStruct0->doerFns = PR_WL__malloc( partnerQStruct0->numQs * sizeof(VReoO1islandDoerFn) );
  11.358 +	partnerQStruct0->doerFns[0] = &o1islandReadBridgeToWrittenBridgeDoer;
  11.359 +	partnerQStruct0->partnerQs[0] = offerQ1;
  11.360 +
  11.361 +	partnerQStruct1 = PR_WL__malloc( sizeof(VReoPartnerQStruct) );
  11.362 +	partnerQStruct1->numQs = 1;
  11.363 +	partnerQStruct1->partnerQs = PR_WL__malloc( partnerQStruct1->numQs * sizeof(PrivQueueStruc *) );
  11.364 +	partnerQStruct1->doerFns = PR_WL__malloc( partnerQStruct1->numQs * sizeof(VReoO1islandDoerFn) );
  11.365 +	partnerQStruct1->doerFns[0] = &o1islandReadBridgeToWrittenBridgeDoer;
  11.366 +	partnerQStruct1->partnerQs[0] = offerQ0;
  11.367 +
  11.368 +	/* 
  11.369 +	 * Initialize O1Island 0: register O1Island 0 as a reader on 
  11.370 +	 * bridge Out_0Input1. 
  11.371 +	 */
  11.372 +	bridge = &(bridges[CKT_BRIDGE_Out_0Input1]);
  11.373 +	bridge->reader = &(o1island);
  11.374 +	bridge->readerType = O1island;
  11.375 +	bridge->readerPartnerQStruct = partnerQStruct0;
  11.376 +	bridge->readerOfferQ = offerQ0;
  11.377 +
  11.378 +	/* 
  11.379 +	 * Initialize O1Island 0: register O1Island 0 as a reader on 
  11.380 +	 * bridge Out_0Input0. 
  11.381 +	 */
  11.382 +	bridge = &(bridges[CKT_BRIDGE_Out_0Input0]);
  11.383 +	bridge->reader = &(o1island);
  11.384 +	bridge->readerType = O1island;
  11.385 +	bridge->readerPartnerQStruct = partnerQStruct0;
  11.386 +	bridge->readerOfferQ = offerQ0;
  11.387 +
  11.388 +	/* 
  11.389 +	 * Initialize O1Island 0: register O1Island 0 as the only 
  11.390 +	 * writer on bridge Out_0.
  11.391 +	 */
  11.392 +	bridge = &(bridges[CKT_BRIDGE_Out_0]);
  11.393 +	bridge->writer = &(o1island);
  11.394 +	bridge->writerType = O1island;
  11.395 +	bridge->writerPartnerQStruct = partnerQStruct1;
  11.396 +	bridge->writerOfferQ = offerQ1;
  11.397 +
  11.398 +	//
  11.399 +	// INITIALIZE QUEUES
  11.400 +	//
  11.401 +
  11.402 +	/* Assumption: (writerType != NULL) implies (writerType != VP) */
  11.403 +	bridge = &(bridges[CKT_BRIDGE_Out_0Input1]);
  11.404 +	if (bridge->writerType != None && bridge->bridgeIsFull)
  11.405 +		writePrivQ( bridge, bridge->readerOfferQ );
  11.406 +
  11.407 +	/* Assumption: (writerType != NULL) implies (writerType != VP) */
  11.408 +	bridge = &(bridges[CKT_BRIDGE_Out_0Input0]);
  11.409 +	if (bridge->writerType != None && bridge->bridgeIsFull)
  11.410 +		writePrivQ( bridge, bridge->readerOfferQ );
  11.411 +
  11.412 +	/* Assumption: (readerType != NULL) implies (readerType != VP) */
  11.413 +	bridge = &(bridges[CKT_BRIDGE_Out_0]);
  11.414 +	if (bridge->readerType != None && !bridge->bridgeIsFull)
  11.415 +		writePrivQ( bridge, bridge->writerOfferQ );
  11.416 +
  11.417 +	//
  11.418 +	// INITIALIZE CIRCUIT
  11.419 +	//
  11.420 +
  11.421 +	/* Initialize circuit. */
  11.422 +	circuit->numIslands = NUM_ISLANDS;
  11.423 +	circuit->numO1islands = NUM_O1ISLANDS;
  11.424 +	circuit->numBridges = NUM_BRIDGES;
  11.425 +	circuit->islands = islands;
  11.426 +	circuit->o1islands = o1islands;
  11.427 +	circuit->bridges = bridges;
  11.428 +	circuit->boundaryBridges = boundaryBridges;
  11.429 +	circuit->VPs = NULL;
  11.430 +
  11.431 +	/* Return. */
  11.432 +	return (circuit);
  11.433 +}
  11.434 +
  11.435 +void create_VPs_w_init_and_connect( VReoCircuit *circuit, void **initDatums,
  11.436 +                                    SlaveVP *animVP) 
  11.437 + {
  11.438 +	/* Declare variables. */
  11.439 +	VReoBridge **boundaryBridges, *bridges, **bridgesForVP;
  11.440 +	SlaveVP **VPs;
  11.441 +
  11.442 +	VPParams *prodParams;
  11.443 +	VPParams *consParams;
  11.444 +
  11.445 +	/* Initialize (boundary) bridges. */
  11.446 +	boundaryBridges = circuit->boundaryBridges;
  11.447 +	bridges = circuit->bridges;
  11.448 +
  11.449 +	/* Allocate memory for VPs. */
  11.450 +	VPs = PR_WL__malloc(NUM_VPs * sizeof(SlaveVP *));
  11.451 +
  11.452 +	/* Create Producer VP 0. */
  11.453 +	bridgesForVP = PR_WL__malloc(1 * sizeof(VReoBridge *));
  11.454 +	bridgesForVP[0] = boundaryBridges[CKT_VP_PROD0];
  11.455 +
  11.456 +	prodParams = PR_WL__malloc(sizeof(MatrixMultWorkUnit));
  11.457 +	prodParams->inBridges = NULL;
  11.458 +	prodParams->outBridges = bridgesForVP;
  11.459 +        prodParams->initData  = initDatums[CKT_VP_PROD0];
  11.460 +
  11.461 +	VPs[CKT_VP_PROD0] = VReo__create_VP(&producer_Fn, prodParams, circuit, animVP);
  11.462 +
  11.463 +	boundaryBridges[CKT_VP_PROD0]->writer = VPs[CKT_VP_PROD0];
  11.464 +	boundaryBridges[CKT_VP_PROD0]->writerType = VP;
  11.465 +
  11.466 +	/* Create Producer VP 1. */
  11.467 +	bridgesForVP = PR_WL__malloc(1 * sizeof(VReoBridge *));
  11.468 +	bridgesForVP[0] = boundaryBridges[CKT_VP_PROD1];
  11.469 +
  11.470 +	prodParams = PR_WL__malloc(sizeof(MatrixMultWorkUnit));
  11.471 +	prodParams->inBridges = NULL;
  11.472 +	prodParams->outBridges = bridgesForVP;
  11.473 +   prodParams->initData  = initDatums[CKT_VP_PROD1];
  11.474 +
  11.475 +	VPs[CKT_VP_PROD1] = VReo__create_VP(&producer_Fn, prodParams, circuit, animVP);
  11.476 +
  11.477 +	boundaryBridges[CKT_VP_PROD1]->writer = VPs[CKT_VP_PROD1];
  11.478 +	boundaryBridges[CKT_VP_PROD1]->writerType = VP;
  11.479 +
  11.480 +	/* Create Producer VP 2. */
  11.481 +	bridgesForVP = PR_WL__malloc(1 * sizeof(VReoBridge *));
  11.482 +	bridgesForVP[0] = boundaryBridges[CKT_VP_PROD2];
  11.483 +
  11.484 +	prodParams = PR_WL__malloc(sizeof(MatrixMultWorkUnit));
  11.485 +	prodParams->inBridges = NULL;
  11.486 +	prodParams->outBridges = bridgesForVP;
  11.487 +   prodParams->initData  = initDatums[CKT_VP_PROD2];
  11.488 +
  11.489 +	VPs[CKT_VP_PROD2] = VReo__create_VP(&producer_Fn, prodParams, circuit, animVP);
  11.490 +
  11.491 +	boundaryBridges[CKT_VP_PROD2]->writer = VPs[CKT_VP_PROD2];
  11.492 +	boundaryBridges[CKT_VP_PROD2]->writerType = VP;
  11.493 +
  11.494 +//	/* Create Consumer VP 0. */
  11.495 +//	consParams = PR_WL__malloc(sizeof(TestAppConsumerParams));
  11.496 +//	
  11.497 +//	//bridgesForVP = PR_WL__malloc(1 * sizeof(VReoBridge *));
  11.498 +//	//bridgesForVP[0] = boundaryBridges[CKT_VP_CONS0];
  11.499 +//	
  11.500 +//	bridgesForVP = PR_WL__malloc(2 * sizeof(VReoBridge *));
  11.501 +//	bridgesForVP[0] = bridges[CKT_BRIDGE_Out_0];
  11.502 +//	bridgesForVP[0] = bridges[CKT_BRIDGE_Out_1];
  11.503 +//	
  11.504 +//	consParams->inBridges = bridgesForVP;
  11.505 +//	consParams->outBridges = NULL;
  11.506 +//	
  11.507 +//	VPs[CKT_VP_CONS0] = VReo__create_VP(&consumer_Fn, consParams, circuit, animVP);
  11.508 +//	boundaryBridges[CKT_VP_CONS0]->reader = VPs[CKT_VP_CONS0];
  11.509 +//	boundaryBridges[CKT_VP_CONS0]->readerType = VP;
  11.510 +
  11.511 +//	/* Create Consumer VP 1. */
  11.512 +//	consParams = PR_WL__malloc(sizeof(TestAppConsumerParams));
  11.513 +//	
  11.514 +//	//bridgesForVP = PR_WL__malloc(1 * sizeof(VReoBridge *));
  11.515 +//	//bridgesForVP[0] = boundaryBridges[CKT_VP_CONS1];
  11.516 +//	
  11.517 +//	bridgesForVP = PR_WL__malloc(2 * sizeof(VReoBridge *));
  11.518 +//	bridgesForVP[0] = bridges[CKT_BRIDGE_Out_0];
  11.519 +//	bridgesForVP[0] = bridges[CKT_BRIDGE_Out_1];
  11.520 +//	
  11.521 +//	consParams->inBridges = bridgesForVP;
  11.522 +//	consParams->outBridges = NULL;
  11.523 +//	
  11.524 +//	VPs[CKT_VP_CONS1] = VReo__create_VP(&consumer_Fn, consParams, circuit, animVP);
  11.525 +//	boundaryBridges[CKT_VP_CONS1]->reader = VPs[CKT_VP_CONS1];
  11.526 +//	boundaryBridges[CKT_VP_CONS1]->readerType = VP;
  11.527 +
  11.528 +	/* Create Consumer VP. */
  11.529 +	consParams = PR_WL__malloc(sizeof(VPParams));
  11.530 +
  11.531 +	bridgesForVP = PR_WL__malloc(2 * sizeof(VReoBridge *));
  11.532 +	bridgesForVP[0] = &(bridges[CKT_BRIDGE_Out_0]);
  11.533 +	bridgesForVP[1] = &(bridges[CKT_BRIDGE_Out_1]);
  11.534 +
  11.535 +	consParams->inBridges  = bridgesForVP;
  11.536 +	consParams->outBridges = NULL;
  11.537 +   consParams->initData   = initDatums[CKT_VP_CONS0];
  11.538 +
  11.539 +	VPs[CKT_VP_CONS0] = VReo__create_VP(&consumer_Fn, consParams, circuit, animVP);
  11.540 +
  11.541 +	bridges[CKT_BRIDGE_Out_0].reader = VPs[CKT_VP_CONS0];
  11.542 +	bridges[CKT_BRIDGE_Out_1].reader = VPs[CKT_VP_CONS0];
  11.543 +	bridges[CKT_BRIDGE_Out_0].readerType = VP;
  11.544 +	bridges[CKT_BRIDGE_Out_1].readerType = VP;
  11.545 +
  11.546 +	/* Start circuit. */
  11.547 +	VReo__start_circuit(circuit, animVP);
  11.548 +}
  11.549 +
  11.550 +//==============================================================================
  11.551 +
  11.552 +/* Checkers for Island 0. */
  11.553 +
  11.554 +bool32 Checker_0__I0( VReoIsland *island ) {
  11.555 +	VReoBridge *bridgeBroad_0Output1, *bridgeBroad_0Output2, *bridgeOut_1, *bridgeBroad_0;
  11.556 +	bool32 satisfied;
  11.557 +
  11.558 +	bridgeBroad_0Output1 = (island->bridges)[I0_BRIDGE_Broad_0Output1];
  11.559 +	bridgeBroad_0Output2 = (island->bridges)[I0_BRIDGE_Broad_0Output2];
  11.560 +	bridgeOut_1 = (island->bridges)[I0_BRIDGE_Out_1];
  11.561 +	bridgeBroad_0 = (island->bridges)[I0_BRIDGE_Broad_0];
  11.562 +	satisfied = READY_FOR_READ_BRIDGE_Broad_0 && READY_FOR_WRITE_BRIDGE_Broad_0Output1 && READY_FOR_WRITE_BRIDGE_Broad_0Output2 && READY_FOR_WRITE_BRIDGE_Out_1;
  11.563 +	return satisfied;
  11.564 +}
  11.565 +
  11.566 +/* Checkers for Island 1. */
  11.567 +
  11.568 +bool32 Checker_0__I1( VReoIsland *island ) {
  11.569 +	VReoBridge *bridgeX_0Input0, *bridgeIn_0, *bridgeIn_0Output1;
  11.570 +	bool32 satisfied;
  11.571 +
  11.572 +	bridgeX_0Input0 = (island->bridges)[I1_BRIDGE_X_0Input0];
  11.573 +	bridgeIn_0 = (island->bridges)[I1_BRIDGE_In_0];
  11.574 +	bridgeIn_0Output1 = (island->bridges)[I1_BRIDGE_In_0Output1];
  11.575 +	satisfied = READY_FOR_READ_BRIDGE_X_0Input0 && READY_FOR_READ_BRIDGE_In_0 && READY_FOR_WRITE_BRIDGE_In_0Output1;
  11.576 +	return satisfied;
  11.577 +}
  11.578 +
  11.579 +/* Checkers for Island 2. */
  11.580 +
  11.581 +bool32 Checker_0__I2( VReoIsland *island ) {
  11.582 +	VReoBridge *bridgeIn_1Output0, *bridgeIn_1, *bridgeX_1Input0;
  11.583 +	bool32 satisfied;
  11.584 +
  11.585 +	bridgeIn_1Output0 = (island->bridges)[I2_BRIDGE_In_1Output0];
  11.586 +	bridgeIn_1 = (island->bridges)[I2_BRIDGE_In_1];
  11.587 +	bridgeX_1Input0 = (island->bridges)[I2_BRIDGE_X_1Input0];
  11.588 +	satisfied = READY_FOR_READ_BRIDGE_In_1 && READY_FOR_READ_BRIDGE_X_1Input0 && READY_FOR_WRITE_BRIDGE_In_1Output0;
  11.589 +	return satisfied;
  11.590 +}
  11.591 +
  11.592 +//==============================================================================
  11.593 +
  11.594 +/* Declaration of auxiliary doers. */
  11.595 +
  11.596 +void Auxdoer_for_bridge_Broad_0( VReoBridge *bridge );
  11.597 +void Auxdoer_for_bridge_In_0( VReoBridge *bridge );
  11.598 +void Auxdoer_for_bridge_In_1( VReoBridge *bridge );
  11.599 +void Auxdoer_for_bridge_Out_0( VReoBridge *bridge );
  11.600 +void Auxdoer_for_bridge_Out_1( VReoBridge *bridge );
  11.601 +void Auxdoer_for_bridge_In_0Output1( VReoBridge *bridge );
  11.602 +void Auxdoer_for_bridge_Out_0Input1( VReoBridge *bridge );
  11.603 +
  11.604 +void Auxdoer_for_bridge_Broad_0Output1( VReoBridge *bridge );
  11.605 +void Auxdoer_for_bridge_X_0Input0( VReoBridge *bridge );
  11.606 +
  11.607 +void Auxdoer_for_bridge_In_1Output0( VReoBridge *bridge );
  11.608 +void Auxdoer_for_bridge_Out_0Input0( VReoBridge *bridge );
  11.609 +
  11.610 +void Auxdoer_for_bridge_Broad_0Output2( VReoBridge *bridge );
  11.611 +void Auxdoer_for_bridge_X_1Input0( VReoBridge *bridge );
  11.612 +
  11.613 +/* Doers for Island 0. */
  11.614 +
  11.615 +void Doer_0__I0( VReoIsland *island ) {
  11.616 +	VReoBridge *bridgeBroad_0Output1, *bridgeBroad_0Output2, *bridgeOut_1, *bridgeBroad_0;
  11.617 +
  11.618 +	/* Initialize bridges. */
  11.619 +	bridgeBroad_0Output1 = (island->bridges)[I0_BRIDGE_Broad_0Output1];
  11.620 +	bridgeBroad_0Output2 = (island->bridges)[I0_BRIDGE_Broad_0Output2];
  11.621 +	bridgeOut_1 = (island->bridges)[I0_BRIDGE_Out_1];
  11.622 +	bridgeBroad_0 = (island->bridges)[I0_BRIDGE_Broad_0];
  11.623 +
  11.624 +	/* Distribute data. */
  11.625 +	bridgeBroad_0Output1->buffer = bridgeBroad_0->buffer;
  11.626 +	bridgeBroad_0Output2->buffer = bridgeBroad_0->buffer;
  11.627 +	bridgeOut_1->buffer = bridgeBroad_0->buffer;
  11.628 +
  11.629 +	/* Update bridge status. */
  11.630 +	bridgeBroad_0->bridgeIsFull = FALSE;
  11.631 +	bridgeBroad_0Output1->bridgeIsFull = TRUE;
  11.632 +	bridgeBroad_0Output2->bridgeIsFull = TRUE;
  11.633 +	bridgeOut_1->bridgeIsFull = TRUE;
  11.634 +
  11.635 +	/* Prepare reader VPs. */
  11.636 +	PR_PI__make_slave_ready_for_lang(bridgeOut_1->waitingReaderVP, VReo_MAGIC_NUMBER);
  11.637 +	bridgeOut_1->waitingReaderVP->dataRetFromReq = bridgeOut_1->buffer;
  11.638 +	bridgeOut_1->waitingReaderVP = NULL;
  11.639 +	bridgeOut_1->bridgeIsFull = FALSE;
  11.640 +
  11.641 +	/* Prepare writer VPs. */
  11.642 +	PR_PI__make_slave_ready_for_lang(bridgeBroad_0->waitingWriterVP, VReo_MAGIC_NUMBER);
  11.643 +	bridgeBroad_0->waitingWriterVP = NULL;
  11.644 +
  11.645 +	/* Call auxiliary doers to complete this transition. */
  11.646 +	Auxdoer_for_bridge_Broad_0Output1(bridgeBroad_0Output1);
  11.647 +	Auxdoer_for_bridge_Broad_0Output2(bridgeBroad_0Output2);
  11.648 +	Auxdoer_for_bridge_Out_1(bridgeOut_1);
  11.649 +	Auxdoer_for_bridge_Broad_0(bridgeBroad_0);
  11.650 +}
  11.651 +
  11.652 +/* Doers for Island 1. */
  11.653 +
  11.654 +void Doer_0__I1( VReoIsland *island ) {
  11.655 +	VReoBridge *bridgeX_0Input0, *bridgeIn_0, *bridgeIn_0Output1;
  11.656 +
  11.657 +	/* Initialize bridges. */
  11.658 +	bridgeX_0Input0 = (island->bridges)[I1_BRIDGE_X_0Input0];
  11.659 +	bridgeIn_0 = (island->bridges)[I1_BRIDGE_In_0];
  11.660 +	bridgeIn_0Output1 = (island->bridges)[I1_BRIDGE_In_0Output1];
  11.661 +
  11.662 +	/* Distribute data. */
  11.663 +	bridgeIn_0Output1->buffer = bridgeIn_0->buffer;
  11.664 +
  11.665 +	/* Update bridge status. */
  11.666 +	bridgeX_0Input0->bridgeIsFull = FALSE;
  11.667 +	bridgeIn_0->bridgeIsFull = FALSE;
  11.668 +	bridgeIn_0Output1->bridgeIsFull = TRUE;
  11.669 +
  11.670 +	/* Prepare reader VPs. */
  11.671 +
  11.672 +	/* Prepare writer VPs. */
  11.673 +	PR_PI__make_slave_ready_for_lang(bridgeIn_0->waitingWriterVP, VReo_MAGIC_NUMBER);
  11.674 +	bridgeIn_0->waitingWriterVP = NULL;
  11.675 +
  11.676 +	/* Call auxiliary doers to complete this transition. */
  11.677 +	Auxdoer_for_bridge_X_0Input0(bridgeX_0Input0);
  11.678 +	Auxdoer_for_bridge_In_0(bridgeIn_0);
  11.679 +	Auxdoer_for_bridge_In_0Output1(bridgeIn_0Output1);
  11.680 +}
  11.681 +
  11.682 +/* Doers for Island 2. */
  11.683 +
  11.684 +void Doer_0__I2( VReoIsland *island ) {
  11.685 +	VReoBridge *bridgeIn_1Output0, *bridgeIn_1, *bridgeX_1Input0;
  11.686 +
  11.687 +	/* Initialize bridges. */
  11.688 +	bridgeIn_1Output0 = (island->bridges)[I2_BRIDGE_In_1Output0];
  11.689 +	bridgeIn_1 = (island->bridges)[I2_BRIDGE_In_1];
  11.690 +	bridgeX_1Input0 = (island->bridges)[I2_BRIDGE_X_1Input0];
  11.691 +
  11.692 +	/* Distribute data. */
  11.693 +	bridgeIn_1Output0->buffer = bridgeIn_1->buffer;
  11.694 +
  11.695 +	/* Update bridge status. */
  11.696 +	bridgeIn_1->bridgeIsFull = FALSE;
  11.697 +	bridgeX_1Input0->bridgeIsFull = FALSE;
  11.698 +	bridgeIn_1Output0->bridgeIsFull = TRUE;
  11.699 +
  11.700 +	/* Prepare reader VPs. */
  11.701 +
  11.702 +	/* Prepare writer VPs. */
  11.703 +	PR_PI__make_slave_ready_for_lang(bridgeIn_1->waitingWriterVP, VReo_MAGIC_NUMBER);
  11.704 +	bridgeIn_1->waitingWriterVP = NULL;
  11.705 +
  11.706 +	/* Call auxiliary doers to complete this transition. */
  11.707 +	Auxdoer_for_bridge_In_1Output0(bridgeIn_1Output0);
  11.708 +	Auxdoer_for_bridge_In_1(bridgeIn_1);
  11.709 +	Auxdoer_for_bridge_X_1Input0(bridgeX_1Input0);
  11.710 +}
  11.711 +
  11.712 +//==============================================================================
  11.713 +
  11.714 +/* Auxiliary doers for input bridges. */
  11.715 +
  11.716 +void Auxdoer_for_bridge_Broad_0( VReoBridge *bridge ) {
  11.717 +	;
  11.718 +}
  11.719 +
  11.720 +void Auxdoer_for_bridge_In_0( VReoBridge *bridge ) {
  11.721 +	;
  11.722 +}
  11.723 +
  11.724 +void Auxdoer_for_bridge_In_1( VReoBridge *bridge ) {
  11.725 +	;
  11.726 +}
  11.727 +
  11.728 +/* Auxiliary doers for output bridges. */
  11.729 +
  11.730 +void Auxdoer_for_bridge_Out_0( VReoBridge *bridge ) {
  11.731 +	;
  11.732 +}
  11.733 +
  11.734 +void Auxdoer_for_bridge_Out_1( VReoBridge *bridge ) {
  11.735 +	;
  11.736 +}
  11.737 +
  11.738 +/* Auxiliary doers for FIFO bridges. */
  11.739 +
  11.740 +void Auxdoer_for_bridge_In_0Output1( VReoBridge *bridge ) {
  11.741 +	int32 numCheckerFns;
  11.742 +	VReoIsland *islandOnOtherSide;
  11.743 +	VReoCheckerFn *checkerFns;
  11.744 +	VReoDoerFn *doerFns;
  11.745 +
  11.746 +	VReoO1island *o1islandOnOtherSide;
  11.747 +	VReoPartnerQStruct *partnerQstruct;
  11.748 +
  11.749 +	if (bridge->readerType == Island) {
  11.750 +		islandOnOtherSide = (VReoIsland*) bridge->reader;
  11.751 +		numCheckerFns = bridge->numReaderCheckerFns;
  11.752 +		checkerFns = bridge->readerCheckerFns;
  11.753 +		doerFns = bridge->readerDoerFns;
  11.754 +
  11.755 +		VReo__check_an_island( islandOnOtherSide, numCheckerFns, checkerFns, doerFns );
  11.756 +    }
  11.757 +
  11.758 +    else if (bridge->readerType == O1island) { 
  11.759 +    	o1islandOnOtherSide = (VReoO1island *)bridge->reader;
  11.760 +    	partnerQstruct =  bridge->readerPartnerQStruct;
  11.761 +
  11.762 +    	VReo__check_an_o1island_that_reads_bridge( o1islandOnOtherSide, bridge, partnerQstruct );
  11.763 +    }
  11.764 +}
  11.765 +void Auxdoer_for_bridge_Out_0Input1( VReoBridge *bridge ) {
  11.766 +	int32 numCheckerFns;
  11.767 +	VReoIsland *islandOnOtherSide;
  11.768 +	VReoCheckerFn *checkerFns;
  11.769 +	VReoDoerFn *doerFns;
  11.770 +
  11.771 +	VReoO1island *o1islandOnOtherSide;
  11.772 +	VReoPartnerQStruct *partnerQstruct;
  11.773 +
  11.774 +	if (bridge->writerType == Island) {
  11.775 +		islandOnOtherSide = (VReoIsland*) bridge->writer;
  11.776 +		numCheckerFns = bridge->numWriterCheckerFns;
  11.777 +		checkerFns = bridge->writerCheckerFns;
  11.778 +		doerFns = bridge->writerDoerFns;
  11.779 +
  11.780 +		VReo__check_an_island( islandOnOtherSide, numCheckerFns, checkerFns, doerFns );
  11.781 +    }
  11.782 +
  11.783 +	else if (bridge->writerType == O1island) { 
  11.784 +		o1islandOnOtherSide = (VReoO1island *)bridge->writer;
  11.785 +		partnerQstruct = bridge->writerPartnerQStruct;
  11.786 +
  11.787 +		VReo__check_an_o1island_that_writes_bridge( o1islandOnOtherSide, bridge, partnerQstruct );
  11.788 +    }
  11.789 +}
  11.790 +
  11.791 +void Auxdoer_for_bridge_Broad_0Output1( VReoBridge *bridge ) {
  11.792 +	int32 numCheckerFns;
  11.793 +	VReoIsland *islandOnOtherSide;
  11.794 +	VReoCheckerFn *checkerFns;
  11.795 +	VReoDoerFn *doerFns;
  11.796 +
  11.797 +	VReoO1island *o1islandOnOtherSide;
  11.798 +	VReoPartnerQStruct *partnerQstruct;
  11.799 +
  11.800 +	if (bridge->readerType == Island) {
  11.801 +		islandOnOtherSide = (VReoIsland*) bridge->reader;
  11.802 +		numCheckerFns = bridge->numReaderCheckerFns;
  11.803 +		checkerFns = bridge->readerCheckerFns;
  11.804 +		doerFns = bridge->readerDoerFns;
  11.805 +
  11.806 +		VReo__check_an_island( islandOnOtherSide, numCheckerFns, checkerFns, doerFns );
  11.807 +    }
  11.808 +
  11.809 +    else if (bridge->readerType == O1island) { 
  11.810 +    	o1islandOnOtherSide = (VReoO1island *)bridge->reader;
  11.811 +    	partnerQstruct =  bridge->readerPartnerQStruct;
  11.812 +
  11.813 +    	VReo__check_an_o1island_that_reads_bridge( o1islandOnOtherSide, bridge, partnerQstruct );
  11.814 +    }
  11.815 +}
  11.816 +void Auxdoer_for_bridge_X_0Input0( VReoBridge *bridge ) {
  11.817 +	int32 numCheckerFns;
  11.818 +	VReoIsland *islandOnOtherSide;
  11.819 +	VReoCheckerFn *checkerFns;
  11.820 +	VReoDoerFn *doerFns;
  11.821 +
  11.822 +	VReoO1island *o1islandOnOtherSide;
  11.823 +	VReoPartnerQStruct *partnerQstruct;
  11.824 +
  11.825 +	if (bridge->writerType == Island) {
  11.826 +		islandOnOtherSide = (VReoIsland*) bridge->writer;
  11.827 +		numCheckerFns = bridge->numWriterCheckerFns;
  11.828 +		checkerFns = bridge->writerCheckerFns;
  11.829 +		doerFns = bridge->writerDoerFns;
  11.830 +
  11.831 +		VReo__check_an_island( islandOnOtherSide, numCheckerFns, checkerFns, doerFns );
  11.832 +    }
  11.833 +
  11.834 +	else if (bridge->writerType == O1island) { 
  11.835 +		o1islandOnOtherSide = (VReoO1island *)bridge->writer;
  11.836 +		partnerQstruct = bridge->writerPartnerQStruct;
  11.837 +
  11.838 +		VReo__check_an_o1island_that_writes_bridge( o1islandOnOtherSide, bridge, partnerQstruct );
  11.839 +    }
  11.840 +}
  11.841 +
  11.842 +void Auxdoer_for_bridge_In_1Output0( VReoBridge *bridge ) {
  11.843 +	int32 numCheckerFns;
  11.844 +	VReoIsland *islandOnOtherSide;
  11.845 +	VReoCheckerFn *checkerFns;
  11.846 +	VReoDoerFn *doerFns;
  11.847 +
  11.848 +	VReoO1island *o1islandOnOtherSide;
  11.849 +	VReoPartnerQStruct *partnerQstruct;
  11.850 +
  11.851 +	if (bridge->readerType == Island) {
  11.852 +		islandOnOtherSide = (VReoIsland*) bridge->reader;
  11.853 +		numCheckerFns = bridge->numReaderCheckerFns;
  11.854 +		checkerFns = bridge->readerCheckerFns;
  11.855 +		doerFns = bridge->readerDoerFns;
  11.856 +
  11.857 +		VReo__check_an_island( islandOnOtherSide, numCheckerFns, checkerFns, doerFns );
  11.858 +    }
  11.859 +
  11.860 +    else if (bridge->readerType == O1island) { 
  11.861 +    	o1islandOnOtherSide = (VReoO1island *)bridge->reader;
  11.862 +    	partnerQstruct =  bridge->readerPartnerQStruct;
  11.863 +
  11.864 +    	VReo__check_an_o1island_that_reads_bridge( o1islandOnOtherSide, bridge, partnerQstruct );
  11.865 +    }
  11.866 +}
  11.867 +void Auxdoer_for_bridge_Out_0Input0( VReoBridge *bridge ) {
  11.868 +	int32 numCheckerFns;
  11.869 +	VReoIsland *islandOnOtherSide;
  11.870 +	VReoCheckerFn *checkerFns;
  11.871 +	VReoDoerFn *doerFns;
  11.872 +
  11.873 +	VReoO1island *o1islandOnOtherSide;
  11.874 +	VReoPartnerQStruct *partnerQstruct;
  11.875 +
  11.876 +	if (bridge->writerType == Island) {
  11.877 +		islandOnOtherSide = (VReoIsland*) bridge->writer;
  11.878 +		numCheckerFns = bridge->numWriterCheckerFns;
  11.879 +		checkerFns = bridge->writerCheckerFns;
  11.880 +		doerFns = bridge->writerDoerFns;
  11.881 +
  11.882 +		VReo__check_an_island( islandOnOtherSide, numCheckerFns, checkerFns, doerFns );
  11.883 +    }
  11.884 +
  11.885 +	else if (bridge->writerType == O1island) { 
  11.886 +		o1islandOnOtherSide = (VReoO1island *)bridge->writer;
  11.887 +		partnerQstruct = bridge->writerPartnerQStruct;
  11.888 +
  11.889 +		VReo__check_an_o1island_that_writes_bridge( o1islandOnOtherSide, bridge, partnerQstruct );
  11.890 +    }
  11.891 +}
  11.892 +
  11.893 +void Auxdoer_for_bridge_Broad_0Output2( VReoBridge *bridge ) {
  11.894 +	int32 numCheckerFns;
  11.895 +	VReoIsland *islandOnOtherSide;
  11.896 +	VReoCheckerFn *checkerFns;
  11.897 +	VReoDoerFn *doerFns;
  11.898 +
  11.899 +	VReoO1island *o1islandOnOtherSide;
  11.900 +	VReoPartnerQStruct *partnerQstruct;
  11.901 +
  11.902 +	if (bridge->readerType == Island) {
  11.903 +		islandOnOtherSide = (VReoIsland*) bridge->reader;
  11.904 +		numCheckerFns = bridge->numReaderCheckerFns;
  11.905 +		checkerFns = bridge->readerCheckerFns;
  11.906 +		doerFns = bridge->readerDoerFns;
  11.907 +
  11.908 +		VReo__check_an_island( islandOnOtherSide, numCheckerFns, checkerFns, doerFns );
  11.909 +    }
  11.910 +
  11.911 +    else if (bridge->readerType == O1island) { 
  11.912 +    	o1islandOnOtherSide = (VReoO1island *)bridge->reader;
  11.913 +    	partnerQstruct =  bridge->readerPartnerQStruct;
  11.914 +
  11.915 +    	VReo__check_an_o1island_that_reads_bridge( o1islandOnOtherSide, bridge, partnerQstruct );
  11.916 +    }
  11.917 +}
  11.918 +void Auxdoer_for_bridge_X_1Input0( VReoBridge *bridge ) {
  11.919 +	int32 numCheckerFns;
  11.920 +	VReoIsland *islandOnOtherSide;
  11.921 +	VReoCheckerFn *checkerFns;
  11.922 +	VReoDoerFn *doerFns;
  11.923 +
  11.924 +	VReoO1island *o1islandOnOtherSide;
  11.925 +	VReoPartnerQStruct *partnerQstruct;
  11.926 +
  11.927 +	if (bridge->writerType == Island) {
  11.928 +		islandOnOtherSide = (VReoIsland*) bridge->writer;
  11.929 +		numCheckerFns = bridge->numWriterCheckerFns;
  11.930 +		checkerFns = bridge->writerCheckerFns;
  11.931 +		doerFns = bridge->writerDoerFns;
  11.932 +
  11.933 +		VReo__check_an_island( islandOnOtherSide, numCheckerFns, checkerFns, doerFns );
  11.934 +    }
  11.935 +
  11.936 +	else if (bridge->writerType == O1island) { 
  11.937 +		o1islandOnOtherSide = (VReoO1island *)bridge->writer;
  11.938 +		partnerQstruct = bridge->writerPartnerQStruct;
  11.939 +
  11.940 +		VReo__check_an_o1island_that_writes_bridge( o1islandOnOtherSide, bridge, partnerQstruct );
  11.941 +    }
  11.942 +}
    12.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    12.2 +++ b/Reo__Matrix_Mult/k_4/Circuit.c	Sat Jul 12 20:21:47 2014 +0200
    12.3 @@ -0,0 +1,1528 @@
    12.4 +#include <math.h>
    12.5 +#include <string.h>
    12.6 +#include "VReo__Test_App.h"
    12.7 +#include "Circuit.h"
    12.8 +
    12.9 +VReoCircuit *create_circuit(SlaveVP *animVP) {
   12.10 +
   12.11 +	/* Declare variables. */
   12.12 +	VReoCircuit *circuit;
   12.13 +	VReoBridge *bridge, *bridges, **boundaryBridges;
   12.14 +	VReoIsland *islands, *island;
   12.15 +	VReoO1island *o1islands, *o1island;
   12.16 +	VReoCheckerFn *bridgeReaderCheckerFns, *bridgeWriterCheckerFns;
   12.17 +	VReoDoerFn *bridgeReaderDoerFns, *bridgeWriterDoerFns;
   12.18 +	PrivQueueStruc *offerQ0, *offerQ1;
   12.19 +	VReoPartnerQStruct *partnerQStruct0, *partnerQStruct1;
   12.20 +
   12.21 +	/* Allocate memory for bridges, islands, and the circuit. */
   12.22 +	bridges = PR_WL__malloc(NUM_BRIDGES * sizeof(VReoBridge));
   12.23 +	islands = PR_WL__malloc((NUM_ISLANDS == 0 ? 1 : NUM_ISLANDS) * sizeof(VReoIsland));
   12.24 +	o1islands = PR_WL__malloc((NUM_O1ISLANDS == 0 ? 1 : NUM_O1ISLANDS) * sizeof(VReoO1island));
   12.25 +	circuit = (VReoCircuit *) PR_WL__malloc(sizeof(VReoCircuit));
   12.26 +
   12.27 +	//
   12.28 +	// INITIALIZE BRIDGES
   12.29 +	//
   12.30 +
   12.31 +	/* Initialize bridge Broad_0. */
   12.32 +	bridge = &(bridges[CKT_BRIDGE_Broad_0]);
   12.33 +	bridge->buffer = NULL;
   12.34 +	bridge->bridgeIsFull = FALSE;
   12.35 +	bridge->waitingReaderVP = NULL;
   12.36 +	bridge->waitingWriterVP = NULL;
   12.37 +	bridge->readerPartnerQStruct = NULL;
   12.38 +	bridge->writerPartnerQStruct = NULL;
   12.39 +
   12.40 +	/* Initialize bridge In_0. */
   12.41 +	bridge = &(bridges[CKT_BRIDGE_In_0]);
   12.42 +	bridge->buffer = NULL;
   12.43 +	bridge->bridgeIsFull = FALSE;
   12.44 +	bridge->waitingReaderVP = NULL;
   12.45 +	bridge->waitingWriterVP = NULL;
   12.46 +	bridge->readerPartnerQStruct = NULL;
   12.47 +	bridge->writerPartnerQStruct = NULL;
   12.48 +
   12.49 +	/* Initialize bridge In_1. */
   12.50 +	bridge = &(bridges[CKT_BRIDGE_In_1]);
   12.51 +	bridge->buffer = NULL;
   12.52 +	bridge->bridgeIsFull = FALSE;
   12.53 +	bridge->waitingReaderVP = NULL;
   12.54 +	bridge->waitingWriterVP = NULL;
   12.55 +	bridge->readerPartnerQStruct = NULL;
   12.56 +	bridge->writerPartnerQStruct = NULL;
   12.57 +
   12.58 +	/* Initialize bridge In_2. */
   12.59 +	bridge = &(bridges[CKT_BRIDGE_In_2]);
   12.60 +	bridge->buffer = NULL;
   12.61 +	bridge->bridgeIsFull = FALSE;
   12.62 +	bridge->waitingReaderVP = NULL;
   12.63 +	bridge->waitingWriterVP = NULL;
   12.64 +	bridge->readerPartnerQStruct = NULL;
   12.65 +	bridge->writerPartnerQStruct = NULL;
   12.66 +
   12.67 +	/* Initialize bridge In_3. */
   12.68 +	bridge = &(bridges[CKT_BRIDGE_In_3]);
   12.69 +	bridge->buffer = NULL;
   12.70 +	bridge->bridgeIsFull = FALSE;
   12.71 +	bridge->waitingReaderVP = NULL;
   12.72 +	bridge->waitingWriterVP = NULL;
   12.73 +	bridge->readerPartnerQStruct = NULL;
   12.74 +	bridge->writerPartnerQStruct = NULL;
   12.75 +
   12.76 +	/* Initialize bridge Out_0. */
   12.77 +	bridge = &(bridges[CKT_BRIDGE_Out_0]);
   12.78 +	bridge->buffer = NULL;
   12.79 +	bridge->bridgeIsFull = FALSE;
   12.80 +	bridge->waitingReaderVP = NULL;
   12.81 +	bridge->waitingWriterVP = NULL;
   12.82 +	bridge->readerPartnerQStruct = NULL;
   12.83 +	bridge->writerPartnerQStruct = NULL;
   12.84 +
   12.85 +	/* Initialize bridge Out_1. */
   12.86 +	bridge = &(bridges[CKT_BRIDGE_Out_1]);
   12.87 +	bridge->buffer = NULL;
   12.88 +	bridge->bridgeIsFull = FALSE;
   12.89 +	bridge->waitingReaderVP = NULL;
   12.90 +	bridge->waitingWriterVP = NULL;
   12.91 +	bridge->readerPartnerQStruct = NULL;
   12.92 +	bridge->writerPartnerQStruct = NULL;
   12.93 +
   12.94 +	/* Initialize bridge FIFO0. */
   12.95 +	bridge = &(bridges[CKT_BRIDGE_FIFO0]);
   12.96 +	bridge->buffer = NULL;
   12.97 +	bridge->bridgeIsFull = FALSE;bridge->waitingReaderVP = NULL;
   12.98 +	bridge->waitingWriterVP = NULL;
   12.99 +	bridge->readerPartnerQStruct = NULL;
  12.100 +	bridge->writerPartnerQStruct = NULL;
  12.101 +
  12.102 +	/* Initialize bridge FIFO1. */
  12.103 +	bridge = &(bridges[CKT_BRIDGE_FIFO1]);
  12.104 +	bridge->buffer = malloc(1);
  12.105 +	bridge->bridgeIsFull = TRUE;
  12.106 +	bridge->waitingReaderVP = NULL;
  12.107 +	bridge->waitingWriterVP = NULL;
  12.108 +	bridge->readerPartnerQStruct = NULL;
  12.109 +	bridge->writerPartnerQStruct = NULL;
  12.110 +
  12.111 +	/* Initialize bridge FIFO2. */
  12.112 +	bridge = &(bridges[CKT_BRIDGE_FIFO2]);
  12.113 +	bridge->buffer = NULL;
  12.114 +	bridge->bridgeIsFull = FALSE;bridge->waitingReaderVP = NULL;
  12.115 +	bridge->waitingWriterVP = NULL;
  12.116 +	bridge->readerPartnerQStruct = NULL;
  12.117 +	bridge->writerPartnerQStruct = NULL;
  12.118 +
  12.119 +	/* Initialize bridge FIFO3. */
  12.120 +	bridge = &(bridges[CKT_BRIDGE_FIFO3]);
  12.121 +	bridge->buffer = malloc(1);
  12.122 +	bridge->bridgeIsFull = TRUE;
  12.123 +	bridge->waitingReaderVP = NULL;
  12.124 +	bridge->waitingWriterVP = NULL;
  12.125 +	bridge->readerPartnerQStruct = NULL;
  12.126 +	bridge->writerPartnerQStruct = NULL;
  12.127 +
  12.128 +	/* Initialize bridge FIFO4. */
  12.129 +	bridge = &(bridges[CKT_BRIDGE_FIFO4]);
  12.130 +	bridge->buffer = NULL;
  12.131 +	bridge->bridgeIsFull = FALSE;bridge->waitingReaderVP = NULL;
  12.132 +	bridge->waitingWriterVP = NULL;
  12.133 +	bridge->readerPartnerQStruct = NULL;
  12.134 +	bridge->writerPartnerQStruct = NULL;
  12.135 +
  12.136 +	/* Initialize bridge FIFO5. */
  12.137 +	bridge = &(bridges[CKT_BRIDGE_FIFO5]);
  12.138 +	bridge->buffer = malloc(1);
  12.139 +	bridge->bridgeIsFull = TRUE;
  12.140 +	bridge->waitingReaderVP = NULL;
  12.141 +	bridge->waitingWriterVP = NULL;
  12.142 +	bridge->readerPartnerQStruct = NULL;
  12.143 +	bridge->writerPartnerQStruct = NULL;
  12.144 +
  12.145 +	/* Initialize bridge FIFO6. */
  12.146 +	bridge = &(bridges[CKT_BRIDGE_FIFO6]);
  12.147 +	bridge->buffer = NULL;
  12.148 +	bridge->bridgeIsFull = FALSE;bridge->waitingReaderVP = NULL;
  12.149 +	bridge->waitingWriterVP = NULL;
  12.150 +	bridge->readerPartnerQStruct = NULL;
  12.151 +	bridge->writerPartnerQStruct = NULL;
  12.152 +
  12.153 +	/* Initialize bridge FIFO7. */
  12.154 +	bridge = &(bridges[CKT_BRIDGE_FIFO7]);
  12.155 +	bridge->buffer = malloc(1);
  12.156 +	bridge->bridgeIsFull = TRUE;
  12.157 +	bridge->waitingReaderVP = NULL;
  12.158 +	bridge->waitingWriterVP = NULL;
  12.159 +	bridge->readerPartnerQStruct = NULL;
  12.160 +	bridge->writerPartnerQStruct = NULL;
  12.161 +
  12.162 +	/* Initialize boundary bridges. */
  12.163 +	boundaryBridges = PR_WL__malloc(NUM_BOUNDARY_BRIDGES * sizeof(VReoBridge*));
  12.164 +	boundaryBridges[0] = &(bridges[CKT_BRIDGE_Broad_0]);
  12.165 +	boundaryBridges[1] = &(bridges[CKT_BRIDGE_In_0]);
  12.166 +	boundaryBridges[2] = &(bridges[CKT_BRIDGE_In_1]);
  12.167 +	boundaryBridges[3] = &(bridges[CKT_BRIDGE_In_2]);
  12.168 +	boundaryBridges[4] = &(bridges[CKT_BRIDGE_In_3]);
  12.169 +	boundaryBridges[5] = &(bridges[CKT_BRIDGE_Out_0]);
  12.170 +	boundaryBridges[6] = &(bridges[CKT_BRIDGE_Out_1]);
  12.171 +
  12.172 +	//
  12.173 +	// INITIALIZE ISLANDS
  12.174 +	//
  12.175 +
  12.176 +	/* Initialize Island 0. */
  12.177 +	island = &(islands[CKT_I0]);
  12.178 +
  12.179 +	island->numCheckerFns = 1;
  12.180 +	island->numBridges = 6;
  12.181 +
  12.182 +	island->checkerFns = PR_WL__malloc(island->numCheckerFns * sizeof(VReoCheckerFn));
  12.183 +	island->checkerFns[0] = &Checker_0__I0;
  12.184 +
  12.185 +	island->doerFns = PR_WL__malloc(island->numCheckerFns * sizeof(VReoDoerFn));
  12.186 +	island->doerFns[0] = &Doer_0__I0;
  12.187 +
  12.188 +	island->bridges = PR_WL__malloc(island->numBridges * sizeof(VReoBridge *));
  12.189 +	island->bridges[I0_BRIDGE_Broad_0] = &(bridges[CKT_BRIDGE_Broad_0]);
  12.190 +	island->bridges[I0_BRIDGE_Broad_0Output1] = &(bridges[CKT_BRIDGE_Broad_0Output1]);
  12.191 +	island->bridges[I0_BRIDGE_Broad_0Output2] = &(bridges[CKT_BRIDGE_Broad_0Output2]);
  12.192 +	island->bridges[I0_BRIDGE_Broad_0Output3] = &(bridges[CKT_BRIDGE_Broad_0Output3]);
  12.193 +	island->bridges[I0_BRIDGE_Out_1] = &(bridges[CKT_BRIDGE_Out_1]);
  12.194 +	island->bridges[I0_BRIDGE_Broad_0Output4] = &(bridges[CKT_BRIDGE_Broad_0Output4]);
  12.195 +
  12.196 +	/* 
  12.197 +	 * Initialize Island 0: register Island 0 as a reader on 
  12.198 +	 * bridge Broad_0. 
  12.199 +	 */
  12.200 +	bridgeReaderCheckerFns = PR_WL__malloc( NUM_I0_CHECKERS_INVOLVE_BRIDGE_Broad_0 * sizeof(VReoCheckerFn *) );
  12.201 +	bridgeReaderDoerFns = PR_WL__malloc( NUM_I0_CHECKERS_INVOLVE_BRIDGE_Broad_0 * sizeof(VReoDoerFn *) );
  12.202 +	bridgeReaderCheckerFns[0] = (VReoCheckerFn) &CHECKER2_I0;
  12.203 +	bridgeReaderDoerFns[0] = (VReoDoerFn) &DOER2_I0;
  12.204 +
  12.205 +	bridge = &(bridges[CKT_BRIDGE_Broad_0]);
  12.206 +	bridge->reader = &(islands[CKT_I0]);
  12.207 +	bridge->readerType = Island;
  12.208 +	bridge->numReaderCheckerFns = NUM_I0_CHECKERS_INVOLVE_BRIDGE_Broad_0;
  12.209 +	bridge->readerCheckerFns = (VReoCheckerFn *) bridgeReaderCheckerFns;
  12.210 +	bridge->readerDoerFns = (VReoDoerFn *) bridgeReaderDoerFns;
  12.211 +
  12.212 +	/* 
  12.213 +	 * Initialize Island 0: register Island 0 as a writer on 
  12.214 +	 * bridge Broad_0Output1.
  12.215 +	 */
  12.216 +	bridgeWriterCheckerFns = PR_WL__malloc( NUM_I0_CHECKERS_INVOLVE_BRIDGE_Broad_0Output1 * sizeof(VReoCheckerFn *) );
  12.217 +	bridgeWriterDoerFns = PR_WL__malloc( NUM_I0_CHECKERS_INVOLVE_BRIDGE_Broad_0Output1 * sizeof(VReoDoerFn *) );
  12.218 +	bridgeWriterCheckerFns[0] = (VReoCheckerFn) &CHECKER2_I0;
  12.219 +	bridgeWriterDoerFns[0] = (VReoDoerFn) &DOER2_I0;
  12.220 +
  12.221 +	bridge = &(bridges[CKT_BRIDGE_Broad_0Output1]);
  12.222 +	bridge->writer = &(islands[CKT_I0]);
  12.223 +	bridge->writerType = Island;
  12.224 +	bridge->numWriterCheckerFns = NUM_I0_CHECKERS_INVOLVE_BRIDGE_Broad_0Output1;
  12.225 +	bridge->writerCheckerFns = (VReoCheckerFn *) bridgeWriterCheckerFns;
  12.226 +	bridge->writerDoerFns = (VReoDoerFn *) bridgeWriterDoerFns;
  12.227 +
  12.228 +	/* 
  12.229 +	 * Initialize Island 0: register Island 0 as a writer on 
  12.230 +	 * bridge Broad_0Output2.
  12.231 +	 */
  12.232 +	bridgeWriterCheckerFns = PR_WL__malloc( NUM_I0_CHECKERS_INVOLVE_BRIDGE_Broad_0Output2 * sizeof(VReoCheckerFn *) );
  12.233 +	bridgeWriterDoerFns = PR_WL__malloc( NUM_I0_CHECKERS_INVOLVE_BRIDGE_Broad_0Output2 * sizeof(VReoDoerFn *) );
  12.234 +	bridgeWriterCheckerFns[0] = (VReoCheckerFn) &CHECKER2_I0;
  12.235 +	bridgeWriterDoerFns[0] = (VReoDoerFn) &DOER2_I0;
  12.236 +
  12.237 +	bridge = &(bridges[CKT_BRIDGE_Broad_0Output2]);
  12.238 +	bridge->writer = &(islands[CKT_I0]);
  12.239 +	bridge->writerType = Island;
  12.240 +	bridge->numWriterCheckerFns = NUM_I0_CHECKERS_INVOLVE_BRIDGE_Broad_0Output2;
  12.241 +	bridge->writerCheckerFns = (VReoCheckerFn *) bridgeWriterCheckerFns;
  12.242 +	bridge->writerDoerFns = (VReoDoerFn *) bridgeWriterDoerFns;
  12.243 +
  12.244 +	/* 
  12.245 +	 * Initialize Island 0: register Island 0 as a writer on 
  12.246 +	 * bridge Broad_0Output3.
  12.247 +	 */
  12.248 +	bridgeWriterCheckerFns = PR_WL__malloc( NUM_I0_CHECKERS_INVOLVE_BRIDGE_Broad_0Output3 * sizeof(VReoCheckerFn *) );
  12.249 +	bridgeWriterDoerFns = PR_WL__malloc( NUM_I0_CHECKERS_INVOLVE_BRIDGE_Broad_0Output3 * sizeof(VReoDoerFn *) );
  12.250 +	bridgeWriterCheckerFns[0] = (VReoCheckerFn) &CHECKER2_I0;
  12.251 +	bridgeWriterDoerFns[0] = (VReoDoerFn) &DOER2_I0;
  12.252 +
  12.253 +	bridge = &(bridges[CKT_BRIDGE_Broad_0Output3]);
  12.254 +	bridge->writer = &(islands[CKT_I0]);
  12.255 +	bridge->writerType = Island;
  12.256 +	bridge->numWriterCheckerFns = NUM_I0_CHECKERS_INVOLVE_BRIDGE_Broad_0Output3;
  12.257 +	bridge->writerCheckerFns = (VReoCheckerFn *) bridgeWriterCheckerFns;
  12.258 +	bridge->writerDoerFns = (VReoDoerFn *) bridgeWriterDoerFns;
  12.259 +
  12.260 +	/* 
  12.261 +	 * Initialize Island 0: register Island 0 as a writer on 
  12.262 +	 * bridge Out_1.
  12.263 +	 */
  12.264 +	bridgeWriterCheckerFns = PR_WL__malloc( NUM_I0_CHECKERS_INVOLVE_BRIDGE_Out_1 * sizeof(VReoCheckerFn *) );
  12.265 +	bridgeWriterDoerFns = PR_WL__malloc( NUM_I0_CHECKERS_INVOLVE_BRIDGE_Out_1 * sizeof(VReoDoerFn *) );
  12.266 +	bridgeWriterCheckerFns[0] = (VReoCheckerFn) &CHECKER2_I0;
  12.267 +	bridgeWriterDoerFns[0] = (VReoDoerFn) &DOER2_I0;
  12.268 +
  12.269 +	bridge = &(bridges[CKT_BRIDGE_Out_1]);
  12.270 +	bridge->writer = &(islands[CKT_I0]);
  12.271 +	bridge->writerType = Island;
  12.272 +	bridge->numWriterCheckerFns = NUM_I0_CHECKERS_INVOLVE_BRIDGE_Out_1;
  12.273 +	bridge->writerCheckerFns = (VReoCheckerFn *) bridgeWriterCheckerFns;
  12.274 +	bridge->writerDoerFns = (VReoDoerFn *) bridgeWriterDoerFns;
  12.275 +
  12.276 +	/* 
  12.277 +	 * Initialize Island 0: register Island 0 as a writer on 
  12.278 +	 * bridge Broad_0Output4.
  12.279 +	 */
  12.280 +	bridgeWriterCheckerFns = PR_WL__malloc( NUM_I0_CHECKERS_INVOLVE_BRIDGE_Broad_0Output4 * sizeof(VReoCheckerFn *) );
  12.281 +	bridgeWriterDoerFns = PR_WL__malloc( NUM_I0_CHECKERS_INVOLVE_BRIDGE_Broad_0Output4 * sizeof(VReoDoerFn *) );
  12.282 +	bridgeWriterCheckerFns[0] = (VReoCheckerFn) &CHECKER2_I0;
  12.283 +	bridgeWriterDoerFns[0] = (VReoDoerFn) &DOER2_I0;
  12.284 +
  12.285 +	bridge = &(bridges[CKT_BRIDGE_Broad_0Output4]);
  12.286 +	bridge->writer = &(islands[CKT_I0]);
  12.287 +	bridge->writerType = Island;
  12.288 +	bridge->numWriterCheckerFns = NUM_I0_CHECKERS_INVOLVE_BRIDGE_Broad_0Output4;
  12.289 +	bridge->writerCheckerFns = (VReoCheckerFn *) bridgeWriterCheckerFns;
  12.290 +	bridge->writerDoerFns = (VReoDoerFn *) bridgeWriterDoerFns;
  12.291 +
  12.292 +	/* Initialize Island 1. */
  12.293 +	island = &(islands[CKT_I1]);
  12.294 +
  12.295 +	island->numCheckerFns = 1;
  12.296 +	island->numBridges = 3;
  12.297 +
  12.298 +	island->checkerFns = PR_WL__malloc(island->numCheckerFns * sizeof(VReoCheckerFn));
  12.299 +	island->checkerFns[0] = &Checker_0__I1;
  12.300 +
  12.301 +	island->doerFns = PR_WL__malloc(island->numCheckerFns * sizeof(VReoDoerFn));
  12.302 +	island->doerFns[0] = &Doer_0__I1;
  12.303 +
  12.304 +	island->bridges = PR_WL__malloc(island->numBridges * sizeof(VReoBridge *));
  12.305 +	island->bridges[I1_BRIDGE_X_0Input0] = &(bridges[CKT_BRIDGE_X_0Input0]);
  12.306 +	island->bridges[I1_BRIDGE_In_0] = &(bridges[CKT_BRIDGE_In_0]);
  12.307 +	island->bridges[I1_BRIDGE_In_0Output1] = &(bridges[CKT_BRIDGE_In_0Output1]);
  12.308 +
  12.309 +	/* 
  12.310 +	 * Initialize Island 1: register Island 1 as a reader on 
  12.311 +	 * bridge X_0Input0. 
  12.312 +	 */
  12.313 +	bridgeReaderCheckerFns = PR_WL__malloc( NUM_I1_CHECKERS_INVOLVE_BRIDGE_X_0Input0 * sizeof(VReoCheckerFn *) );
  12.314 +	bridgeReaderDoerFns = PR_WL__malloc( NUM_I1_CHECKERS_INVOLVE_BRIDGE_X_0Input0 * sizeof(VReoDoerFn *) );
  12.315 +	bridgeReaderCheckerFns[0] = (VReoCheckerFn) &CHECKER2_I1;
  12.316 +	bridgeReaderDoerFns[0] = (VReoDoerFn) &DOER2_I1;
  12.317 +
  12.318 +	bridge = &(bridges[CKT_BRIDGE_X_0Input0]);
  12.319 +	bridge->reader = &(islands[CKT_I1]);
  12.320 +	bridge->readerType = Island;
  12.321 +	bridge->numReaderCheckerFns = NUM_I1_CHECKERS_INVOLVE_BRIDGE_X_0Input0;
  12.322 +	bridge->readerCheckerFns = (VReoCheckerFn *) bridgeReaderCheckerFns;
  12.323 +	bridge->readerDoerFns = (VReoDoerFn *) bridgeReaderDoerFns;
  12.324 +
  12.325 +	/* 
  12.326 +	 * Initialize Island 1: register Island 1 as a reader on 
  12.327 +	 * bridge In_0. 
  12.328 +	 */
  12.329 +	bridgeReaderCheckerFns = PR_WL__malloc( NUM_I1_CHECKERS_INVOLVE_BRIDGE_In_0 * sizeof(VReoCheckerFn *) );
  12.330 +	bridgeReaderDoerFns = PR_WL__malloc( NUM_I1_CHECKERS_INVOLVE_BRIDGE_In_0 * sizeof(VReoDoerFn *) );
  12.331 +	bridgeReaderCheckerFns[0] = (VReoCheckerFn) &CHECKER2_I1;
  12.332 +	bridgeReaderDoerFns[0] = (VReoDoerFn) &DOER2_I1;
  12.333 +
  12.334 +	bridge = &(bridges[CKT_BRIDGE_In_0]);
  12.335 +	bridge->reader = &(islands[CKT_I1]);
  12.336 +	bridge->readerType = Island;
  12.337 +	bridge->numReaderCheckerFns = NUM_I1_CHECKERS_INVOLVE_BRIDGE_In_0;
  12.338 +	bridge->readerCheckerFns = (VReoCheckerFn *) bridgeReaderCheckerFns;
  12.339 +	bridge->readerDoerFns = (VReoDoerFn *) bridgeReaderDoerFns;
  12.340 +
  12.341 +	/* 
  12.342 +	 * Initialize Island 1: register Island 1 as a writer on 
  12.343 +	 * bridge In_0Output1.
  12.344 +	 */
  12.345 +	bridgeWriterCheckerFns = PR_WL__malloc( NUM_I1_CHECKERS_INVOLVE_BRIDGE_In_0Output1 * sizeof(VReoCheckerFn *) );
  12.346 +	bridgeWriterDoerFns = PR_WL__malloc( NUM_I1_CHECKERS_INVOLVE_BRIDGE_In_0Output1 * sizeof(VReoDoerFn *) );
  12.347 +	bridgeWriterCheckerFns[0] = (VReoCheckerFn) &CHECKER2_I1;
  12.348 +	bridgeWriterDoerFns[0] = (VReoDoerFn) &DOER2_I1;
  12.349 +
  12.350 +	bridge = &(bridges[CKT_BRIDGE_In_0Output1]);
  12.351 +	bridge->writer = &(islands[CKT_I1]);
  12.352 +	bridge->writerType = Island;
  12.353 +	bridge->numWriterCheckerFns = NUM_I1_CHECKERS_INVOLVE_BRIDGE_In_0Output1;
  12.354 +	bridge->writerCheckerFns = (VReoCheckerFn *) bridgeWriterCheckerFns;
  12.355 +	bridge->writerDoerFns = (VReoDoerFn *) bridgeWriterDoerFns;
  12.356 +
  12.357 +	/* Initialize Island 2. */
  12.358 +	island = &(islands[CKT_I2]);
  12.359 +
  12.360 +	island->numCheckerFns = 1;
  12.361 +	island->numBridges = 3;
  12.362 +
  12.363 +	island->checkerFns = PR_WL__malloc(island->numCheckerFns * sizeof(VReoCheckerFn));
  12.364 +	island->checkerFns[0] = &Checker_0__I2;
  12.365 +
  12.366 +	island->doerFns = PR_WL__malloc(island->numCheckerFns * sizeof(VReoDoerFn));
  12.367 +	island->doerFns[0] = &Doer_0__I2;
  12.368 +
  12.369 +	island->bridges = PR_WL__malloc(island->numBridges * sizeof(VReoBridge *));
  12.370 +	island->bridges[I2_BRIDGE_In_1] = &(bridges[CKT_BRIDGE_In_1]);
  12.371 +	island->bridges[I2_BRIDGE_X_1Input0] = &(bridges[CKT_BRIDGE_X_1Input0]);
  12.372 +	island->bridges[I2_BRIDGE_In_1Output0] = &(bridges[CKT_BRIDGE_In_1Output0]);
  12.373 +
  12.374 +	/* 
  12.375 +	 * Initialize Island 2: register Island 2 as a reader on 
  12.376 +	 * bridge In_1. 
  12.377 +	 */
  12.378 +	bridgeReaderCheckerFns = PR_WL__malloc( NUM_I2_CHECKERS_INVOLVE_BRIDGE_In_1 * sizeof(VReoCheckerFn *) );
  12.379 +	bridgeReaderDoerFns = PR_WL__malloc( NUM_I2_CHECKERS_INVOLVE_BRIDGE_In_1 * sizeof(VReoDoerFn *) );
  12.380 +	bridgeReaderCheckerFns[0] = (VReoCheckerFn) &CHECKER3_I2;
  12.381 +	bridgeReaderDoerFns[0] = (VReoDoerFn) &DOER3_I2;
  12.382 +
  12.383 +	bridge = &(bridges[CKT_BRIDGE_In_1]);
  12.384 +	bridge->reader = &(islands[CKT_I2]);
  12.385 +	bridge->readerType = Island;
  12.386 +	bridge->numReaderCheckerFns = NUM_I2_CHECKERS_INVOLVE_BRIDGE_In_1;
  12.387 +	bridge->readerCheckerFns = (VReoCheckerFn *) bridgeReaderCheckerFns;
  12.388 +	bridge->readerDoerFns = (VReoDoerFn *) bridgeReaderDoerFns;
  12.389 +
  12.390 +	/* 
  12.391 +	 * Initialize Island 2: register Island 2 as a reader on 
  12.392 +	 * bridge X_1Input0. 
  12.393 +	 */
  12.394 +	bridgeReaderCheckerFns = PR_WL__malloc( NUM_I2_CHECKERS_INVOLVE_BRIDGE_X_1Input0 * sizeof(VReoCheckerFn *) );
  12.395 +	bridgeReaderDoerFns = PR_WL__malloc( NUM_I2_CHECKERS_INVOLVE_BRIDGE_X_1Input0 * sizeof(VReoDoerFn *) );
  12.396 +	bridgeReaderCheckerFns[0] = (VReoCheckerFn) &CHECKER3_I2;
  12.397 +	bridgeReaderDoerFns[0] = (VReoDoerFn) &DOER3_I2;
  12.398 +
  12.399 +	bridge = &(bridges[CKT_BRIDGE_X_1Input0]);
  12.400 +	bridge->reader = &(islands[CKT_I2]);
  12.401 +	bridge->readerType = Island;
  12.402 +	bridge->numReaderCheckerFns = NUM_I2_CHECKERS_INVOLVE_BRIDGE_X_1Input0;
  12.403 +	bridge->readerCheckerFns = (VReoCheckerFn *) bridgeReaderCheckerFns;
  12.404 +	bridge->readerDoerFns = (VReoDoerFn *) bridgeReaderDoerFns;
  12.405 +
  12.406 +	/* 
  12.407 +	 * Initialize Island 2: register Island 2 as a writer on 
  12.408 +	 * bridge In_1Output0.
  12.409 +	 */
  12.410 +	bridgeWriterCheckerFns = PR_WL__malloc( NUM_I2_CHECKERS_INVOLVE_BRIDGE_In_1Output0 * sizeof(VReoCheckerFn *) );
  12.411 +	bridgeWriterDoerFns = PR_WL__malloc( NUM_I2_CHECKERS_INVOLVE_BRIDGE_In_1Output0 * sizeof(VReoDoerFn *) );
  12.412 +	bridgeWriterCheckerFns[0] = (VReoCheckerFn) &CHECKER3_I2;
  12.413 +	bridgeWriterDoerFns[0] = (VReoDoerFn) &DOER3_I2;
  12.414 +
  12.415 +	bridge = &(bridges[CKT_BRIDGE_In_1Output0]);
  12.416 +	bridge->writer = &(islands[CKT_I2]);
  12.417 +	bridge->writerType = Island;
  12.418 +	bridge->numWriterCheckerFns = NUM_I2_CHECKERS_INVOLVE_BRIDGE_In_1Output0;
  12.419 +	bridge->writerCheckerFns = (VReoCheckerFn *) bridgeWriterCheckerFns;
  12.420 +	bridge->writerDoerFns = (VReoDoerFn *) bridgeWriterDoerFns;
  12.421 +
  12.422 +	/* Initialize Island 3. */
  12.423 +	island = &(islands[CKT_I3]);
  12.424 +
  12.425 +	island->numCheckerFns = 1;
  12.426 +	island->numBridges = 3;
  12.427 +
  12.428 +	island->checkerFns = PR_WL__malloc(island->numCheckerFns * sizeof(VReoCheckerFn));
  12.429 +	island->checkerFns[0] = &Checker_0__I3;
  12.430 +
  12.431 +	island->doerFns = PR_WL__malloc(island->numCheckerFns * sizeof(VReoDoerFn));
  12.432 +	island->doerFns[0] = &Doer_0__I3;
  12.433 +
  12.434 +	island->bridges = PR_WL__malloc(island->numBridges * sizeof(VReoBridge *));
  12.435 +	island->bridges[I3_BRIDGE_In_2] = &(bridges[CKT_BRIDGE_In_2]);
  12.436 +	island->bridges[I3_BRIDGE_X_2Input0] = &(bridges[CKT_BRIDGE_X_2Input0]);
  12.437 +	island->bridges[I3_BRIDGE_In_2Output0] = &(bridges[CKT_BRIDGE_In_2Output0]);
  12.438 +
  12.439 +	/* 
  12.440 +	 * Initialize Island 3: register Island 3 as a reader on 
  12.441 +	 * bridge In_2. 
  12.442 +	 */
  12.443 +	bridgeReaderCheckerFns = PR_WL__malloc( NUM_I3_CHECKERS_INVOLVE_BRIDGE_In_2 * sizeof(VReoCheckerFn *) );
  12.444 +	bridgeReaderDoerFns = PR_WL__malloc( NUM_I3_CHECKERS_INVOLVE_BRIDGE_In_2 * sizeof(VReoDoerFn *) );
  12.445 +	bridgeReaderCheckerFns[0] = (VReoCheckerFn) &CHECKER2_I3;
  12.446 +	bridgeReaderDoerFns[0] = (VReoDoerFn) &DOER2_I3;
  12.447 +
  12.448 +	bridge = &(bridges[CKT_BRIDGE_In_2]);
  12.449 +	bridge->reader = &(islands[CKT_I3]);
  12.450 +	bridge->readerType = Island;
  12.451 +	bridge->numReaderCheckerFns = NUM_I3_CHECKERS_INVOLVE_BRIDGE_In_2;
  12.452 +	bridge->readerCheckerFns = (VReoCheckerFn *) bridgeReaderCheckerFns;
  12.453 +	bridge->readerDoerFns = (VReoDoerFn *) bridgeReaderDoerFns;
  12.454 +
  12.455 +	/* 
  12.456 +	 * Initialize Island 3: register Island 3 as a reader on 
  12.457 +	 * bridge X_2Input0. 
  12.458 +	 */
  12.459 +	bridgeReaderCheckerFns = PR_WL__malloc( NUM_I3_CHECKERS_INVOLVE_BRIDGE_X_2Input0 * sizeof(VReoCheckerFn *) );
  12.460 +	bridgeReaderDoerFns = PR_WL__malloc( NUM_I3_CHECKERS_INVOLVE_BRIDGE_X_2Input0 * sizeof(VReoDoerFn *) );
  12.461 +	bridgeReaderCheckerFns[0] = (VReoCheckerFn) &CHECKER2_I3;
  12.462 +	bridgeReaderDoerFns[0] = (VReoDoerFn) &DOER2_I3;
  12.463 +
  12.464 +	bridge = &(bridges[CKT_BRIDGE_X_2Input0]);
  12.465 +	bridge->reader = &(islands[CKT_I3]);
  12.466 +	bridge->readerType = Island;
  12.467 +	bridge->numReaderCheckerFns = NUM_I3_CHECKERS_INVOLVE_BRIDGE_X_2Input0;
  12.468 +	bridge->readerCheckerFns = (VReoCheckerFn *) bridgeReaderCheckerFns;
  12.469 +	bridge->readerDoerFns = (VReoDoerFn *) bridgeReaderDoerFns;
  12.470 +
  12.471 +	/* 
  12.472 +	 * Initialize Island 3: register Island 3 as a writer on 
  12.473 +	 * bridge In_2Output0.
  12.474 +	 */
  12.475 +	bridgeWriterCheckerFns = PR_WL__malloc( NUM_I3_CHECKERS_INVOLVE_BRIDGE_In_2Output0 * sizeof(VReoCheckerFn *) );
  12.476 +	bridgeWriterDoerFns = PR_WL__malloc( NUM_I3_CHECKERS_INVOLVE_BRIDGE_In_2Output0 * sizeof(VReoDoerFn *) );
  12.477 +	bridgeWriterCheckerFns[0] = (VReoCheckerFn) &CHECKER2_I3;
  12.478 +	bridgeWriterDoerFns[0] = (VReoDoerFn) &DOER2_I3;
  12.479 +
  12.480 +	bridge = &(bridges[CKT_BRIDGE_In_2Output0]);
  12.481 +	bridge->writer = &(islands[CKT_I3]);
  12.482 +	bridge->writerType = Island;
  12.483 +	bridge->numWriterCheckerFns = NUM_I3_CHECKERS_INVOLVE_BRIDGE_In_2Output0;
  12.484 +	bridge->writerCheckerFns = (VReoCheckerFn *) bridgeWriterCheckerFns;
  12.485 +	bridge->writerDoerFns = (VReoDoerFn *) bridgeWriterDoerFns;
  12.486 +
  12.487 +	/* Initialize Island 4. */
  12.488 +	island = &(islands[CKT_I4]);
  12.489 +
  12.490 +	island->numCheckerFns = 1;
  12.491 +	island->numBridges = 3;
  12.492 +
  12.493 +	island->checkerFns = PR_WL__malloc(island->numCheckerFns * sizeof(VReoCheckerFn));
  12.494 +	island->checkerFns[0] = &Checker_0__I4;
  12.495 +
  12.496 +	island->doerFns = PR_WL__malloc(island->numCheckerFns * sizeof(VReoDoerFn));
  12.497 +	island->doerFns[0] = &Doer_0__I4;
  12.498 +
  12.499 +	island->bridges = PR_WL__malloc(island->numBridges * sizeof(VReoBridge *));
  12.500 +	island->bridges[I4_BRIDGE_In_3] = &(bridges[CKT_BRIDGE_In_3]);
  12.501 +	island->bridges[I4_BRIDGE_X_3Input0] = &(bridges[CKT_BRIDGE_X_3Input0]);
  12.502 +	island->bridges[I4_BRIDGE_In_3Output0] = &(bridges[CKT_BRIDGE_In_3Output0]);
  12.503 +
  12.504 +	/* 
  12.505 +	 * Initialize Island 4: register Island 4 as a reader on 
  12.506 +	 * bridge In_3. 
  12.507 +	 */
  12.508 +	bridgeReaderCheckerFns = PR_WL__malloc( NUM_I4_CHECKERS_INVOLVE_BRIDGE_In_3 * sizeof(VReoCheckerFn *) );
  12.509 +	bridgeReaderDoerFns = PR_WL__malloc( NUM_I4_CHECKERS_INVOLVE_BRIDGE_In_3 * sizeof(VReoDoerFn *) );
  12.510 +	bridgeReaderCheckerFns[0] = (VReoCheckerFn) &CHECKER3_I4;
  12.511 +	bridgeReaderDoerFns[0] = (VReoDoerFn) &DOER3_I4;
  12.512 +
  12.513 +	bridge = &(bridges[CKT_BRIDGE_In_3]);
  12.514 +	bridge->reader = &(islands[CKT_I4]);
  12.515 +	bridge->readerType = Island;
  12.516 +	bridge->numReaderCheckerFns = NUM_I4_CHECKERS_INVOLVE_BRIDGE_In_3;
  12.517 +	bridge->readerCheckerFns = (VReoCheckerFn *) bridgeReaderCheckerFns;
  12.518 +	bridge->readerDoerFns = (VReoDoerFn *) bridgeReaderDoerFns;
  12.519 +
  12.520 +	/* 
  12.521 +	 * Initialize Island 4: register Island 4 as a reader on 
  12.522 +	 * bridge X_3Input0. 
  12.523 +	 */
  12.524 +	bridgeReaderCheckerFns = PR_WL__malloc( NUM_I4_CHECKERS_INVOLVE_BRIDGE_X_3Input0 * sizeof(VReoCheckerFn *) );
  12.525 +	bridgeReaderDoerFns = PR_WL__malloc( NUM_I4_CHECKERS_INVOLVE_BRIDGE_X_3Input0 * sizeof(VReoDoerFn *) );
  12.526 +	bridgeReaderCheckerFns[0] = (VReoCheckerFn) &CHECKER3_I4;
  12.527 +	bridgeReaderDoerFns[0] = (VReoDoerFn) &DOER3_I4;
  12.528 +
  12.529 +	bridge = &(bridges[CKT_BRIDGE_X_3Input0]);
  12.530 +	bridge->reader = &(islands[CKT_I4]);
  12.531 +	bridge->readerType = Island;
  12.532 +	bridge->numReaderCheckerFns = NUM_I4_CHECKERS_INVOLVE_BRIDGE_X_3Input0;
  12.533 +	bridge->readerCheckerFns = (VReoCheckerFn *) bridgeReaderCheckerFns;
  12.534 +	bridge->readerDoerFns = (VReoDoerFn *) bridgeReaderDoerFns;
  12.535 +
  12.536 +	/* 
  12.537 +	 * Initialize Island 4: register Island 4 as a writer on 
  12.538 +	 * bridge In_3Output0.
  12.539 +	 */
  12.540 +	bridgeWriterCheckerFns = PR_WL__malloc( NUM_I4_CHECKERS_INVOLVE_BRIDGE_In_3Output0 * sizeof(VReoCheckerFn *) );
  12.541 +	bridgeWriterDoerFns = PR_WL__malloc( NUM_I4_CHECKERS_INVOLVE_BRIDGE_In_3Output0 * sizeof(VReoDoerFn *) );
  12.542 +	bridgeWriterCheckerFns[0] = (VReoCheckerFn) &CHECKER3_I4;
  12.543 +	bridgeWriterDoerFns[0] = (VReoDoerFn) &DOER3_I4;
  12.544 +
  12.545 +	bridge = &(bridges[CKT_BRIDGE_In_3Output0]);
  12.546 +	bridge->writer = &(islands[CKT_I4]);
  12.547 +	bridge->writerType = Island;
  12.548 +	bridge->numWriterCheckerFns = NUM_I4_CHECKERS_INVOLVE_BRIDGE_In_3Output0;
  12.549 +	bridge->writerCheckerFns = (VReoCheckerFn *) bridgeWriterCheckerFns;
  12.550 +	bridge->writerDoerFns = (VReoDoerFn *) bridgeWriterDoerFns;
  12.551 +
  12.552 +	/* Initialize O1Island 0. */
  12.553 +	o1island = &(o1islands[CKT_O1I0]);
  12.554 +
  12.555 +	o1island->numBridges = 5;
  12.556 +	o1island->bridges = PR_WL__malloc(o1island->numBridges * sizeof(VReoBridge *));
  12.557 +	o1island->bridges[O1I0_BRIDGE_Out_0Input3] = &(bridges[CKT_BRIDGE_Out_0Input3]);
  12.558 +	o1island->bridges[O1I0_BRIDGE_Out_0Input2] = &(bridges[CKT_BRIDGE_Out_0Input2]);
  12.559 +	o1island->bridges[O1I0_BRIDGE_Out_0Input1] = &(bridges[CKT_BRIDGE_Out_0Input1]);
  12.560 +	o1island->bridges[O1I0_BRIDGE_Out_0Input0] = &(bridges[CKT_BRIDGE_Out_0Input0]);
  12.561 +	o1island->bridges[O1I0_BRIDGE_Out_0] = &(bridges[CKT_BRIDGE_Out_0]);
  12.562 +
  12.563 +	/* 
  12.564 +	 * Initialize O1Island 0: create queues (queue 0 holds puts of input 
  12.565 +	 * bridges; queue 1 holds gets of the output bridge). 
  12.566 +	 */
  12.567 +	offerQ0 = makePrivQ();
  12.568 +	offerQ1 = makePrivQ();
  12.569 +
  12.570 +	partnerQStruct0 = PR_WL__malloc( sizeof(VReoPartnerQStruct) );
  12.571 +	partnerQStruct0->numQs = 1;
  12.572 +	partnerQStruct0->partnerQs = PR_WL__malloc( partnerQStruct0->numQs * sizeof(PrivQueueStruc *) );
  12.573 +	partnerQStruct0->doerFns = PR_WL__malloc( partnerQStruct0->numQs * sizeof(VReoO1islandDoerFn) );
  12.574 +	partnerQStruct0->doerFns[0] = &o1islandReadBridgeToWrittenBridgeDoer;
  12.575 +	partnerQStruct0->partnerQs[0] = offerQ1;
  12.576 +
  12.577 +	partnerQStruct1 = PR_WL__malloc( sizeof(VReoPartnerQStruct) );
  12.578 +	partnerQStruct1->numQs = 1;
  12.579 +	partnerQStruct1->partnerQs = PR_WL__malloc( partnerQStruct1->numQs * sizeof(PrivQueueStruc *) );
  12.580 +	partnerQStruct1->doerFns = PR_WL__malloc( partnerQStruct1->numQs * sizeof(VReoO1islandDoerFn) );
  12.581 +	partnerQStruct1->doerFns[0] = &o1islandReadBridgeToWrittenBridgeDoer;
  12.582 +	partnerQStruct1->partnerQs[0] = offerQ0;
  12.583 +
  12.584 +	/* 
  12.585 +	 * Initialize O1Island 0: register O1Island 0 as a reader on 
  12.586 +	 * bridge Out_0Input3. 
  12.587 +	 */
  12.588 +	bridge = &(bridges[CKT_BRIDGE_Out_0Input3]);
  12.589 +	bridge->reader = &(o1island);
  12.590 +	bridge->readerType = O1island;
  12.591 +	bridge->readerPartnerQStruct = partnerQStruct0;
  12.592 +	bridge->readerOfferQ = offerQ0;
  12.593 +
  12.594 +	/* 
  12.595 +	 * Initialize O1Island 0: register O1Island 0 as a reader on 
  12.596 +	 * bridge Out_0Input2. 
  12.597 +	 */
  12.598 +	bridge = &(bridges[CKT_BRIDGE_Out_0Input2]);
  12.599 +	bridge->reader = &(o1island);
  12.600 +	bridge->readerType = O1island;
  12.601 +	bridge->readerPartnerQStruct = partnerQStruct0;
  12.602 +	bridge->readerOfferQ = offerQ0;
  12.603 +
  12.604 +	/* 
  12.605 +	 * Initialize O1Island 0: register O1Island 0 as a reader on 
  12.606 +	 * bridge Out_0Input1. 
  12.607 +	 */
  12.608 +	bridge = &(bridges[CKT_BRIDGE_Out_0Input1]);
  12.609 +	bridge->reader = &(o1island);
  12.610 +	bridge->readerType = O1island;
  12.611 +	bridge->readerPartnerQStruct = partnerQStruct0;
  12.612 +	bridge->readerOfferQ = offerQ0;
  12.613 +
  12.614 +	/* 
  12.615 +	 * Initialize O1Island 0: register O1Island 0 as a reader on 
  12.616 +	 * bridge Out_0Input0. 
  12.617 +	 */
  12.618 +	bridge = &(bridges[CKT_BRIDGE_Out_0Input0]);
  12.619 +	bridge->reader = &(o1island);
  12.620 +	bridge->readerType = O1island;
  12.621 +	bridge->readerPartnerQStruct = partnerQStruct0;
  12.622 +	bridge->readerOfferQ = offerQ0;
  12.623 +
  12.624 +	/* 
  12.625 +	 * Initialize O1Island 0: register O1Island 0 as the only 
  12.626 +	 * writer on bridge Out_0.
  12.627 +	 */
  12.628 +	bridge = &(bridges[CKT_BRIDGE_Out_0]);
  12.629 +	bridge->writer = &(o1island);
  12.630 +	bridge->writerType = O1island;
  12.631 +	bridge->writerPartnerQStruct = partnerQStruct1;
  12.632 +	bridge->writerOfferQ = offerQ1;
  12.633 +
  12.634 +	//
  12.635 +	// INITIALIZE QUEUES
  12.636 +	//
  12.637 +
  12.638 +	/* Assumption: (writerType != NULL) implies (writerType != VP) */
  12.639 +	bridge = &(bridges[CKT_BRIDGE_Out_0Input3]);
  12.640 +	if (bridge->writerType != NULL && bridge->bridgeIsFull)
  12.641 +		writePrivQ( bridge, bridge->readerOfferQ );
  12.642 +
  12.643 +	/* Assumption: (writerType != NULL) implies (writerType != VP) */
  12.644 +	bridge = &(bridges[CKT_BRIDGE_Out_0Input2]);
  12.645 +	if (bridge->writerType != NULL && bridge->bridgeIsFull)
  12.646 +		writePrivQ( bridge, bridge->readerOfferQ );
  12.647 +
  12.648 +	/* Assumption: (writerType != NULL) implies (writerType != VP) */
  12.649 +	bridge = &(bridges[CKT_BRIDGE_Out_0Input1]);
  12.650 +	if (bridge->writerType != NULL && bridge->bridgeIsFull)
  12.651 +		writePrivQ( bridge, bridge->readerOfferQ );
  12.652 +
  12.653 +	/* Assumption: (writerType != NULL) implies (writerType != VP) */
  12.654 +	bridge = &(bridges[CKT_BRIDGE_Out_0Input0]);
  12.655 +	if (bridge->writerType != NULL && bridge->bridgeIsFull)
  12.656 +		writePrivQ( bridge, bridge->readerOfferQ );
  12.657 +
  12.658 +	/* Assumption: (readerType != NULL) implies (readerType != VP) */
  12.659 +	bridge = &(bridges[CKT_BRIDGE_Out_0]);
  12.660 +	if (bridge->readerType != NULL && !bridge->bridgeIsFull)
  12.661 +		writePrivQ( bridge, bridge->writerOfferQ );
  12.662 +
  12.663 +	//
  12.664 +	// INITIALIZE CIRCUIT
  12.665 +	//
  12.666 +
  12.667 +	/* Initialize circuit. */
  12.668 +	circuit->numIslands = NUM_ISLANDS;
  12.669 +	circuit->numO1islands = NUM_O1ISLANDS;
  12.670 +	circuit->numBridges = NUM_BRIDGES;
  12.671 +	circuit->islands = islands;
  12.672 +	circuit->o1islands = o1islands;
  12.673 +	circuit->bridges = bridges;
  12.674 +	circuit->boundaryBridges = boundaryBridges;
  12.675 +	circuit->VPs = NULL;
  12.676 +
  12.677 +	/* Return. */
  12.678 +	return (circuit);
  12.679 +}
  12.680 +
  12.681 +void create_VPs_and_connect(VReoCircuit *circuit, SlaveVP *animVP) {
  12.682 +
  12.683 +	/* Declare variables. */
  12.684 +	VReoBridge **boundaryBridges, *bridges, **bridgesForVP;
  12.685 +	SlaveVP **VPs;
  12.686 +
  12.687 +	TestAppProducerParams *prodParams;
  12.688 +	TestAppConsumerParams *consParams;
  12.689 +
  12.690 +	/* Initialize (boundary) bridges. */
  12.691 +	boundaryBridges = circuit->boundaryBridges;
  12.692 +	bridges = circuit->bridges;
  12.693 +
  12.694 +	/* Allocate memory for VPs. */
  12.695 +	VPs = PR_WL__malloc(NUM_VPs * sizeof(SlaveVP *));
  12.696 +
  12.697 +	/* Create Producer VP 0. */
  12.698 +	bridgesForVP = PR_WL__malloc(1 * sizeof(VReoBridge *));
  12.699 +	bridgesForVP[0] = boundaryBridges[CKT_VP_PROD0];
  12.700 +
  12.701 +	prodParams = PR_WL__malloc(sizeof(TestAppProducerParams));
  12.702 +	prodParams->inBridges = NULL;
  12.703 +	prodParams->outBridges = bridgesForVP;
  12.704 +
  12.705 +	VPs[CKT_VP_PROD0] = VReo__create_VP(&producer_Fn, prodParams, circuit, animVP);
  12.706 +
  12.707 +	boundaryBridges[CKT_VP_PROD0]->writer = VPs[CKT_VP_PROD0];
  12.708 +	boundaryBridges[CKT_VP_PROD0]->writerType = VP;
  12.709 +
  12.710 +	/* Create Producer VP 1. */
  12.711 +	bridgesForVP = PR_WL__malloc(1 * sizeof(VReoBridge *));
  12.712 +	bridgesForVP[0] = boundaryBridges[CKT_VP_PROD1];
  12.713 +
  12.714 +	prodParams = PR_WL__malloc(sizeof(TestAppProducerParams));
  12.715 +	prodParams->inBridges = NULL;
  12.716 +	prodParams->outBridges = bridgesForVP;
  12.717 +
  12.718 +	VPs[CKT_VP_PROD1] = VReo__create_VP(&producer_Fn, prodParams, circuit, animVP);
  12.719 +
  12.720 +	boundaryBridges[CKT_VP_PROD1]->writer = VPs[CKT_VP_PROD1];
  12.721 +	boundaryBridges[CKT_VP_PROD1]->writerType = VP;
  12.722 +
  12.723 +	/* Create Producer VP 2. */
  12.724 +	bridgesForVP = PR_WL__malloc(1 * sizeof(VReoBridge *));
  12.725 +	bridgesForVP[0] = boundaryBridges[CKT_VP_PROD2];
  12.726 +
  12.727 +	prodParams = PR_WL__malloc(sizeof(TestAppProducerParams));
  12.728 +	prodParams->inBridges = NULL;
  12.729 +	prodParams->outBridges = bridgesForVP;
  12.730 +
  12.731 +	VPs[CKT_VP_PROD2] = VReo__create_VP(&producer_Fn, prodParams, circuit, animVP);
  12.732 +
  12.733 +	boundaryBridges[CKT_VP_PROD2]->writer = VPs[CKT_VP_PROD2];
  12.734 +	boundaryBridges[CKT_VP_PROD2]->writerType = VP;
  12.735 +
  12.736 +	/* Create Producer VP 3. */
  12.737 +	bridgesForVP = PR_WL__malloc(1 * sizeof(VReoBridge *));
  12.738 +	bridgesForVP[0] = boundaryBridges[CKT_VP_PROD3];
  12.739 +
  12.740 +	prodParams = PR_WL__malloc(sizeof(TestAppProducerParams));
  12.741 +	prodParams->inBridges = NULL;
  12.742 +	prodParams->outBridges = bridgesForVP;
  12.743 +
  12.744 +	VPs[CKT_VP_PROD3] = VReo__create_VP(&producer_Fn, prodParams, circuit, animVP);
  12.745 +
  12.746 +	boundaryBridges[CKT_VP_PROD3]->writer = VPs[CKT_VP_PROD3];
  12.747 +	boundaryBridges[CKT_VP_PROD3]->writerType = VP;
  12.748 +
  12.749 +	/* Create Producer VP 4. */
  12.750 +	bridgesForVP = PR_WL__malloc(1 * sizeof(VReoBridge *));
  12.751 +	bridgesForVP[0] = boundaryBridges[CKT_VP_PROD4];
  12.752 +
  12.753 +	prodParams = PR_WL__malloc(sizeof(TestAppProducerParams));
  12.754 +	prodParams->inBridges = NULL;
  12.755 +	prodParams->outBridges = bridgesForVP;
  12.756 +
  12.757 +	VPs[CKT_VP_PROD4] = VReo__create_VP(&producer_Fn, prodParams, circuit, animVP);
  12.758 +
  12.759 +	boundaryBridges[CKT_VP_PROD4]->writer = VPs[CKT_VP_PROD4];
  12.760 +	boundaryBridges[CKT_VP_PROD4]->writerType = VP;
  12.761 +
  12.762 +//	/* Create Consumer VP 0. */
  12.763 +//	consParams = PR_WL__malloc(sizeof(TestAppConsumerParams));
  12.764 +//	
  12.765 +//	//bridgesForVP = PR_WL__malloc(1 * sizeof(VReoBridge *));
  12.766 +//	//bridgesForVP[0] = boundaryBridges[CKT_VP_CONS0];
  12.767 +//	
  12.768 +//	bridgesForVP = PR_WL__malloc(2 * sizeof(VReoBridge *));
  12.769 +//	bridgesForVP[0] = bridges[CKT_BRIDGE_Out_0];
  12.770 +//	bridgesForVP[0] = bridges[CKT_BRIDGE_Out_1];
  12.771 +//	
  12.772 +//	consParams->inBridges = bridgesForVP;
  12.773 +//	consParams->outBridges = NULL;
  12.774 +//	
  12.775 +//	VPs[CKT_VP_CONS0] = VReo__create_VP(&consumer_Fn, consParams, circuit, animVP);
  12.776 +//	boundaryBridges[CKT_VP_CONS0]->reader = VPs[CKT_VP_CONS0];
  12.777 +//	boundaryBridges[CKT_VP_CONS0]->readerType = VP;
  12.778 +
  12.779 +//	/* Create Consumer VP 1. */
  12.780 +//	consParams = PR_WL__malloc(sizeof(TestAppConsumerParams));
  12.781 +//	
  12.782 +//	//bridgesForVP = PR_WL__malloc(1 * sizeof(VReoBridge *));
  12.783 +//	//bridgesForVP[0] = boundaryBridges[CKT_VP_CONS1];
  12.784 +//	
  12.785 +//	bridgesForVP = PR_WL__malloc(2 * sizeof(VReoBridge *));
  12.786 +//	bridgesForVP[0] = bridges[CKT_BRIDGE_Out_0];
  12.787 +//	bridgesForVP[0] = bridges[CKT_BRIDGE_Out_1];
  12.788 +//	
  12.789 +//	consParams->inBridges = bridgesForVP;
  12.790 +//	consParams->outBridges = NULL;
  12.791 +//	
  12.792 +//	VPs[CKT_VP_CONS1] = VReo__create_VP(&consumer_Fn, consParams, circuit, animVP);
  12.793 +//	boundaryBridges[CKT_VP_CONS1]->reader = VPs[CKT_VP_CONS1];
  12.794 +//	boundaryBridges[CKT_VP_CONS1]->readerType = VP;
  12.795 +
  12.796 +	/* Create Consumer VP. */
  12.797 +	consParams = PR_WL__malloc(sizeof(TestAppConsumerParams));
  12.798 +
  12.799 +	bridgesForVP = PR_WL__malloc(2 * sizeof(VReoBridge *));
  12.800 +	bridgesForVP[0] = &(bridges[CKT_BRIDGE_Out_0]);
  12.801 +	bridgesForVP[1] = &(bridges[CKT_BRIDGE_Out_1]);
  12.802 +
  12.803 +	consParams->inBridges = bridgesForVP;
  12.804 +	consParams->outBridges = NULL;
  12.805 +
  12.806 +	VPs[CKT_VP_CONS0] = VReo__create_VP(&consumer_Fn, consParams, circuit, animVP);
  12.807 +
  12.808 +	bridges[CKT_BRIDGE_Out_0].reader = VPs[CKT_VP_CONS0];
  12.809 +	bridges[CKT_BRIDGE_Out_1].reader = VPs[CKT_VP_CONS0];
  12.810 +	bridges[CKT_BRIDGE_Out_0].readerType = VP;
  12.811 +	bridges[CKT_BRIDGE_Out_1].readerType = VP;
  12.812 +
  12.813 +	/* Start circuit. */
  12.814 +	VReo__start_circuit(circuit, animVP);
  12.815 +}
  12.816 +
  12.817 +//==============================================================================
  12.818 +
  12.819 +/* Checkers for Island 0. */
  12.820 +
  12.821 +bool32 Checker_0__I0( VReoIsland *island ) {
  12.822 +	VReoBridge *bridgeBroad_0Output1, *bridgeBroad_0Output2, *bridgeBroad_0Output3, *bridgeOut_1, *bridgeBroad_0, *bridgeBroad_0Output4;
  12.823 +	bool32 satisfied;
  12.824 +
  12.825 +	bridgeBroad_0Output1 = (island->bridges)[I0_BRIDGE_Broad_0Output1];
  12.826 +	bridgeBroad_0Output2 = (island->bridges)[I0_BRIDGE_Broad_0Output2];
  12.827 +	bridgeBroad_0Output3 = (island->bridges)[I0_BRIDGE_Broad_0Output3];
  12.828 +	bridgeOut_1 = (island->bridges)[I0_BRIDGE_Out_1];
  12.829 +	bridgeBroad_0 = (island->bridges)[I0_BRIDGE_Broad_0];
  12.830 +	bridgeBroad_0Output4 = (island->bridges)[I0_BRIDGE_Broad_0Output4];
  12.831 +	satisfied = READY_FOR_READ_BRIDGE_Broad_0 && READY_FOR_WRITE_BRIDGE_Broad_0Output1 && READY_FOR_WRITE_BRIDGE_Broad_0Output2 && READY_FOR_WRITE_BRIDGE_Broad_0Output3 && READY_FOR_WRITE_BRIDGE_Out_1 && READY_FOR_WRITE_BRIDGE_Broad_0Output4;
  12.832 +	return satisfied;
  12.833 +}
  12.834 +
  12.835 +/* Checkers for Island 1. */
  12.836 +
  12.837 +bool32 Checker_0__I1( VReoIsland *island ) {
  12.838 +	VReoBridge *bridgeX_0Input0, *bridgeIn_0, *bridgeIn_0Output1;
  12.839 +	bool32 satisfied;
  12.840 +
  12.841 +	bridgeX_0Input0 = (island->bridges)[I1_BRIDGE_X_0Input0];
  12.842 +	bridgeIn_0 = (island->bridges)[I1_BRIDGE_In_0];
  12.843 +	bridgeIn_0Output1 = (island->bridges)[I1_BRIDGE_In_0Output1];
  12.844 +	satisfied = READY_FOR_READ_BRIDGE_X_0Input0 && READY_FOR_READ_BRIDGE_In_0 && READY_FOR_WRITE_BRIDGE_In_0Output1;
  12.845 +	return satisfied;
  12.846 +}
  12.847 +
  12.848 +/* Checkers for Island 2. */
  12.849 +
  12.850 +bool32 Checker_0__I2( VReoIsland *island ) {
  12.851 +	VReoBridge *bridgeIn_1Output0, *bridgeIn_1, *bridgeX_1Input0;
  12.852 +	bool32 satisfied;
  12.853 +
  12.854 +	bridgeIn_1Output0 = (island->bridges)[I2_BRIDGE_In_1Output0];
  12.855 +	bridgeIn_1 = (island->bridges)[I2_BRIDGE_In_1];
  12.856 +	bridgeX_1Input0 = (island->bridges)[I2_BRIDGE_X_1Input0];
  12.857 +	satisfied = READY_FOR_READ_BRIDGE_In_1 && READY_FOR_READ_BRIDGE_X_1Input0 && READY_FOR_WRITE_BRIDGE_In_1Output0;
  12.858 +	return satisfied;
  12.859 +}
  12.860 +
  12.861 +/* Checkers for Island 3. */
  12.862 +
  12.863 +bool32 Checker_0__I3( VReoIsland *island ) {
  12.864 +	VReoBridge *bridgeIn_2, *bridgeX_2Input0, *bridgeIn_2Output0;
  12.865 +	bool32 satisfied;
  12.866 +
  12.867 +	bridgeIn_2 = (island->bridges)[I3_BRIDGE_In_2];
  12.868 +	bridgeX_2Input0 = (island->bridges)[I3_BRIDGE_X_2Input0];
  12.869 +	bridgeIn_2Output0 = (island->bridges)[I3_BRIDGE_In_2Output0];
  12.870 +	satisfied = READY_FOR_READ_BRIDGE_In_2 && READY_FOR_READ_BRIDGE_X_2Input0 && READY_FOR_WRITE_BRIDGE_In_2Output0;
  12.871 +	return satisfied;
  12.872 +}
  12.873 +
  12.874 +/* Checkers for Island 4. */
  12.875 +
  12.876 +bool32 Checker_0__I4( VReoIsland *island ) {
  12.877 +	VReoBridge *bridgeIn_3, *bridgeX_3Input0, *bridgeIn_3Output0;
  12.878 +	bool32 satisfied;
  12.879 +
  12.880 +	bridgeIn_3 = (island->bridges)[I4_BRIDGE_In_3];
  12.881 +	bridgeX_3Input0 = (island->bridges)[I4_BRIDGE_X_3Input0];
  12.882 +	bridgeIn_3Output0 = (island->bridges)[I4_BRIDGE_In_3Output0];
  12.883 +	satisfied = READY_FOR_READ_BRIDGE_In_3 && READY_FOR_READ_BRIDGE_X_3Input0 && READY_FOR_WRITE_BRIDGE_In_3Output0;
  12.884 +	return satisfied;
  12.885 +}
  12.886 +
  12.887 +//==============================================================================
  12.888 +
  12.889 +/* Declaration of auxiliary doers. */
  12.890 +
  12.891 +void Auxdoer_for_bridge_Broad_0( VReoBridge *bridge );
  12.892 +void Auxdoer_for_bridge_In_0( VReoBridge *bridge );
  12.893 +void Auxdoer_for_bridge_In_1( VReoBridge *bridge );
  12.894 +void Auxdoer_for_bridge_In_2( VReoBridge *bridge );
  12.895 +void Auxdoer_for_bridge_In_3( VReoBridge *bridge );
  12.896 +void Auxdoer_for_bridge_Out_0( VReoBridge *bridge );
  12.897 +void Auxdoer_for_bridge_Out_1( VReoBridge *bridge );
  12.898 +void Auxdoer_for_bridge_In_0Output1( VReoBridge *bridge );
  12.899 +void Auxdoer_for_bridge_Out_0Input3( VReoBridge *bridge );
  12.900 +
  12.901 +void Auxdoer_for_bridge_Broad_0Output1( VReoBridge *bridge );
  12.902 +void Auxdoer_for_bridge_X_0Input0( VReoBridge *bridge );
  12.903 +
  12.904 +void Auxdoer_for_bridge_In_1Output0( VReoBridge *bridge );
  12.905 +void Auxdoer_for_bridge_Out_0Input2( VReoBridge *bridge );
  12.906 +
  12.907 +void Auxdoer_for_bridge_Broad_0Output2( VReoBridge *bridge );
  12.908 +void Auxdoer_for_bridge_X_1Input0( VReoBridge *bridge );
  12.909 +
  12.910 +void Auxdoer_for_bridge_In_2Output0( VReoBridge *bridge );
  12.911 +void Auxdoer_for_bridge_Out_0Input1( VReoBridge *bridge );
  12.912 +
  12.913 +void Auxdoer_for_bridge_Broad_0Output3( VReoBridge *bridge );
  12.914 +void Auxdoer_for_bridge_X_2Input0( VReoBridge *bridge );
  12.915 +
  12.916 +void Auxdoer_for_bridge_In_3Output0( VReoBridge *bridge );
  12.917 +void Auxdoer_for_bridge_Out_0Input0( VReoBridge *bridge );
  12.918 +
  12.919 +void Auxdoer_for_bridge_Broad_0Output4( VReoBridge *bridge );
  12.920 +void Auxdoer_for_bridge_X_3Input0( VReoBridge *bridge );
  12.921 +
  12.922 +/* Doers for Island 0. */
  12.923 +
  12.924 +void Doer_0__I0( VReoIsland *island ) {
  12.925 +	VReoBridge *bridgeBroad_0Output1, *bridgeBroad_0Output2, *bridgeBroad_0Output3, *bridgeOut_1, *bridgeBroad_0, *bridgeBroad_0Output4;
  12.926 +
  12.927 +	/* Initialize bridges. */
  12.928 +	bridgeBroad_0Output1 = (island->bridges)[I0_BRIDGE_Broad_0Output1];
  12.929 +	bridgeBroad_0Output2 = (island->bridges)[I0_BRIDGE_Broad_0Output2];
  12.930 +	bridgeBroad_0Output3 = (island->bridges)[I0_BRIDGE_Broad_0Output3];
  12.931 +	bridgeOut_1 = (island->bridges)[I0_BRIDGE_Out_1];
  12.932 +	bridgeBroad_0 = (island->bridges)[I0_BRIDGE_Broad_0];
  12.933 +	bridgeBroad_0Output4 = (island->bridges)[I0_BRIDGE_Broad_0Output4];
  12.934 +
  12.935 +	/* Distribute data. */
  12.936 +	bridgeBroad_0Output1->buffer = bridgeBroad_0->buffer;
  12.937 +	bridgeBroad_0Output2->buffer = bridgeBroad_0->buffer;
  12.938 +	bridgeBroad_0Output3->buffer = bridgeBroad_0->buffer;
  12.939 +	bridgeOut_1->buffer = bridgeBroad_0->buffer;
  12.940 +	bridgeBroad_0Output4->buffer = bridgeBroad_0->buffer;
  12.941 +
  12.942 +	/* Update bridge status. */
  12.943 +	bridgeBroad_0->bridgeIsFull = FALSE;
  12.944 +	bridgeBroad_0Output1->bridgeIsFull = TRUE;
  12.945 +	bridgeBroad_0Output2->bridgeIsFull = TRUE;
  12.946 +	bridgeBroad_0Output3->bridgeIsFull = TRUE;
  12.947 +	bridgeOut_1->bridgeIsFull = TRUE;
  12.948 +	bridgeBroad_0Output4->bridgeIsFull = TRUE;
  12.949 +
  12.950 +	/* Prepare reader VPs. */
  12.951 +	PR_PI__make_slave_ready_for_lang(bridgeOut_1->waitingReaderVP, VReo_MAGIC_NUMBER);
  12.952 +	bridgeOut_1->waitingReaderVP->dataRetFromReq = bridgeOut_1->buffer;
  12.953 +	bridgeOut_1->waitingReaderVP = NULL;
  12.954 +	bridgeOut_1->bridgeIsFull = FALSE;
  12.955 +
  12.956 +	/* Prepare writer VPs. */
  12.957 +	PR_PI__make_slave_ready_for_lang(bridgeBroad_0->waitingWriterVP, VReo_MAGIC_NUMBER);
  12.958 +	bridgeBroad_0->waitingWriterVP = NULL;
  12.959 +
  12.960 +	/* Call auxiliary doers to complete this transition. */
  12.961 +	Auxdoer_for_bridge_Broad_0Output1(bridgeBroad_0Output1);
  12.962 +	Auxdoer_for_bridge_Broad_0Output2(bridgeBroad_0Output2);
  12.963 +	Auxdoer_for_bridge_Broad_0Output3(bridgeBroad_0Output3);
  12.964 +	Auxdoer_for_bridge_Out_1(bridgeOut_1);
  12.965 +	Auxdoer_for_bridge_Broad_0(bridgeBroad_0);
  12.966 +	Auxdoer_for_bridge_Broad_0Output4(bridgeBroad_0Output4);
  12.967 +}
  12.968 +
  12.969 +/* Doers for Island 1. */
  12.970 +
  12.971 +void Doer_0__I1( VReoIsland *island ) {
  12.972 +	VReoBridge *bridgeX_0Input0, *bridgeIn_0, *bridgeIn_0Output1;
  12.973 +
  12.974 +	/* Initialize bridges. */
  12.975 +	bridgeX_0Input0 = (island->bridges)[I1_BRIDGE_X_0Input0];
  12.976 +	bridgeIn_0 = (island->bridges)[I1_BRIDGE_In_0];
  12.977 +	bridgeIn_0Output1 = (island->bridges)[I1_BRIDGE_In_0Output1];
  12.978 +
  12.979 +	/* Distribute data. */
  12.980 +	bridgeIn_0Output1->buffer = bridgeIn_0->buffer;
  12.981 +
  12.982 +	/* Update bridge status. */
  12.983 +	bridgeX_0Input0->bridgeIsFull = FALSE;
  12.984 +	bridgeIn_0->bridgeIsFull = FALSE;
  12.985 +	bridgeIn_0Output1->bridgeIsFull = TRUE;
  12.986 +
  12.987 +	/* Prepare reader VPs. */
  12.988 +
  12.989 +	/* Prepare writer VPs. */
  12.990 +	PR_PI__make_slave_ready_for_lang(bridgeIn_0->waitingWriterVP, VReo_MAGIC_NUMBER);
  12.991 +	bridgeIn_0->waitingWriterVP = NULL;
  12.992 +
  12.993 +	/* Call auxiliary doers to complete this transition. */
  12.994 +	Auxdoer_for_bridge_X_0Input0(bridgeX_0Input0);
  12.995 +	Auxdoer_for_bridge_In_0(bridgeIn_0);
  12.996 +	Auxdoer_for_bridge_In_0Output1(bridgeIn_0Output1);
  12.997 +}
  12.998 +
  12.999 +/* Doers for Island 2. */
 12.1000 +
 12.1001 +void Doer_0__I2( VReoIsland *island ) {
 12.1002 +	VReoBridge *bridgeIn_1Output0, *bridgeIn_1, *bridgeX_1Input0;
 12.1003 +
 12.1004 +	/* Initialize bridges. */
 12.1005 +	bridgeIn_1Output0 = (island->bridges)[I2_BRIDGE_In_1Output0];
 12.1006 +	bridgeIn_1 = (island->bridges)[I2_BRIDGE_In_1];
 12.1007 +	bridgeX_1Input0 = (island->bridges)[I2_BRIDGE_X_1Input0];
 12.1008 +
 12.1009 +	/* Distribute data. */
 12.1010 +	bridgeIn_1Output0->buffer = bridgeIn_1->buffer;
 12.1011 +
 12.1012 +	/* Update bridge status. */
 12.1013 +	bridgeIn_1->bridgeIsFull = FALSE;
 12.1014 +	bridgeX_1Input0->bridgeIsFull = FALSE;
 12.1015 +	bridgeIn_1Output0->bridgeIsFull = TRUE;
 12.1016 +
 12.1017 +	/* Prepare reader VPs. */
 12.1018 +
 12.1019 +	/* Prepare writer VPs. */
 12.1020 +	PR_PI__make_slave_ready_for_lang(bridgeIn_1->waitingWriterVP, VReo_MAGIC_NUMBER);
 12.1021 +	bridgeIn_1->waitingWriterVP = NULL;
 12.1022 +
 12.1023 +	/* Call auxiliary doers to complete this transition. */
 12.1024 +	Auxdoer_for_bridge_In_1Output0(bridgeIn_1Output0);
 12.1025 +	Auxdoer_for_bridge_In_1(bridgeIn_1);
 12.1026 +	Auxdoer_for_bridge_X_1Input0(bridgeX_1Input0);
 12.1027 +}
 12.1028 +
 12.1029 +/* Doers for Island 3. */
 12.1030 +
 12.1031 +void Doer_0__I3( VReoIsland *island ) {
 12.1032 +	VReoBridge *bridgeIn_2, *bridgeX_2Input0, *bridgeIn_2Output0;
 12.1033 +
 12.1034 +	/* Initialize bridges. */
 12.1035 +	bridgeIn_2 = (island->bridges)[I3_BRIDGE_In_2];
 12.1036 +	bridgeX_2Input0 = (island->bridges)[I3_BRIDGE_X_2Input0];
 12.1037 +	bridgeIn_2Output0 = (island->bridges)[I3_BRIDGE_In_2Output0];
 12.1038 +
 12.1039 +	/* Distribute data. */
 12.1040 +	bridgeIn_2Output0->buffer = bridgeIn_2->buffer;
 12.1041 +
 12.1042 +	/* Update bridge status. */
 12.1043 +	bridgeIn_2->bridgeIsFull = FALSE;
 12.1044 +	bridgeX_2Input0->bridgeIsFull = FALSE;
 12.1045 +	bridgeIn_2Output0->bridgeIsFull = TRUE;
 12.1046 +
 12.1047 +	/* Prepare reader VPs. */
 12.1048 +
 12.1049 +	/* Prepare writer VPs. */
 12.1050 +	PR_PI__make_slave_ready_for_lang(bridgeIn_2->waitingWriterVP, VReo_MAGIC_NUMBER);
 12.1051 +	bridgeIn_2->waitingWriterVP = NULL;
 12.1052 +
 12.1053 +	/* Call auxiliary doers to complete this transition. */
 12.1054 +	Auxdoer_for_bridge_In_2(bridgeIn_2);
 12.1055 +	Auxdoer_for_bridge_X_2Input0(bridgeX_2Input0);
 12.1056 +	Auxdoer_for_bridge_In_2Output0(bridgeIn_2Output0);
 12.1057 +}
 12.1058 +
 12.1059 +/* Doers for Island 4. */
 12.1060 +
 12.1061 +void Doer_0__I4( VReoIsland *island ) {
 12.1062 +	VReoBridge *bridgeIn_3, *bridgeX_3Input0, *bridgeIn_3Output0;
 12.1063 +
 12.1064 +	/* Initialize bridges. */
 12.1065 +	bridgeIn_3 = (island->bridges)[I4_BRIDGE_In_3];
 12.1066 +	bridgeX_3Input0 = (island->bridges)[I4_BRIDGE_X_3Input0];
 12.1067 +	bridgeIn_3Output0 = (island->bridges)[I4_BRIDGE_In_3Output0];
 12.1068 +
 12.1069 +	/* Distribute data. */
 12.1070 +	bridgeIn_3Output0->buffer = bridgeIn_3->buffer;
 12.1071 +
 12.1072 +	/* Update bridge status. */
 12.1073 +	bridgeIn_3->bridgeIsFull = FALSE;
 12.1074 +	bridgeX_3Input0->bridgeIsFull = FALSE;
 12.1075 +	bridgeIn_3Output0->bridgeIsFull = TRUE;
 12.1076 +
 12.1077 +	/* Prepare reader VPs. */
 12.1078 +
 12.1079 +	/* Prepare writer VPs. */
 12.1080 +	PR_PI__make_slave_ready_for_lang(bridgeIn_3->waitingWriterVP, VReo_MAGIC_NUMBER);
 12.1081 +	bridgeIn_3->waitingWriterVP = NULL;
 12.1082 +
 12.1083 +	/* Call auxiliary doers to complete this transition. */
 12.1084 +	Auxdoer_for_bridge_In_3(bridgeIn_3);
 12.1085 +	Auxdoer_for_bridge_X_3Input0(bridgeX_3Input0);
 12.1086 +	Auxdoer_for_bridge_In_3Output0(bridgeIn_3Output0);
 12.1087 +}
 12.1088 +
 12.1089 +//==============================================================================
 12.1090 +
 12.1091 +/* Auxiliary doers for input bridges. */
 12.1092 +
 12.1093 +void Auxdoer_for_bridge_Broad_0( VReoBridge *bridge ) {
 12.1094 +	;
 12.1095 +}
 12.1096 +
 12.1097 +void Auxdoer_for_bridge_In_0( VReoBridge *bridge ) {
 12.1098 +	;
 12.1099 +}
 12.1100 +
 12.1101 +void Auxdoer_for_bridge_In_1( VReoBridge *bridge ) {
 12.1102 +	;
 12.1103 +}
 12.1104 +
 12.1105 +void Auxdoer_for_bridge_In_2( VReoBridge *bridge ) {
 12.1106 +	;
 12.1107 +}
 12.1108 +
 12.1109 +void Auxdoer_for_bridge_In_3( VReoBridge *bridge ) {
 12.1110 +	;
 12.1111 +}
 12.1112 +
 12.1113 +/* Auxiliary doers for output bridges. */
 12.1114 +
 12.1115 +void Auxdoer_for_bridge_Out_0( VReoBridge *bridge ) {
 12.1116 +	;
 12.1117 +}
 12.1118 +
 12.1119 +void Auxdoer_for_bridge_Out_1( VReoBridge *bridge ) {
 12.1120 +	;
 12.1121 +}
 12.1122 +
 12.1123 +/* Auxiliary doers for FIFO bridges. */
 12.1124 +
 12.1125 +void Auxdoer_for_bridge_In_0Output1( VReoBridge *bridge ) {
 12.1126 +	int32 numCheckerFns;
 12.1127 +	VReoIsland *islandOnOtherSide;
 12.1128 +	VReoCheckerFn *checkerFns;
 12.1129 +	VReoDoerFn *doerFns;
 12.1130 +
 12.1131 +	VReoO1island *o1islandOnOtherSide;
 12.1132 +	VReoPartnerQStruct *partnerQstruct;
 12.1133 +
 12.1134 +	if (bridge->readerType == Island) {
 12.1135 +		islandOnOtherSide = (VReoIsland*) bridge->reader;
 12.1136 +		numCheckerFns = bridge->numReaderCheckerFns;
 12.1137 +		checkerFns = bridge->readerCheckerFns;
 12.1138 +		doerFns = bridge->readerDoerFns;
 12.1139 +
 12.1140 +		VReo__check_an_island( islandOnOtherSide, numCheckerFns, checkerFns, doerFns );
 12.1141 +    }
 12.1142 +
 12.1143 +    else if (bridge->readerType == O1island) { 
 12.1144 +    	o1islandOnOtherSide = (VReoO1island *)bridge->reader;
 12.1145 +    	partnerQstruct =  bridge->readerPartnerQStruct;
 12.1146 +
 12.1147 +    	VReo__check_an_o1island_that_reads_bridge( o1islandOnOtherSide, bridge, partnerQstruct );
 12.1148 +    }
 12.1149 +}
 12.1150 +void Auxdoer_for_bridge_Out_0Input3( VReoBridge *bridge ) {
 12.1151 +	int32 numCheckerFns;
 12.1152 +	VReoIsland *islandOnOtherSide;
 12.1153 +	VReoCheckerFn *checkerFns;
 12.1154 +	VReoDoerFn *doerFns;
 12.1155 +
 12.1156 +	VReoO1island *o1islandOnOtherSide;
 12.1157 +	VReoPartnerQStruct *partnerQstruct;
 12.1158 +
 12.1159 +	if (bridge->writerType == Island) {
 12.1160 +		islandOnOtherSide = (VReoIsland*) bridge->writer;
 12.1161 +		numCheckerFns = bridge->numWriterCheckerFns;
 12.1162 +		checkerFns = bridge->writerCheckerFns;
 12.1163 +		doerFns = bridge->writerDoerFns;
 12.1164 +
 12.1165 +		VReo__check_an_island( islandOnOtherSide, numCheckerFns, checkerFns, doerFns );
 12.1166 +    }
 12.1167 +
 12.1168 +	else if (bridge->writerType == O1island) { 
 12.1169 +		o1islandOnOtherSide = (VReoO1island *)bridge->writer;
 12.1170 +		partnerQstruct = bridge->writerPartnerQStruct;
 12.1171 +
 12.1172 +		VReo__check_an_o1island_that_writes_bridge( o1islandOnOtherSide, bridge, partnerQstruct );
 12.1173 +    }
 12.1174 +}
 12.1175 +
 12.1176 +void Auxdoer_for_bridge_Broad_0Output1( VReoBridge *bridge ) {
 12.1177 +	int32 numCheckerFns;
 12.1178 +	VReoIsland *islandOnOtherSide;
 12.1179 +	VReoCheckerFn *checkerFns;
 12.1180 +	VReoDoerFn *doerFns;
 12.1181 +
 12.1182 +	VReoO1island *o1islandOnOtherSide;
 12.1183 +	VReoPartnerQStruct *partnerQstruct;
 12.1184 +
 12.1185 +	if (bridge->readerType == Island) {
 12.1186 +		islandOnOtherSide = (VReoIsland*) bridge->reader;
 12.1187 +		numCheckerFns = bridge->numReaderCheckerFns;
 12.1188 +		checkerFns = bridge->readerCheckerFns;
 12.1189 +		doerFns = bridge->readerDoerFns;
 12.1190 +
 12.1191 +		VReo__check_an_island( islandOnOtherSide, numCheckerFns, checkerFns, doerFns );
 12.1192 +    }
 12.1193 +
 12.1194 +    else if (bridge->readerType == O1island) { 
 12.1195 +    	o1islandOnOtherSide = (VReoO1island *)bridge->reader;
 12.1196 +    	partnerQstruct =  bridge->readerPartnerQStruct;
 12.1197 +
 12.1198 +    	VReo__check_an_o1island_that_reads_bridge( o1islandOnOtherSide, bridge, partnerQstruct );
 12.1199 +    }
 12.1200 +}
 12.1201 +void Auxdoer_for_bridge_X_0Input0( VReoBridge *bridge ) {
 12.1202 +	int32 numCheckerFns;
 12.1203 +	VReoIsland *islandOnOtherSide;
 12.1204 +	VReoCheckerFn *checkerFns;
 12.1205 +	VReoDoerFn *doerFns;
 12.1206 +
 12.1207 +	VReoO1island *o1islandOnOtherSide;
 12.1208 +	VReoPartnerQStruct *partnerQstruct;
 12.1209 +
 12.1210 +	if (bridge->writerType == Island) {
 12.1211 +		islandOnOtherSide = (VReoIsland*) bridge->writer;
 12.1212 +		numCheckerFns = bridge->numWriterCheckerFns;
 12.1213 +		checkerFns = bridge->writerCheckerFns;
 12.1214 +		doerFns = bridge->writerDoerFns;
 12.1215 +
 12.1216 +		VReo__check_an_island( islandOnOtherSide, numCheckerFns, checkerFns, doerFns );
 12.1217 +    }
 12.1218 +
 12.1219 +	else if (bridge->writerType == O1island) { 
 12.1220 +		o1islandOnOtherSide = (VReoO1island *)bridge->writer;
 12.1221 +		partnerQstruct = bridge->writerPartnerQStruct;
 12.1222 +
 12.1223 +		VReo__check_an_o1island_that_writes_bridge( o1islandOnOtherSide, bridge, partnerQstruct );
 12.1224 +    }
 12.1225 +}
 12.1226 +
 12.1227 +void Auxdoer_for_bridge_In_1Output0( VReoBridge *bridge ) {
 12.1228 +	int32 numCheckerFns;
 12.1229 +	VReoIsland *islandOnOtherSide;
 12.1230 +	VReoCheckerFn *checkerFns;
 12.1231 +	VReoDoerFn *doerFns;
 12.1232 +
 12.1233 +	VReoO1island *o1islandOnOtherSide;
 12.1234 +	VReoPartnerQStruct *partnerQstruct;
 12.1235 +
 12.1236 +	if (bridge->readerType == Island) {
 12.1237 +		islandOnOtherSide = (VReoIsland*) bridge->reader;
 12.1238 +		numCheckerFns = bridge->numReaderCheckerFns;
 12.1239 +		checkerFns = bridge->readerCheckerFns;
 12.1240 +		doerFns = bridge->readerDoerFns;
 12.1241 +
 12.1242 +		VReo__check_an_island( islandOnOtherSide, numCheckerFns, checkerFns, doerFns );
 12.1243 +    }
 12.1244 +
 12.1245 +    else if (bridge->readerType == O1island) { 
 12.1246 +    	o1islandOnOtherSide = (VReoO1island *)bridge->reader;
 12.1247 +    	partnerQstruct =  bridge->readerPartnerQStruct;
 12.1248 +
 12.1249 +    	VReo__check_an_o1island_that_reads_bridge( o1islandOnOtherSide, bridge, partnerQstruct );
 12.1250 +    }
 12.1251 +}
 12.1252 +void Auxdoer_for_bridge_Out_0Input2( VReoBridge *bridge ) {
 12.1253 +	int32 numCheckerFns;
 12.1254 +	VReoIsland *islandOnOtherSide;
 12.1255 +	VReoCheckerFn *checkerFns;
 12.1256 +	VReoDoerFn *doerFns;
 12.1257 +
 12.1258 +	VReoO1island *o1islandOnOtherSide;
 12.1259 +	VReoPartnerQStruct *partnerQstruct;
 12.1260 +
 12.1261 +	if (bridge->writerType == Island) {
 12.1262 +		islandOnOtherSide = (VReoIsland*) bridge->writer;
 12.1263 +		numCheckerFns = bridge->numWriterCheckerFns;
 12.1264 +		checkerFns = bridge->writerCheckerFns;
 12.1265 +		doerFns = bridge->writerDoerFns;
 12.1266 +
 12.1267 +		VReo__check_an_island( islandOnOtherSide, numCheckerFns, checkerFns, doerFns );
 12.1268 +    }
 12.1269 +
 12.1270 +	else if (bridge->writerType == O1island) { 
 12.1271 +		o1islandOnOtherSide = (VReoO1island *)bridge->writer;
 12.1272 +		partnerQstruct = bridge->writerPartnerQStruct;
 12.1273 +
 12.1274 +		VReo__check_an_o1island_that_writes_bridge( o1islandOnOtherSide, bridge, partnerQstruct );
 12.1275 +    }
 12.1276 +}
 12.1277 +
 12.1278 +void Auxdoer_for_bridge_Broad_0Output2( VReoBridge *bridge ) {
 12.1279 +	int32 numCheckerFns;
 12.1280 +	VReoIsland *islandOnOtherSide;
 12.1281 +	VReoCheckerFn *checkerFns;
 12.1282 +	VReoDoerFn *doerFns;
 12.1283 +
 12.1284 +	VReoO1island *o1islandOnOtherSide;
 12.1285 +	VReoPartnerQStruct *partnerQstruct;
 12.1286 +
 12.1287 +	if (bridge->readerType == Island) {
 12.1288 +		islandOnOtherSide = (VReoIsland*) bridge->reader;
 12.1289 +		numCheckerFns = bridge->numReaderCheckerFns;
 12.1290 +		checkerFns = bridge->readerCheckerFns;
 12.1291 +		doerFns = bridge->readerDoerFns;
 12.1292 +
 12.1293 +		VReo__check_an_island( islandOnOtherSide, numCheckerFns, checkerFns, doerFns );
 12.1294 +    }
 12.1295 +
 12.1296 +    else if (bridge->readerType == O1island) { 
 12.1297 +    	o1islandOnOtherSide = (VReoO1island *)bridge->reader;
 12.1298 +    	partnerQstruct =  bridge->readerPartnerQStruct;
 12.1299 +
 12.1300 +    	VReo__check_an_o1island_that_reads_bridge( o1islandOnOtherSide, bridge, partnerQstruct );
 12.1301 +    }
 12.1302 +}
 12.1303 +void Auxdoer_for_bridge_X_1Input0( VReoBridge *bridge ) {
 12.1304 +	int32 numCheckerFns;
 12.1305 +	VReoIsland *islandOnOtherSide;
 12.1306 +	VReoCheckerFn *checkerFns;
 12.1307 +	VReoDoerFn *doerFns;
 12.1308 +
 12.1309 +	VReoO1island *o1islandOnOtherSide;
 12.1310 +	VReoPartnerQStruct *partnerQstruct;
 12.1311 +
 12.1312 +	if (bridge->writerType == Island) {
 12.1313 +		islandOnOtherSide = (VReoIsland*) bridge->writer;
 12.1314 +		numCheckerFns = bridge->numWriterCheckerFns;
 12.1315 +		checkerFns = bridge->writerCheckerFns;
 12.1316 +		doerFns = bridge->writerDoerFns;
 12.1317 +
 12.1318 +		VReo__check_an_island( islandOnOtherSide, numCheckerFns, checkerFns, doerFns );
 12.1319 +    }
 12.1320 +
 12.1321 +	else if (bridge->writerType == O1island) { 
 12.1322 +		o1islandOnOtherSide = (VReoO1island *)bridge->writer;
 12.1323 +		partnerQstruct = bridge->writerPartnerQStruct;
 12.1324 +
 12.1325 +		VReo__check_an_o1island_that_writes_bridge( o1islandOnOtherSide, bridge, partnerQstruct );
 12.1326 +    }
 12.1327 +}
 12.1328 +
 12.1329 +void Auxdoer_for_bridge_In_2Output0( VReoBridge *bridge ) {
 12.1330 +	int32 numCheckerFns;
 12.1331 +	VReoIsland *islandOnOtherSide;
 12.1332 +	VReoCheckerFn *checkerFns;
 12.1333 +	VReoDoerFn *doerFns;
 12.1334 +
 12.1335 +	VReoO1island *o1islandOnOtherSide;
 12.1336 +	VReoPartnerQStruct *partnerQstruct;
 12.1337 +
 12.1338 +	if (bridge->readerType == Island) {
 12.1339 +		islandOnOtherSide = (VReoIsland*) bridge->reader;
 12.1340 +		numCheckerFns = bridge->numReaderCheckerFns;
 12.1341 +		checkerFns = bridge->readerCheckerFns;
 12.1342 +		doerFns = bridge->readerDoerFns;
 12.1343 +
 12.1344 +		VReo__check_an_island( islandOnOtherSide, numCheckerFns, checkerFns, doerFns );
 12.1345 +    }
 12.1346 +
 12.1347 +    else if (bridge->readerType == O1island) { 
 12.1348 +    	o1islandOnOtherSide = (VReoO1island *)bridge->reader;
 12.1349 +    	partnerQstruct =  bridge->readerPartnerQStruct;
 12.1350 +
 12.1351 +    	VReo__check_an_o1island_that_reads_bridge( o1islandOnOtherSide, bridge, partnerQstruct );
 12.1352 +    }
 12.1353 +}
 12.1354 +void Auxdoer_for_bridge_Out_0Input1( VReoBridge *bridge ) {
 12.1355 +	int32 numCheckerFns;
 12.1356 +	VReoIsland *islandOnOtherSide;
 12.1357 +	VReoCheckerFn *checkerFns;
 12.1358 +	VReoDoerFn *doerFns;
 12.1359 +
 12.1360 +	VReoO1island *o1islandOnOtherSide;
 12.1361 +	VReoPartnerQStruct *partnerQstruct;
 12.1362 +
 12.1363 +	if (bridge->writerType == Island) {
 12.1364 +		islandOnOtherSide = (VReoIsland*) bridge->writer;
 12.1365 +		numCheckerFns = bridge->numWriterCheckerFns;
 12.1366 +		checkerFns = bridge->writerCheckerFns;
 12.1367 +		doerFns = bridge->writerDoerFns;
 12.1368 +
 12.1369 +		VReo__check_an_island( islandOnOtherSide, numCheckerFns, checkerFns, doerFns );
 12.1370 +    }
 12.1371 +
 12.1372 +	else if (bridge->writerType == O1island) { 
 12.1373 +		o1islandOnOtherSide = (VReoO1island *)bridge->writer;
 12.1374 +		partnerQstruct = bridge->writerPartnerQStruct;
 12.1375 +
 12.1376 +		VReo__check_an_o1island_that_writes_bridge( o1islandOnOtherSide, bridge, partnerQstruct );
 12.1377 +    }
 12.1378 +}
 12.1379 +
 12.1380 +void Auxdoer_for_bridge_Broad_0Output3( VReoBridge *bridge ) {
 12.1381 +	int32 numCheckerFns;
 12.1382 +	VReoIsland *islandOnOtherSide;
 12.1383 +	VReoCheckerFn *checkerFns;
 12.1384 +	VReoDoerFn *doerFns;
 12.1385 +
 12.1386 +	VReoO1island *o1islandOnOtherSide;
 12.1387 +	VReoPartnerQStruct *partnerQstruct;
 12.1388 +
 12.1389 +	if (bridge->readerType == Island) {
 12.1390 +		islandOnOtherSide = (VReoIsland*) bridge->reader;
 12.1391 +		numCheckerFns = bridge->numReaderCheckerFns;
 12.1392 +		checkerFns = bridge->readerCheckerFns;
 12.1393 +		doerFns = bridge->readerDoerFns;
 12.1394 +
 12.1395 +		VReo__check_an_island( islandOnOtherSide, numCheckerFns, checkerFns, doerFns );
 12.1396 +    }
 12.1397 +
 12.1398 +    else if (bridge->readerType == O1island) { 
 12.1399 +    	o1islandOnOtherSide = (VReoO1island *)bridge->reader;
 12.1400 +    	partnerQstruct =  bridge->readerPartnerQStruct;
 12.1401 +
 12.1402 +    	VReo__check_an_o1island_that_reads_bridge( o1islandOnOtherSide, bridge, partnerQstruct );
 12.1403 +    }
 12.1404 +}
 12.1405 +void Auxdoer_for_bridge_X_2Input0( VReoBridge *bridge ) {
 12.1406 +	int32 numCheckerFns;
 12.1407 +	VReoIsland *islandOnOtherSide;
 12.1408 +	VReoCheckerFn *checkerFns;
 12.1409 +	VReoDoerFn *doerFns;
 12.1410 +
 12.1411 +	VReoO1island *o1islandOnOtherSide;
 12.1412 +	VReoPartnerQStruct *partnerQstruct;
 12.1413 +
 12.1414 +	if (bridge->writerType == Island) {
 12.1415 +		islandOnOtherSide = (VReoIsland*) bridge->writer;
 12.1416 +		numCheckerFns = bridge->numWriterCheckerFns;
 12.1417 +		checkerFns = bridge->writerCheckerFns;
 12.1418 +		doerFns = bridge->writerDoerFns;
 12.1419 +
 12.1420 +		VReo__check_an_island( islandOnOtherSide, numCheckerFns, checkerFns, doerFns );
 12.1421 +    }
 12.1422 +
 12.1423 +	else if (bridge->writerType == O1island) { 
 12.1424 +		o1islandOnOtherSide = (VReoO1island *)bridge->writer;
 12.1425 +		partnerQstruct = bridge->writerPartnerQStruct;
 12.1426 +
 12.1427 +		VReo__check_an_o1island_that_writes_bridge( o1islandOnOtherSide, bridge, partnerQstruct );
 12.1428 +    }
 12.1429 +}
 12.1430 +
 12.1431 +void Auxdoer_for_bridge_In_3Output0( VReoBridge *bridge ) {
 12.1432 +	int32 numCheckerFns;
 12.1433 +	VReoIsland *islandOnOtherSide;
 12.1434 +	VReoCheckerFn *checkerFns;
 12.1435 +	VReoDoerFn *doerFns;
 12.1436 +
 12.1437 +	VReoO1island *o1islandOnOtherSide;
 12.1438 +	VReoPartnerQStruct *partnerQstruct;
 12.1439 +
 12.1440 +	if (bridge->readerType == Island) {
 12.1441 +		islandOnOtherSide = (VReoIsland*) bridge->reader;
 12.1442 +		numCheckerFns = bridge->numReaderCheckerFns;
 12.1443 +		checkerFns = bridge->readerCheckerFns;
 12.1444 +		doerFns = bridge->readerDoerFns;
 12.1445 +
 12.1446 +		VReo__check_an_island( islandOnOtherSide, numCheckerFns, checkerFns, doerFns );
 12.1447 +    }
 12.1448 +
 12.1449 +    else if (bridge->readerType == O1island) { 
 12.1450 +    	o1islandOnOtherSide = (VReoO1island *)bridge->reader;
 12.1451 +    	partnerQstruct =  bridge->readerPartnerQStruct;
 12.1452 +
 12.1453 +    	VReo__check_an_o1island_that_reads_bridge( o1islandOnOtherSide, bridge, partnerQstruct );
 12.1454 +    }
 12.1455 +}
 12.1456 +void Auxdoer_for_bridge_Out_0Input0( VReoBridge *bridge ) {
 12.1457 +	int32 numCheckerFns;
 12.1458 +	VReoIsland *islandOnOtherSide;
 12.1459 +	VReoCheckerFn *checkerFns;
 12.1460 +	VReoDoerFn *doerFns;
 12.1461 +
 12.1462 +	VReoO1island *o1islandOnOtherSide;
 12.1463 +	VReoPartnerQStruct *partnerQstruct;
 12.1464 +
 12.1465 +	if (bridge->writerType == Island) {
 12.1466 +		islandOnOtherSide = (VReoIsland*) bridge->writer;
 12.1467 +		numCheckerFns = bridge->numWriterCheckerFns;
 12.1468 +		checkerFns = bridge->writerCheckerFns;
 12.1469 +		doerFns = bridge->writerDoerFns;
 12.1470 +
 12.1471 +		VReo__check_an_island( islandOnOtherSide, numCheckerFns, checkerFns, doerFns );
 12.1472 +    }
 12.1473 +
 12.1474 +	else if (bridge->writerType == O1island) { 
 12.1475 +		o1islandOnOtherSide = (VReoO1island *)bridge->writer;
 12.1476 +		partnerQstruct = bridge->writerPartnerQStruct;
 12.1477 +
 12.1478 +		VReo__check_an_o1island_that_writes_bridge( o1islandOnOtherSide, bridge, partnerQstruct );
 12.1479 +    }
 12.1480 +}
 12.1481 +
 12.1482 +void Auxdoer_for_bridge_Broad_0Output4( VReoBridge *bridge ) {
 12.1483 +	int32 numCheckerFns;
 12.1484 +	VReoIsland *islandOnOtherSide;
 12.1485 +	VReoCheckerFn *checkerFns;
 12.1486 +	VReoDoerFn *doerFns;
 12.1487 +
 12.1488 +	VReoO1island *o1islandOnOtherSide;
 12.1489 +	VReoPartnerQStruct *partnerQstruct;
 12.1490 +
 12.1491 +	if (bridge->readerType == Island) {
 12.1492 +		islandOnOtherSide = (VReoIsland*) bridge->reader;
 12.1493 +		numCheckerFns = bridge->numReaderCheckerFns;
 12.1494 +		checkerFns = bridge->readerCheckerFns;
 12.1495 +		doerFns = bridge->readerDoerFns;
 12.1496 +
 12.1497 +		VReo__check_an_island( islandOnOtherSide, numCheckerFns, checkerFns, doerFns );
 12.1498 +    }
 12.1499 +
 12.1500 +    else if (bridge->readerType == O1island) { 
 12.1501 +    	o1islandOnOtherSide = (VReoO1island *)bridge->reader;
 12.1502 +    	partnerQstruct =  bridge->readerPartnerQStruct;
 12.1503 +
 12.1504 +    	VReo__check_an_o1island_that_reads_bridge( o1islandOnOtherSide, bridge, partnerQstruct );
 12.1505 +    }
 12.1506 +}
 12.1507 +void Auxdoer_for_bridge_X_3Input0( VReoBridge *bridge ) {
 12.1508 +	int32 numCheckerFns;
 12.1509 +	VReoIsland *islandOnOtherSide;
 12.1510 +	VReoCheckerFn *checkerFns;
 12.1511 +	VReoDoerFn *doerFns;
 12.1512 +
 12.1513 +	VReoO1island *o1islandOnOtherSide;
 12.1514 +	VReoPartnerQStruct *partnerQstruct;
 12.1515 +
 12.1516 +	if (bridge->writerType == Island) {
 12.1517 +		islandOnOtherSide = (VReoIsland*) bridge->writer;
 12.1518 +		numCheckerFns = bridge->numWriterCheckerFns;
 12.1519 +		checkerFns = bridge->writerCheckerFns;
 12.1520 +		doerFns = bridge->writerDoerFns;
 12.1521 +
 12.1522 +		VReo__check_an_island( islandOnOtherSide, numCheckerFns, checkerFns, doerFns );
 12.1523 +    }
 12.1524 +
 12.1525 +	else if (bridge->writerType == O1island) { 
 12.1526 +		o1islandOnOtherSide = (VReoO1island *)bridge->writer;
 12.1527 +		partnerQstruct = bridge->writerPartnerQStruct;
 12.1528 +
 12.1529 +		VReo__check_an_o1island_that_writes_bridge( o1islandOnOtherSide, bridge, partnerQstruct );
 12.1530 +    }
 12.1531 +}
 12.1532 \ No newline at end of file
    13.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    13.2 +++ b/Reo__Matrix_Mult/k_4/Circuit.h	Sat Jul 12 20:21:47 2014 +0200
    13.3 @@ -0,0 +1,244 @@
    13.4 +#ifndef _Circuit_App1_H
    13.5 +#define	_Circuit_App1_H
    13.6 +
    13.7 +//#include "PR_impl/PR.h"
    13.8 +//#include "VReo_impl/VReo.h"
    13.9 +#include <PR__include/PR__structs__common.h>
   13.10 +#include <PR__include/langlets/vreo_wrapper_library.h>
   13.11 +
   13.12 +//==============================================================================
   13.13 +
   13.14 +/* Counts. */
   13.15 +#define NUM_VPs 7
   13.16 +#define NUM_PROD 5
   13.17 +#define NUM_ISLANDS 5
   13.18 +#define NUM_O1ISLANDS 1
   13.19 +#define NUM_BRIDGES 15
   13.20 +#define NUM_BOUNDARY_BRIDGES 7
   13.21 +
   13.22 +/* Producer VPs attached to circuit. */
   13.23 +#define CKT_VP_PROD0 0
   13.24 +#define CKT_VP_PROD1 1
   13.25 +#define CKT_VP_PROD2 2
   13.26 +#define CKT_VP_PROD3 3
   13.27 +#define CKT_VP_PROD4 4
   13.28 +
   13.29 +/* Consumer VPs attached to circuit. */
   13.30 +// #define CKT_VP_CONS0 (5+0)
   13.31 +// #define CKT_VP_CONS1 (5+1)
   13.32 +#define CKT_VP_CONS0 5
   13.33 +
   13.34 +/* Islands in circuit. */
   13.35 +#define CKT_I0 0
   13.36 +#define CKT_I1 1
   13.37 +#define CKT_I2 2
   13.38 +#define CKT_I3 3
   13.39 +#define CKT_I4 4
   13.40 +
   13.41 +/* O1Islands in circuit. */
   13.42 +#define CKT_O1I0 0
   13.43 +
   13.44 +/* Bridges in circuit. */
   13.45 +#define CKT_BRIDGE_Broad_0 0
   13.46 +#define CKT_BRIDGE_In_0 1
   13.47 +#define CKT_BRIDGE_In_1 2
   13.48 +#define CKT_BRIDGE_In_2 3
   13.49 +#define CKT_BRIDGE_In_3 4
   13.50 +#define CKT_BRIDGE_Out_0 5
   13.51 +#define CKT_BRIDGE_Out_1 6
   13.52 +
   13.53 +#define CKT_BRIDGE_FIFO0 (7+0)
   13.54 +#define CKT_BRIDGE_In_0Output1 (7+0)
   13.55 +#define CKT_BRIDGE_Out_0Input3 (7+0)
   13.56 +
   13.57 +#define CKT_BRIDGE_FIFO1 (7+1)
   13.58 +#define CKT_BRIDGE_Broad_0Output1 (7+1)
   13.59 +#define CKT_BRIDGE_X_0Input0 (7+1)
   13.60 +
   13.61 +#define CKT_BRIDGE_FIFO2 (7+2)
   13.62 +#define CKT_BRIDGE_In_1Output0 (7+2)
   13.63 +#define CKT_BRIDGE_Out_0Input2 (7+2)
   13.64 +
   13.65 +#define CKT_BRIDGE_FIFO3 (7+3)
   13.66 +#define CKT_BRIDGE_Broad_0Output2 (7+3)
   13.67 +#define CKT_BRIDGE_X_1Input0 (7+3)
   13.68 +
   13.69 +#define CKT_BRIDGE_FIFO4 (7+4)
   13.70 +#define CKT_BRIDGE_In_2Output0 (7+4)
   13.71 +#define CKT_BRIDGE_Out_0Input1 (7+4)
   13.72 +
   13.73 +#define CKT_BRIDGE_FIFO5 (7+5)
   13.74 +#define CKT_BRIDGE_Broad_0Output3 (7+5)
   13.75 +#define CKT_BRIDGE_X_2Input0 (7+5)
   13.76 +
   13.77 +#define CKT_BRIDGE_FIFO6 (7+6)
   13.78 +#define CKT_BRIDGE_In_3Output0 (7+6)
   13.79 +#define CKT_BRIDGE_Out_0Input0 (7+6)
   13.80 +
   13.81 +#define CKT_BRIDGE_FIFO7 (7+7)
   13.82 +#define CKT_BRIDGE_Broad_0Output4 (7+7)
   13.83 +#define CKT_BRIDGE_X_3Input0 (7+7)
   13.84 +
   13.85 +/* Bridges in Island 0. */
   13.86 +#define I0_BRIDGE_Broad_0Output1 0
   13.87 +#define I0_BRIDGE_Broad_0Output2 1
   13.88 +#define I0_BRIDGE_Broad_0Output3 2
   13.89 +#define I0_BRIDGE_Out_1 3
   13.90 +#define I0_BRIDGE_Broad_0 4
   13.91 +#define I0_BRIDGE_Broad_0Output4 5
   13.92 +
   13.93 +/* Bridges in Island 1. */
   13.94 +#define I1_BRIDGE_X_0Input0 0
   13.95 +#define I1_BRIDGE_In_0 1
   13.96 +#define I1_BRIDGE_In_0Output1 2
   13.97 +
   13.98 +/* Bridges in Island 2. */
   13.99 +#define I2_BRIDGE_In_1Output0 0
  13.100 +#define I2_BRIDGE_In_1 1
  13.101 +#define I2_BRIDGE_X_1Input0 2
  13.102 +
  13.103 +/* Bridges in Island 3. */
  13.104 +#define I3_BRIDGE_In_2 0
  13.105 +#define I3_BRIDGE_X_2Input0 1
  13.106 +#define I3_BRIDGE_In_2Output0 2
  13.107 +
  13.108 +/* Bridges in Island 4. */
  13.109 +#define I4_BRIDGE_In_3 0
  13.110 +#define I4_BRIDGE_X_3Input0 1
  13.111 +#define I4_BRIDGE_In_3Output0 2
  13.112 +
  13.113 +/* Bridges in O1Island 0. */
  13.114 +#define O1I0_BRIDGE_Out_0Input3 0
  13.115 +#define O1I0_BRIDGE_Out_0 1
  13.116 +#define O1I0_BRIDGE_Out_0Input2 2
  13.117 +#define O1I0_BRIDGE_Out_0Input1 3
  13.118 +#define O1I0_BRIDGE_Out_0Input0 4
  13.119 +
  13.120 +/* Readiness of boundary bridges. */
  13.121 +#define READY_FOR_READ_BRIDGE_Broad_0 bridgeBroad_0->bridgeIsFull
  13.122 +#define READY_FOR_READ_BRIDGE_In_0 bridgeIn_0->bridgeIsFull
  13.123 +#define READY_FOR_READ_BRIDGE_In_1 bridgeIn_1->bridgeIsFull
  13.124 +#define READY_FOR_READ_BRIDGE_In_2 bridgeIn_2->bridgeIsFull
  13.125 +#define READY_FOR_READ_BRIDGE_In_3 bridgeIn_3->bridgeIsFull
  13.126 +#define READY_FOR_WRITE_BRIDGE_Out_0 bridgeOut_0->waitingReaderVP
  13.127 +#define READY_FOR_WRITE_BRIDGE_Out_1 bridgeOut_1->waitingReaderVP
  13.128 +
  13.129 +/* Readiness of bridges of FIFO 0. */ 
  13.130 +#define READY_FOR_WRITE_BRIDGE_In_0Output1 !bridgeIn_0Output1->bridgeIsFull
  13.131 +#define READY_FOR_READ_BRIDGE_Out_0Input3 bridgeOut_0Input3->bridgeIsFull
  13.132 +
  13.133 +/* Readiness of bridges of FIFO 1. */ 
  13.134 +#define READY_FOR_WRITE_BRIDGE_Broad_0Output1 !bridgeBroad_0Output1->bridgeIsFull
  13.135 +#define READY_FOR_READ_BRIDGE_X_0Input0 bridgeX_0Input0->bridgeIsFull
  13.136 +
  13.137 +/* Readiness of bridges of FIFO 2. */ 
  13.138 +#define READY_FOR_WRITE_BRIDGE_In_1Output0 !bridgeIn_1Output0->bridgeIsFull
  13.139 +#define READY_FOR_READ_BRIDGE_Out_0Input2 bridgeOut_0Input2->bridgeIsFull
  13.140 +
  13.141 +/* Readiness of bridges of FIFO 3. */ 
  13.142 +#define READY_FOR_WRITE_BRIDGE_Broad_0Output2 !bridgeBroad_0Output2->bridgeIsFull
  13.143 +#define READY_FOR_READ_BRIDGE_X_1Input0 bridgeX_1Input0->bridgeIsFull
  13.144 +
  13.145 +/* Readiness of bridges of FIFO 4. */ 
  13.146 +#define READY_FOR_WRITE_BRIDGE_In_2Output0 !bridgeIn_2Output0->bridgeIsFull
  13.147 +#define READY_FOR_READ_BRIDGE_Out_0Input1 bridgeOut_0Input1->bridgeIsFull
  13.148 +
  13.149 +/* Readiness of bridges of FIFO 5. */ 
  13.150 +#define READY_FOR_WRITE_BRIDGE_Broad_0Output3 !bridgeBroad_0Output3->bridgeIsFull
  13.151 +#define READY_FOR_READ_BRIDGE_X_2Input0 bridgeX_2Input0->bridgeIsFull
  13.152 +
  13.153 +/* Readiness of bridges of FIFO 6. */ 
  13.154 +#define READY_FOR_WRITE_BRIDGE_In_3Output0 !bridgeIn_3Output0->bridgeIsFull
  13.155 +#define READY_FOR_READ_BRIDGE_Out_0Input0 bridgeOut_0Input0->bridgeIsFull
  13.156 +
  13.157 +/* Readiness of bridges of FIFO 7. */ 
  13.158 +#define READY_FOR_WRITE_BRIDGE_Broad_0Output4 !bridgeBroad_0Output4->bridgeIsFull
  13.159 +#define READY_FOR_READ_BRIDGE_X_3Input0 bridgeX_3Input0->bridgeIsFull
  13.160 +
  13.161 +/* Number of checkers per bridge in Island 0. */
  13.162 +#define NUM_I0_CHECKERS_INVOLVE_BRIDGE_Broad_0Output1 1
  13.163 +#define NUM_I0_CHECKERS_INVOLVE_BRIDGE_Broad_0Output2 1
  13.164 +#define NUM_I0_CHECKERS_INVOLVE_BRIDGE_Broad_0Output3 1
  13.165 +#define NUM_I0_CHECKERS_INVOLVE_BRIDGE_Out_1 1
  13.166 +#define NUM_I0_CHECKERS_INVOLVE_BRIDGE_Broad_0 1
  13.167 +#define NUM_I0_CHECKERS_INVOLVE_BRIDGE_Broad_0Output4 1
  13.168 +
  13.169 +/* Number of checkers per bridge in Island 1. */
  13.170 +#define NUM_I1_CHECKERS_INVOLVE_BRIDGE_X_0Input0 1
  13.171 +#define NUM_I1_CHECKERS_INVOLVE_BRIDGE_In_0 1
  13.172 +#define NUM_I1_CHECKERS_INVOLVE_BRIDGE_In_0Output1 1
  13.173 +
  13.174 +/* Number of checkers per bridge in Island 2. */
  13.175 +#define NUM_I2_CHECKERS_INVOLVE_BRIDGE_In_1Output0 1
  13.176 +#define NUM_I2_CHECKERS_INVOLVE_BRIDGE_In_1 1
  13.177 +#define NUM_I2_CHECKERS_INVOLVE_BRIDGE_X_1Input0 1
  13.178 +
  13.179 +/* Number of checkers per bridge in Island 3. */
  13.180 +#define NUM_I3_CHECKERS_INVOLVE_BRIDGE_In_2 1
  13.181 +#define NUM_I3_CHECKERS_INVOLVE_BRIDGE_X_2Input0 1
  13.182 +#define NUM_I3_CHECKERS_INVOLVE_BRIDGE_In_2Output0 1
  13.183 +
  13.184 +/* Number of checkers per bridge in Island 4. */
  13.185 +#define NUM_I4_CHECKERS_INVOLVE_BRIDGE_In_3 1
  13.186 +#define NUM_I4_CHECKERS_INVOLVE_BRIDGE_X_3Input0 1
  13.187 +#define NUM_I4_CHECKERS_INVOLVE_BRIDGE_In_3Output0 1
  13.188 +
  13.189 +/* Checkers and doers for Island 0. */
  13.190 +#define CHECKER2_I0 Checker_0__I0
  13.191 +#define    DOER2_I0 Doer_0__I0
  13.192 +
  13.193 +/* Checkers and doers for Island 1. */
  13.194 +#define CHECKER2_I1 Checker_0__I1
  13.195 +#define    DOER2_I1 Doer_0__I1
  13.196 +
  13.197 +/* Checkers and doers for Island 2. */
  13.198 +#define CHECKER3_I2 Checker_0__I2
  13.199 +#define    DOER3_I2 Doer_0__I2
  13.200 +
  13.201 +/* Checkers and doers for Island 3. */
  13.202 +#define CHECKER2_I3 Checker_0__I3
  13.203 +#define    DOER2_I3 Doer_0__I3
  13.204 +
  13.205 +/* Checkers and doers for Island 4. */
  13.206 +#define CHECKER3_I4 Checker_0__I4
  13.207 +#define    DOER3_I4 Doer_0__I4
  13.208 +
  13.209 +//==============================================================================
  13.210 +
  13.211 +/* Create VPs and connect. */
  13.212 +void create_VPs_and_connect( VReoCircuit *circuit, SlaveVP *animVP );
  13.213 +
  13.214 +/* Create circuit. */
  13.215 +VReoCircuit * create_circuit( SlaveVP *animVP );
  13.216 +
  13.217 +/* Checkers of Island 0. */
  13.218 +bool32 Checker_0__I0( VReoIsland *island );
  13.219 +
  13.220 +/* Checkers of Island 1. */
  13.221 +bool32 Checker_0__I1( VReoIsland *island );
  13.222 +
  13.223 +/* Checkers of Island 2. */
  13.224 +bool32 Checker_0__I2( VReoIsland *island );
  13.225 +
  13.226 +/* Checkers of Island 3. */
  13.227 +bool32 Checker_0__I3( VReoIsland *island );
  13.228 +
  13.229 +/* Checkers of Island 4. */
  13.230 +bool32 Checker_0__I4( VReoIsland *island );
  13.231 +
  13.232 +/* Doers of Island 0. */
  13.233 +void Doer_0__I0( VReoIsland *island );
  13.234 +
  13.235 +/* Doers of Island 1. */
  13.236 +void Doer_0__I1( VReoIsland *island );
  13.237 +
  13.238 +/* Doers of Island 2. */
  13.239 +void Doer_0__I2( VReoIsland *island );
  13.240 +
  13.241 +/* Doers of Island 3. */
  13.242 +void Doer_0__I3( VReoIsland *island );
  13.243 +
  13.244 +/* Doers of Island 4. */
  13.245 +void Doer_0__I4( VReoIsland *island );
  13.246 +
  13.247 +#endif	/* _Circuit_App1_H */
  13.248 \ No newline at end of file
    14.1 --- a/main.c	Wed Feb 19 09:27:10 2014 -0800
    14.2 +++ b/main.c	Sat Jul 12 20:21:47 2014 +0200
    14.3 @@ -1,4 +1,9 @@
    14.4 -#include <malloc.h>
    14.5 +#ifdef RTEMS
    14.6 +
    14.7 +#include <mppa/osconfig.h>
    14.8 +
    14.9 +#endif
   14.10 +
   14.11  #include <stdlib.h>
   14.12  #include <PR__include/PR__WL.h>
   14.13  
   14.14 @@ -9,10 +14,9 @@
   14.15  
   14.16  // =============================================================================
   14.17  
   14.18 -int NUM_ITER;
   14.19 +int numIterations;
   14.20  
   14.21 -
   14.22 -int main(int argc, char **argv) 
   14.23 +int main(int argc, char **argv)
   14.24   { Matrix      *leftMatrix, *rightMatrix, *resultMatrix;
   14.25     ParamBag    *paramBag;
   14.26     MatrixMultWorkUnit **workUnits;
   14.27 @@ -24,10 +28,10 @@
   14.28     
   14.29           DEBUG__printf(TRUE, "arguments --  numIter: %s | path: %s", argv[1], argv[2] );
   14.30     if(argc < 3) {printf("give: num iter and path to param file on cmd line\n"); exit(1);}
   14.31 -   NUM_ITER = atoi(argv[1]);
   14.32 -   numUnitsToMake = NUM_PROD;  //defined by Reo circuit generator
   14.33 +   numIterations = atoi(argv[1]);
   14.34 +   numUnitsToMake = NUM_PROD-1;  //defined by Reo circuit generator
   14.35     
   14.36 -         printf("[reo] Settings: %i workers, %i iterations | file: %s \n", NUM_PROD, NUM_ITER, argv[2]);
   14.37 +         printf("[reo] Settings: %i workers, %i iterations | file: %s \n", NUM_PROD, numIterations, argv[2]);
   14.38  
   14.39           set_up_performance_counters();
   14.40     
   14.41 @@ -57,32 +61,20 @@
   14.42   * VPs, as they are created.
   14.43   *Need a dummy work unit added to end of work-unit array, to avoid a seg
   14.44   * fault -- just did a bad hack inside divideWork.
   14.45 -   //Now, create params struct for each producer -- holds work unit
   14.46 -   for( vpIdx=0; vpIdx<numUnitsToMake; vpIdx++)
   14.47 -    {
   14.48 -      vpParams = PR__malloc( sizeof(VPParams) );
   14.49 -      prodParams = PR__malloc( sizeof(ProdParams) );
   14.50 -      
   14.51 -      vpParams->initData = prodParams; 
   14.52 -      vpParamsArray[vpIdx] = vpParams;
   14.53 -    }
   14.54 -  //create params for consumer
   14.55 -           
   14.56 -   vpParams = PR__malloc( sizeof(VPParams) );
   14.57 -     = malloc( sizeof(ProdParams) );
   14.58 -      
   14.59 -   vpParams->initData = 
   14.60 -   vpParamsArray[vpIdx] = vpParams; //this last entry is for the consumer
   14.61 -*/
   14.62 -   
   14.63 + */  
   14.64     matrixMultProcess = PR__create_process( &matrix_mult__seed_Fn, 
   14.65                                                  workUnits );
   14.66     
   14.67     PR__wait_for_process_to_end(matrixMultProcess);
   14.68     PR__wait_for_all_activity_to_end();
   14.69 +         DEBUG__printf(dbgAppFlow, "activity ended, about to call PR__shutdown");
   14.70     fflush(stdout);
   14.71     PR__shutdown();
   14.72 -   
   14.73 +
   14.74 +   printf("Something with done..\n\n");
   14.75 +   usleep(1000);
   14.76 +   fflush(stdout);
   14.77 +
   14.78     exit(0);
   14.79   }
   14.80  
    15.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    15.2 +++ b/nb__Reo_matrix_mult/.dep.inc	Sat Jul 12 20:21:47 2014 +0200
    15.3 @@ -0,0 +1,5 @@
    15.4 +# This code depends on make tool being used
    15.5 +DEPFILES=$(wildcard $(addsuffix .d, ${OBJECTFILES}))
    15.6 +ifneq (${DEPFILES},)
    15.7 +include ${DEPFILES}
    15.8 +endif
    16.1 --- a/nb__Reo_matrix_mult/nbproject/Makefile-Debug_Sequential.mk	Wed Feb 19 09:27:10 2014 -0800
    16.2 +++ b/nb__Reo_matrix_mult/nbproject/Makefile-Debug_Sequential.mk	Sat Jul 12 20:21:47 2014 +0200
    16.3 @@ -59,66 +59,78 @@
    16.4  ASFLAGS=
    16.5  
    16.6  # Link Libraries and Options
    16.7 -LDLIBSOPTIONS=-L../../PR__lib -lpr__ml__sharedmem__dku_debug -lprmalloc -lprparam -lprqueue -lreo_wrapper_lib_opt1
    16.8 +LDLIBSOPTIONS=-L../../PR__lib -Wl,-rpath,../../PR__lib -lprmalloc -lprparam -lprqueue -lm -Wl,-rpath,/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/library__Reo_opt1/nb__reo_opt1_wrapper_lib__as_lib/../../PR__lib -L/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/library__Reo_opt1/nb__reo_opt1_wrapper_lib__as_lib/../../PR__lib -lreo_opt1_ml_lib -Wl,-rpath,/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/library__proto-runtime/nb__PR__ML__wDKU__lib/../../PR__lib -L/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/library__proto-runtime/nb__PR__ML__wDKU__lib/../../PR__lib -lpr__ml__sharedmem_debug_seq
    16.9  
   16.10  # Build Targets
   16.11  .build-conf: ${BUILD_SUBPROJECTS}
   16.12 -	"${MAKE}"  -f nbproject/Makefile-${CND_CONF}.mk ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/nb__reo_matrix_mult
   16.13 +	"${MAKE}"  -f nbproject/Makefile-${CND_CONF}.mk ../../dist/bin/reo_matrix_mult__debug_seq
   16.14  
   16.15 -${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/nb__reo_matrix_mult: ${OBJECTFILES}
   16.16 -	${MKDIR} -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}
   16.17 -	${LINK.c} -o ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/nb__reo_matrix_mult ${OBJECTFILES} ${LDLIBSOPTIONS}
   16.18 +../../dist/bin/reo_matrix_mult__debug_seq: /win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/library__Reo_opt1/nb__reo_opt1_wrapper_lib__as_lib/../../PR__lib/libreo_opt1_ml_lib.so
   16.19 +
   16.20 +../../dist/bin/reo_matrix_mult__debug_seq: /win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/library__proto-runtime/nb__PR__ML__wDKU__lib/../../PR__lib/libpr__ml__sharedmem_debug_seq.so
   16.21 +
   16.22 +../../dist/bin/reo_matrix_mult__debug_seq: ${OBJECTFILES}
   16.23 +	${MKDIR} -p ../../dist/bin
   16.24 +	${LINK.c} -o ../../dist/bin/reo_matrix_mult__debug_seq ${OBJECTFILES} ${LDLIBSOPTIONS}
   16.25  
   16.26  ${OBJECTDIR}/_ext/1472/Matrix_Mult.o: ../Matrix_Mult.c 
   16.27  	${MKDIR} -p ${OBJECTDIR}/_ext/1472
   16.28  	${RM} "$@.d"
   16.29 -	$(COMPILE.c) -g -DDEBUG__SEQUENTIAL_MODE -DDEBUG__TURN_ON_DEBUG_PRINT -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1472/Matrix_Mult.o ../Matrix_Mult.c
   16.30 +	$(COMPILE.c) -g -DDEBUG__TURN_ON_DEBUG_PRINT -DDEBUG__TURN_ON_SEQUENTIAL_MODE -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1472/Matrix_Mult.o ../Matrix_Mult.c
   16.31  
   16.32  ${OBJECTDIR}/_ext/1539317932/ParamBag.o: ../ParamHelper/ParamBag.c 
   16.33  	${MKDIR} -p ${OBJECTDIR}/_ext/1539317932
   16.34  	${RM} "$@.d"
   16.35 -	$(COMPILE.c) -g -DDEBUG__SEQUENTIAL_MODE -DDEBUG__TURN_ON_DEBUG_PRINT -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1539317932/ParamBag.o ../ParamHelper/ParamBag.c
   16.36 +	$(COMPILE.c) -g -DDEBUG__TURN_ON_DEBUG_PRINT -DDEBUG__TURN_ON_SEQUENTIAL_MODE -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1539317932/ParamBag.o ../ParamHelper/ParamBag.c
   16.37  
   16.38  ${OBJECTDIR}/_ext/1539317932/ReadParamsFromFile.o: ../ParamHelper/ReadParamsFromFile.c 
   16.39  	${MKDIR} -p ${OBJECTDIR}/_ext/1539317932
   16.40  	${RM} "$@.d"
   16.41 -	$(COMPILE.c) -g -DDEBUG__SEQUENTIAL_MODE -DDEBUG__TURN_ON_DEBUG_PRINT -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1539317932/ReadParamsFromFile.o ../ParamHelper/ReadParamsFromFile.c
   16.42 +	$(COMPILE.c) -g -DDEBUG__TURN_ON_DEBUG_PRINT -DDEBUG__TURN_ON_SEQUENTIAL_MODE -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1539317932/ReadParamsFromFile.o ../ParamHelper/ReadParamsFromFile.c
   16.43  
   16.44  ${OBJECTDIR}/_ext/1702716545/Circuit.o: ../Reo__Matrix_Mult/Circuit.c 
   16.45  	${MKDIR} -p ${OBJECTDIR}/_ext/1702716545
   16.46  	${RM} "$@.d"
   16.47 -	$(COMPILE.c) -g -DDEBUG__SEQUENTIAL_MODE -DDEBUG__TURN_ON_DEBUG_PRINT -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1702716545/Circuit.o ../Reo__Matrix_Mult/Circuit.c
   16.48 +	$(COMPILE.c) -g -DDEBUG__TURN_ON_DEBUG_PRINT -DDEBUG__TURN_ON_SEQUENTIAL_MODE -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1702716545/Circuit.o ../Reo__Matrix_Mult/Circuit.c
   16.49  
   16.50  ${OBJECTDIR}/_ext/1702716545/DivideWork.o: ../Reo__Matrix_Mult/DivideWork.c 
   16.51  	${MKDIR} -p ${OBJECTDIR}/_ext/1702716545
   16.52  	${RM} "$@.d"
   16.53 -	$(COMPILE.c) -g -DDEBUG__SEQUENTIAL_MODE -DDEBUG__TURN_ON_DEBUG_PRINT -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1702716545/DivideWork.o ../Reo__Matrix_Mult/DivideWork.c
   16.54 +	$(COMPILE.c) -g -DDEBUG__TURN_ON_DEBUG_PRINT -DDEBUG__TURN_ON_SEQUENTIAL_MODE -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1702716545/DivideWork.o ../Reo__Matrix_Mult/DivideWork.c
   16.55  
   16.56  ${OBJECTDIR}/_ext/1702716545/Producer_and_Consumer.o: ../Reo__Matrix_Mult/Producer_and_Consumer.c 
   16.57  	${MKDIR} -p ${OBJECTDIR}/_ext/1702716545
   16.58  	${RM} "$@.d"
   16.59 -	$(COMPILE.c) -g -DDEBUG__SEQUENTIAL_MODE -DDEBUG__TURN_ON_DEBUG_PRINT -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1702716545/Producer_and_Consumer.o ../Reo__Matrix_Mult/Producer_and_Consumer.c
   16.60 +	$(COMPILE.c) -g -DDEBUG__TURN_ON_DEBUG_PRINT -DDEBUG__TURN_ON_SEQUENTIAL_MODE -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1702716545/Producer_and_Consumer.o ../Reo__Matrix_Mult/Producer_and_Consumer.c
   16.61  
   16.62  ${OBJECTDIR}/_ext/1702716545/SeedVP.o: ../Reo__Matrix_Mult/SeedVP.c 
   16.63  	${MKDIR} -p ${OBJECTDIR}/_ext/1702716545
   16.64  	${RM} "$@.d"
   16.65 -	$(COMPILE.c) -g -DDEBUG__SEQUENTIAL_MODE -DDEBUG__TURN_ON_DEBUG_PRINT -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1702716545/SeedVP.o ../Reo__Matrix_Mult/SeedVP.c
   16.66 +	$(COMPILE.c) -g -DDEBUG__TURN_ON_DEBUG_PRINT -DDEBUG__TURN_ON_SEQUENTIAL_MODE -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1702716545/SeedVP.o ../Reo__Matrix_Mult/SeedVP.c
   16.67  
   16.68  ${OBJECTDIR}/_ext/1472/main.o: ../main.c 
   16.69  	${MKDIR} -p ${OBJECTDIR}/_ext/1472
   16.70  	${RM} "$@.d"
   16.71 -	$(COMPILE.c) -g -DDEBUG__SEQUENTIAL_MODE -DDEBUG__TURN_ON_DEBUG_PRINT -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1472/main.o ../main.c
   16.72 +	$(COMPILE.c) -g -DDEBUG__TURN_ON_DEBUG_PRINT -DDEBUG__TURN_ON_SEQUENTIAL_MODE -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1472/main.o ../main.c
   16.73  
   16.74  # Subprojects
   16.75  .build-subprojects:
   16.76 +	cd /win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/library__Reo_opt1/nb__reo_opt1_wrapper_lib__as_lib && ${MAKE}  -f Makefile CONF=Debug
   16.77 +	cd /win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/library__proto-runtime/nb__PR__ML__wDKU__lib && ${MAKE}  -f Makefile CONF=MEAS_ON
   16.78 +	cd /win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/library__Reo_opt1/nb__reo_opt1_wrapper_lib__as_lib && ${MAKE}  -f Makefile CONF=Debug
   16.79 +	cd /win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/library__proto-runtime/nb__PR__ML__wDKU__lib && ${MAKE}  -f Makefile CONF=MEAS_ON
   16.80  
   16.81  # Clean Targets
   16.82  .clean-conf: ${CLEAN_SUBPROJECTS}
   16.83  	${RM} -r ${CND_BUILDDIR}/${CND_CONF}
   16.84 -	${RM} ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/nb__reo_matrix_mult
   16.85 +	${RM} ../../dist/bin/reo_matrix_mult__debug_seq
   16.86  
   16.87  # Subprojects
   16.88  .clean-subprojects:
   16.89 +	cd /win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/library__Reo_opt1/nb__reo_opt1_wrapper_lib__as_lib && ${MAKE}  -f Makefile CONF=Debug clean
   16.90 +	cd /win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/library__proto-runtime/nb__PR__ML__wDKU__lib && ${MAKE}  -f Makefile CONF=MEAS_ON clean
   16.91 +	cd /win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/library__Reo_opt1/nb__reo_opt1_wrapper_lib__as_lib && ${MAKE}  -f Makefile CONF=Debug clean
   16.92 +	cd /win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/library__proto-runtime/nb__PR__ML__wDKU__lib && ${MAKE}  -f Makefile CONF=MEAS_ON clean
   16.93  
   16.94  # Enable dependency checking
   16.95  .dep.inc: .depcheck-impl
    17.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    17.2 +++ b/nb__Reo_matrix_mult/nbproject/Makefile-MEAS_ON.mk	Sat Jul 12 20:21:47 2014 +0200
    17.3 @@ -0,0 +1,126 @@
    17.4 +#
    17.5 +# Generated Makefile - do not edit!
    17.6 +#
    17.7 +# Edit the Makefile in the project folder instead (../Makefile). Each target
    17.8 +# has a -pre and a -post target defined where you can add customized code.
    17.9 +#
   17.10 +# This makefile implements configuration specific macros and targets.
   17.11 +
   17.12 +
   17.13 +# Environment
   17.14 +MKDIR=mkdir
   17.15 +CP=cp
   17.16 +GREP=grep
   17.17 +NM=nm
   17.18 +CCADMIN=CCadmin
   17.19 +RANLIB=ranlib
   17.20 +CC=gcc
   17.21 +CCC=g++
   17.22 +CXX=g++
   17.23 +FC=gfortran
   17.24 +AS=as
   17.25 +
   17.26 +# Macros
   17.27 +CND_PLATFORM=GNU-Linux-x86
   17.28 +CND_DLIB_EXT=so
   17.29 +CND_CONF=MEAS_ON
   17.30 +CND_DISTDIR=dist
   17.31 +CND_BUILDDIR=build
   17.32 +
   17.33 +# Include project Makefile
   17.34 +include Makefile
   17.35 +
   17.36 +# Object Directory
   17.37 +OBJECTDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}
   17.38 +
   17.39 +# Object Files
   17.40 +OBJECTFILES= \
   17.41 +	${OBJECTDIR}/_ext/1472/Matrix_Mult.o \
   17.42 +	${OBJECTDIR}/_ext/1539317932/ParamBag.o \
   17.43 +	${OBJECTDIR}/_ext/1539317932/ReadParamsFromFile.o \
   17.44 +	${OBJECTDIR}/_ext/1702716545/Circuit.o \
   17.45 +	${OBJECTDIR}/_ext/1702716545/DivideWork.o \
   17.46 +	${OBJECTDIR}/_ext/1702716545/Producer_and_Consumer.o \
   17.47 +	${OBJECTDIR}/_ext/1702716545/SeedVP.o \
   17.48 +	${OBJECTDIR}/_ext/1472/main.o
   17.49 +
   17.50 +
   17.51 +# C Compiler Flags
   17.52 +CFLAGS=
   17.53 +
   17.54 +# CC Compiler Flags
   17.55 +CCFLAGS=
   17.56 +CXXFLAGS=
   17.57 +
   17.58 +# Fortran Compiler Flags
   17.59 +FFLAGS=
   17.60 +
   17.61 +# Assembler Flags
   17.62 +ASFLAGS=
   17.63 +
   17.64 +# Link Libraries and Options
   17.65 +LDLIBSOPTIONS=-L../../PR__lib -Wl,-rpath,../../PR__lib -lprmalloc -lprparam -lprqueue -lm -lpr__ml__sharedmem__meas_on -lreo_opt1_ml_lib__meas_on
   17.66 +
   17.67 +# Build Targets
   17.68 +.build-conf: ${BUILD_SUBPROJECTS}
   17.69 +	"${MAKE}"  -f nbproject/Makefile-${CND_CONF}.mk ../../dist/bin/reo_matrix_mult__meas_on
   17.70 +
   17.71 +../../dist/bin/reo_matrix_mult__meas_on: ${OBJECTFILES}
   17.72 +	${MKDIR} -p ../../dist/bin
   17.73 +	${LINK.c} -o ../../dist/bin/reo_matrix_mult__meas_on ${OBJECTFILES} ${LDLIBSOPTIONS}
   17.74 +
   17.75 +${OBJECTDIR}/_ext/1472/Matrix_Mult.o: ../Matrix_Mult.c 
   17.76 +	${MKDIR} -p ${OBJECTDIR}/_ext/1472
   17.77 +	${RM} "$@.d"
   17.78 +	$(COMPILE.c) -g -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1472/Matrix_Mult.o ../Matrix_Mult.c
   17.79 +
   17.80 +${OBJECTDIR}/_ext/1539317932/ParamBag.o: ../ParamHelper/ParamBag.c 
   17.81 +	${MKDIR} -p ${OBJECTDIR}/_ext/1539317932
   17.82 +	${RM} "$@.d"
   17.83 +	$(COMPILE.c) -g -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1539317932/ParamBag.o ../ParamHelper/ParamBag.c
   17.84 +
   17.85 +${OBJECTDIR}/_ext/1539317932/ReadParamsFromFile.o: ../ParamHelper/ReadParamsFromFile.c 
   17.86 +	${MKDIR} -p ${OBJECTDIR}/_ext/1539317932
   17.87 +	${RM} "$@.d"
   17.88 +	$(COMPILE.c) -g -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1539317932/ReadParamsFromFile.o ../ParamHelper/ReadParamsFromFile.c
   17.89 +
   17.90 +${OBJECTDIR}/_ext/1702716545/Circuit.o: ../Reo__Matrix_Mult/Circuit.c 
   17.91 +	${MKDIR} -p ${OBJECTDIR}/_ext/1702716545
   17.92 +	${RM} "$@.d"
   17.93 +	$(COMPILE.c) -g -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1702716545/Circuit.o ../Reo__Matrix_Mult/Circuit.c
   17.94 +
   17.95 +${OBJECTDIR}/_ext/1702716545/DivideWork.o: ../Reo__Matrix_Mult/DivideWork.c 
   17.96 +	${MKDIR} -p ${OBJECTDIR}/_ext/1702716545
   17.97 +	${RM} "$@.d"
   17.98 +	$(COMPILE.c) -g -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1702716545/DivideWork.o ../Reo__Matrix_Mult/DivideWork.c
   17.99 +
  17.100 +${OBJECTDIR}/_ext/1702716545/Producer_and_Consumer.o: ../Reo__Matrix_Mult/Producer_and_Consumer.c 
  17.101 +	${MKDIR} -p ${OBJECTDIR}/_ext/1702716545
  17.102 +	${RM} "$@.d"
  17.103 +	$(COMPILE.c) -g -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1702716545/Producer_and_Consumer.o ../Reo__Matrix_Mult/Producer_and_Consumer.c
  17.104 +
  17.105 +${OBJECTDIR}/_ext/1702716545/SeedVP.o: ../Reo__Matrix_Mult/SeedVP.c 
  17.106 +	${MKDIR} -p ${OBJECTDIR}/_ext/1702716545
  17.107 +	${RM} "$@.d"
  17.108 +	$(COMPILE.c) -g -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1702716545/SeedVP.o ../Reo__Matrix_Mult/SeedVP.c
  17.109 +
  17.110 +${OBJECTDIR}/_ext/1472/main.o: ../main.c 
  17.111 +	${MKDIR} -p ${OBJECTDIR}/_ext/1472
  17.112 +	${RM} "$@.d"
  17.113 +	$(COMPILE.c) -g -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1472/main.o ../main.c
  17.114 +
  17.115 +# Subprojects
  17.116 +.build-subprojects:
  17.117 +
  17.118 +# Clean Targets
  17.119 +.clean-conf: ${CLEAN_SUBPROJECTS}
  17.120 +	${RM} -r ${CND_BUILDDIR}/${CND_CONF}
  17.121 +	${RM} ../../dist/bin/reo_matrix_mult__meas_on
  17.122 +
  17.123 +# Subprojects
  17.124 +.clean-subprojects:
  17.125 +
  17.126 +# Enable dependency checking
  17.127 +.dep.inc: .depcheck-impl
  17.128 +
  17.129 +include .dep.inc
    18.1 --- a/nb__Reo_matrix_mult/nbproject/Makefile-impl.mk	Wed Feb 19 09:27:10 2014 -0800
    18.2 +++ b/nb__Reo_matrix_mult/nbproject/Makefile-impl.mk	Sat Jul 12 20:21:47 2014 +0200
    18.3 @@ -31,7 +31,7 @@
    18.4  CONF=${DEFAULTCONF}
    18.5  
    18.6  # All Configurations
    18.7 -ALLCONFS=Debug Release Debug_Sequential 
    18.8 +ALLCONFS=Debug Release Debug_Sequential MEAS_ON longjmp longjmp_rtems longjmp_ARM longjmp_X86_static 
    18.9  
   18.10  
   18.11  # build
    19.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    19.2 +++ b/nb__Reo_matrix_mult/nbproject/Makefile-longjmp.mk	Sat Jul 12 20:21:47 2014 +0200
    19.3 @@ -0,0 +1,138 @@
    19.4 +#
    19.5 +# Generated Makefile - do not edit!
    19.6 +#
    19.7 +# Edit the Makefile in the project folder instead (../Makefile). Each target
    19.8 +# has a -pre and a -post target defined where you can add customized code.
    19.9 +#
   19.10 +# This makefile implements configuration specific macros and targets.
   19.11 +
   19.12 +
   19.13 +# Environment
   19.14 +MKDIR=mkdir
   19.15 +CP=cp
   19.16 +GREP=grep
   19.17 +NM=nm
   19.18 +CCADMIN=CCadmin
   19.19 +RANLIB=ranlib
   19.20 +CC=gcc
   19.21 +CCC=gcc
   19.22 +CXX=gcc
   19.23 +FC=gfortran
   19.24 +AS=as
   19.25 +
   19.26 +# Macros
   19.27 +CND_PLATFORM=GNU-Linux-x86
   19.28 +CND_DLIB_EXT=so
   19.29 +CND_CONF=longjmp
   19.30 +CND_DISTDIR=dist
   19.31 +CND_BUILDDIR=build
   19.32 +
   19.33 +# Include project Makefile
   19.34 +include Makefile
   19.35 +
   19.36 +# Object Directory
   19.37 +OBJECTDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}
   19.38 +
   19.39 +# Object Files
   19.40 +OBJECTFILES= \
   19.41 +	${OBJECTDIR}/_ext/1472/Matrix_Mult.o \
   19.42 +	${OBJECTDIR}/_ext/1539317932/ParamBag.o \
   19.43 +	${OBJECTDIR}/_ext/1539317932/ReadParamsFromFile.o \
   19.44 +	${OBJECTDIR}/_ext/1702716545/Circuit.o \
   19.45 +	${OBJECTDIR}/_ext/1702716545/DivideWork.o \
   19.46 +	${OBJECTDIR}/_ext/1702716545/Producer_and_Consumer.o \
   19.47 +	${OBJECTDIR}/_ext/1702716545/SeedVP.o \
   19.48 +	${OBJECTDIR}/_ext/1472/main.o
   19.49 +
   19.50 +
   19.51 +# C Compiler Flags
   19.52 +CFLAGS=
   19.53 +
   19.54 +# CC Compiler Flags
   19.55 +CCFLAGS=
   19.56 +CXXFLAGS=
   19.57 +
   19.58 +# Fortran Compiler Flags
   19.59 +FFLAGS=
   19.60 +
   19.61 +# Assembler Flags
   19.62 +ASFLAGS=
   19.63 +
   19.64 +# Link Libraries and Options
   19.65 +LDLIBSOPTIONS=-L../../PR__lib -Wl,-rpath,../../PR__lib -lprmalloc -lprparam -lprqueue -lm -Wl,-rpath,../../library__proto-runtime/nb__PR__ML__wDKU__lib/../../PR__lib -L../../library__proto-runtime/nb__PR__ML__wDKU__lib/../../PR__lib -lpr__ml__sharedmem__longjmp -Wl,-rpath,../../library__Reo_opt1/nb__reo_opt1_wrapper_lib__as_lib/../../PR__lib -L../../library__Reo_opt1/nb__reo_opt1_wrapper_lib__as_lib/../../PR__lib -lreo_opt1_ml_lib__longjmp
   19.66 +
   19.67 +# Build Targets
   19.68 +.build-conf: ${BUILD_SUBPROJECTS}
   19.69 +	"${MAKE}"  -f nbproject/Makefile-${CND_CONF}.mk ../../dist/bin/reo_matrix_mult__longjmp
   19.70 +
   19.71 +../../dist/bin/reo_matrix_mult__longjmp: ../../library__proto-runtime/nb__PR__ML__wDKU__lib/../../PR__lib/libpr__ml__sharedmem__longjmp.so
   19.72 +
   19.73 +../../dist/bin/reo_matrix_mult__longjmp: ../../library__Reo_opt1/nb__reo_opt1_wrapper_lib__as_lib/../../PR__lib/libreo_opt1_ml_lib__longjmp.so
   19.74 +
   19.75 +../../dist/bin/reo_matrix_mult__longjmp: ${OBJECTFILES}
   19.76 +	${MKDIR} -p ../../dist/bin
   19.77 +	gcc -o ../../dist/bin/reo_matrix_mult__longjmp ${OBJECTFILES} ${LDLIBSOPTIONS}
   19.78 +
   19.79 +${OBJECTDIR}/_ext/1472/Matrix_Mult.o: nbproject/Makefile-${CND_CONF}.mk ../Matrix_Mult.c 
   19.80 +	${MKDIR} -p ${OBJECTDIR}/_ext/1472
   19.81 +	${RM} "$@.d"
   19.82 +	$(COMPILE.c) -g -DX86 -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1472/Matrix_Mult.o ../Matrix_Mult.c
   19.83 +
   19.84 +${OBJECTDIR}/_ext/1539317932/ParamBag.o: nbproject/Makefile-${CND_CONF}.mk ../ParamHelper/ParamBag.c 
   19.85 +	${MKDIR} -p ${OBJECTDIR}/_ext/1539317932
   19.86 +	${RM} "$@.d"
   19.87 +	$(COMPILE.c) -g -DX86 -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1539317932/ParamBag.o ../ParamHelper/ParamBag.c
   19.88 +
   19.89 +${OBJECTDIR}/_ext/1539317932/ReadParamsFromFile.o: nbproject/Makefile-${CND_CONF}.mk ../ParamHelper/ReadParamsFromFile.c 
   19.90 +	${MKDIR} -p ${OBJECTDIR}/_ext/1539317932
   19.91 +	${RM} "$@.d"
   19.92 +	$(COMPILE.c) -g -DX86 -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1539317932/ReadParamsFromFile.o ../ParamHelper/ReadParamsFromFile.c
   19.93 +
   19.94 +${OBJECTDIR}/_ext/1702716545/Circuit.o: nbproject/Makefile-${CND_CONF}.mk ../Reo__Matrix_Mult/Circuit.c 
   19.95 +	${MKDIR} -p ${OBJECTDIR}/_ext/1702716545
   19.96 +	${RM} "$@.d"
   19.97 +	$(COMPILE.c) -g -DX86 -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1702716545/Circuit.o ../Reo__Matrix_Mult/Circuit.c
   19.98 +
   19.99 +${OBJECTDIR}/_ext/1702716545/DivideWork.o: nbproject/Makefile-${CND_CONF}.mk ../Reo__Matrix_Mult/DivideWork.c 
  19.100 +	${MKDIR} -p ${OBJECTDIR}/_ext/1702716545
  19.101 +	${RM} "$@.d"
  19.102 +	$(COMPILE.c) -g -DX86 -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1702716545/DivideWork.o ../Reo__Matrix_Mult/DivideWork.c
  19.103 +
  19.104 +${OBJECTDIR}/_ext/1702716545/Producer_and_Consumer.o: nbproject/Makefile-${CND_CONF}.mk ../Reo__Matrix_Mult/Producer_and_Consumer.c 
  19.105 +	${MKDIR} -p ${OBJECTDIR}/_ext/1702716545
  19.106 +	${RM} "$@.d"
  19.107 +	$(COMPILE.c) -g -DX86 -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1702716545/Producer_and_Consumer.o ../Reo__Matrix_Mult/Producer_and_Consumer.c
  19.108 +
  19.109 +${OBJECTDIR}/_ext/1702716545/SeedVP.o: nbproject/Makefile-${CND_CONF}.mk ../Reo__Matrix_Mult/SeedVP.c 
  19.110 +	${MKDIR} -p ${OBJECTDIR}/_ext/1702716545
  19.111 +	${RM} "$@.d"
  19.112 +	$(COMPILE.c) -g -DX86 -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1702716545/SeedVP.o ../Reo__Matrix_Mult/SeedVP.c
  19.113 +
  19.114 +${OBJECTDIR}/_ext/1472/main.o: nbproject/Makefile-${CND_CONF}.mk ../main.c 
  19.115 +	${MKDIR} -p ${OBJECTDIR}/_ext/1472
  19.116 +	${RM} "$@.d"
  19.117 +	$(COMPILE.c) -g -DX86 -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1472/main.o ../main.c
  19.118 +
  19.119 +# Subprojects
  19.120 +.build-subprojects:
  19.121 +	cd ../../library__proto-runtime/nb__PR__ML__wDKU__lib && ${MAKE}  -f Makefile CONF=longjmp
  19.122 +	cd ../../library__Reo_opt1/nb__reo_opt1_wrapper_lib__as_lib && ${MAKE}  -f Makefile CONF=longjmp
  19.123 +	cd ../../library__Reo_opt1/nb__reo_opt1_wrapper_lib__as_lib && ${MAKE}  -f Makefile CONF=longjmp
  19.124 +	cd ../../library__proto-runtime/nb__PR__ML__wDKU__lib && ${MAKE}  -f Makefile CONF=longjmp
  19.125 +
  19.126 +# Clean Targets
  19.127 +.clean-conf: ${CLEAN_SUBPROJECTS}
  19.128 +	${RM} -r ${CND_BUILDDIR}/${CND_CONF}
  19.129 +	${RM} ../../dist/bin/reo_matrix_mult__longjmp
  19.130 +
  19.131 +# Subprojects
  19.132 +.clean-subprojects:
  19.133 +	cd ../../library__proto-runtime/nb__PR__ML__wDKU__lib && ${MAKE}  -f Makefile CONF=longjmp clean
  19.134 +	cd ../../library__Reo_opt1/nb__reo_opt1_wrapper_lib__as_lib && ${MAKE}  -f Makefile CONF=longjmp clean
  19.135 +	cd ../../library__Reo_opt1/nb__reo_opt1_wrapper_lib__as_lib && ${MAKE}  -f Makefile CONF=longjmp clean
  19.136 +	cd ../../library__proto-runtime/nb__PR__ML__wDKU__lib && ${MAKE}  -f Makefile CONF=longjmp clean
  19.137 +
  19.138 +# Enable dependency checking
  19.139 +.dep.inc: .depcheck-impl
  19.140 +
  19.141 +include .dep.inc
    20.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    20.2 +++ b/nb__Reo_matrix_mult/nbproject/Makefile-longjmp_ARM.mk	Sat Jul 12 20:21:47 2014 +0200
    20.3 @@ -0,0 +1,150 @@
    20.4 +#
    20.5 +# Generated Makefile - do not edit!
    20.6 +#
    20.7 +# Edit the Makefile in the project folder instead (../Makefile). Each target
    20.8 +# has a -pre and a -post target defined where you can add customized code.
    20.9 +#
   20.10 +# This makefile implements configuration specific macros and targets.
   20.11 +
   20.12 +
   20.13 +# Environment
   20.14 +MKDIR=mkdir
   20.15 +CP=cp
   20.16 +GREP=grep
   20.17 +NM=nm
   20.18 +CCADMIN=CCadmin
   20.19 +RANLIB=ranlib
   20.20 +CC=arm-linux-gnueabihf-gcc
   20.21 +CCC=g++
   20.22 +CXX=g++
   20.23 +FC=gfortran
   20.24 +AS=arm-linux-gnueabihf-as
   20.25 +
   20.26 +# Macros
   20.27 +CND_PLATFORM=GNU_ARM-Linux-x86
   20.28 +CND_DLIB_EXT=so
   20.29 +CND_CONF=longjmp_ARM
   20.30 +CND_DISTDIR=dist
   20.31 +CND_BUILDDIR=build
   20.32 +
   20.33 +# Include project Makefile
   20.34 +include Makefile
   20.35 +
   20.36 +# Object Directory
   20.37 +OBJECTDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}
   20.38 +
   20.39 +# Object Files
   20.40 +OBJECTFILES= \
   20.41 +	${OBJECTDIR}/_ext/1472/Matrix_Mult.o \
   20.42 +	${OBJECTDIR}/_ext/1539317932/ParamBag.o \
   20.43 +	${OBJECTDIR}/_ext/1539317932/ReadParamsFromFile.o \
   20.44 +	${OBJECTDIR}/_ext/1702716545/Circuit.o \
   20.45 +	${OBJECTDIR}/_ext/1702716545/DivideWork.o \
   20.46 +	${OBJECTDIR}/_ext/1702716545/Producer_and_Consumer.o \
   20.47 +	${OBJECTDIR}/_ext/1702716545/SeedVP.o \
   20.48 +	${OBJECTDIR}/_ext/1472/main.o
   20.49 +
   20.50 +
   20.51 +# C Compiler Flags
   20.52 +CFLAGS=-O2
   20.53 +
   20.54 +# CC Compiler Flags
   20.55 +CCFLAGS=
   20.56 +CXXFLAGS=
   20.57 +
   20.58 +# Fortran Compiler Flags
   20.59 +FFLAGS=
   20.60 +
   20.61 +# Assembler Flags
   20.62 +ASFLAGS=
   20.63 +
   20.64 +# Link Libraries and Options
   20.65 +LDLIBSOPTIONS=-L../../PR__lib -Wl,-rpath,../../PR__lib ../../library__proto-runtime/nb__PR__ML__wDKU__lib/../../PR__lib_arm/pr__ml__wdku__lib.a ../../library__Reo_opt1/nb__reo_opt1_wrapper_lib__as_lib/../../PR__lib_arm/reo_opt1_wrapper_lib.a -lm -lpthread ../../PR__lib_arm/prdynarray.a ../../PR__lib_arm/prhistogram.a ../../PR__lib_arm/prlistofarrays.a ../../PR__lib_arm/prmalloc.a ../../PR__lib_arm/prparam.a ../../PR__lib_arm/prqueue.a
   20.66 +
   20.67 +# Build Targets
   20.68 +.build-conf: ${BUILD_SUBPROJECTS}
   20.69 +	"${MAKE}"  -f nbproject/Makefile-${CND_CONF}.mk ../../bin/ARM/reo_matrix_mult__longjmp
   20.70 +
   20.71 +../../bin/ARM/reo_matrix_mult__longjmp: ../../library__proto-runtime/nb__PR__ML__wDKU__lib/../../PR__lib_arm/pr__ml__wdku__lib.a
   20.72 +
   20.73 +../../bin/ARM/reo_matrix_mult__longjmp: ../../library__Reo_opt1/nb__reo_opt1_wrapper_lib__as_lib/../../PR__lib_arm/reo_opt1_wrapper_lib.a
   20.74 +
   20.75 +../../bin/ARM/reo_matrix_mult__longjmp: ../../PR__lib_arm/prdynarray.a
   20.76 +
   20.77 +../../bin/ARM/reo_matrix_mult__longjmp: ../../PR__lib_arm/prhistogram.a
   20.78 +
   20.79 +../../bin/ARM/reo_matrix_mult__longjmp: ../../PR__lib_arm/prlistofarrays.a
   20.80 +
   20.81 +../../bin/ARM/reo_matrix_mult__longjmp: ../../PR__lib_arm/prmalloc.a
   20.82 +
   20.83 +../../bin/ARM/reo_matrix_mult__longjmp: ../../PR__lib_arm/prparam.a
   20.84 +
   20.85 +../../bin/ARM/reo_matrix_mult__longjmp: ../../PR__lib_arm/prqueue.a
   20.86 +
   20.87 +../../bin/ARM/reo_matrix_mult__longjmp: ${OBJECTFILES}
   20.88 +	${MKDIR} -p ../../bin/ARM
   20.89 +	${LINK.c} -o ../../bin/ARM/reo_matrix_mult__longjmp ${OBJECTFILES} ${LDLIBSOPTIONS}
   20.90 +
   20.91 +${OBJECTDIR}/_ext/1472/Matrix_Mult.o: nbproject/Makefile-${CND_CONF}.mk ../Matrix_Mult.c 
   20.92 +	${MKDIR} -p ${OBJECTDIR}/_ext/1472
   20.93 +	${RM} "$@.d"
   20.94 +	$(COMPILE.c) -g -DARM -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1472/Matrix_Mult.o ../Matrix_Mult.c
   20.95 +
   20.96 +${OBJECTDIR}/_ext/1539317932/ParamBag.o: nbproject/Makefile-${CND_CONF}.mk ../ParamHelper/ParamBag.c 
   20.97 +	${MKDIR} -p ${OBJECTDIR}/_ext/1539317932
   20.98 +	${RM} "$@.d"
   20.99 +	$(COMPILE.c) -g -DARM -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1539317932/ParamBag.o ../ParamHelper/ParamBag.c
  20.100 +
  20.101 +${OBJECTDIR}/_ext/1539317932/ReadParamsFromFile.o: nbproject/Makefile-${CND_CONF}.mk ../ParamHelper/ReadParamsFromFile.c 
  20.102 +	${MKDIR} -p ${OBJECTDIR}/_ext/1539317932
  20.103 +	${RM} "$@.d"
  20.104 +	$(COMPILE.c) -g -DARM -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1539317932/ReadParamsFromFile.o ../ParamHelper/ReadParamsFromFile.c
  20.105 +
  20.106 +${OBJECTDIR}/_ext/1702716545/Circuit.o: nbproject/Makefile-${CND_CONF}.mk ../Reo__Matrix_Mult/Circuit.c 
  20.107 +	${MKDIR} -p ${OBJECTDIR}/_ext/1702716545
  20.108 +	${RM} "$@.d"
  20.109 +	$(COMPILE.c) -g -DARM -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1702716545/Circuit.o ../Reo__Matrix_Mult/Circuit.c
  20.110 +
  20.111 +${OBJECTDIR}/_ext/1702716545/DivideWork.o: nbproject/Makefile-${CND_CONF}.mk ../Reo__Matrix_Mult/DivideWork.c 
  20.112 +	${MKDIR} -p ${OBJECTDIR}/_ext/1702716545
  20.113 +	${RM} "$@.d"
  20.114 +	$(COMPILE.c) -g -DARM -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1702716545/DivideWork.o ../Reo__Matrix_Mult/DivideWork.c
  20.115 +
  20.116 +${OBJECTDIR}/_ext/1702716545/Producer_and_Consumer.o: nbproject/Makefile-${CND_CONF}.mk ../Reo__Matrix_Mult/Producer_and_Consumer.c 
  20.117 +	${MKDIR} -p ${OBJECTDIR}/_ext/1702716545
  20.118 +	${RM} "$@.d"
  20.119 +	$(COMPILE.c) -g -DARM -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1702716545/Producer_and_Consumer.o ../Reo__Matrix_Mult/Producer_and_Consumer.c
  20.120 +
  20.121 +${OBJECTDIR}/_ext/1702716545/SeedVP.o: nbproject/Makefile-${CND_CONF}.mk ../Reo__Matrix_Mult/SeedVP.c 
  20.122 +	${MKDIR} -p ${OBJECTDIR}/_ext/1702716545
  20.123 +	${RM} "$@.d"
  20.124 +	$(COMPILE.c) -g -DARM -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1702716545/SeedVP.o ../Reo__Matrix_Mult/SeedVP.c
  20.125 +
  20.126 +${OBJECTDIR}/_ext/1472/main.o: nbproject/Makefile-${CND_CONF}.mk ../main.c 
  20.127 +	${MKDIR} -p ${OBJECTDIR}/_ext/1472
  20.128 +	${RM} "$@.d"
  20.129 +	$(COMPILE.c) -g -DARM -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1472/main.o ../main.c
  20.130 +
  20.131 +# Subprojects
  20.132 +.build-subprojects:
  20.133 +	cd ../../library__proto-runtime/nb__PR__ML__wDKU__lib && ${MAKE}  -f Makefile CONF=longjmp_ARM
  20.134 +	cd ../../library__Reo_opt1/nb__reo_opt1_wrapper_lib__as_lib && ${MAKE}  -f Makefile CONF=longjmp_ARM
  20.135 +	cd ../../library__Reo_opt1/nb__reo_opt1_wrapper_lib__as_lib && ${MAKE}  -f Makefile CONF=longjmp_ARM
  20.136 +	cd ../../library__proto-runtime/nb__PR__ML__wDKU__lib && ${MAKE}  -f Makefile CONF=longjmp_ARM
  20.137 +
  20.138 +# Clean Targets
  20.139 +.clean-conf: ${CLEAN_SUBPROJECTS}
  20.140 +	${RM} -r ${CND_BUILDDIR}/${CND_CONF}
  20.141 +	${RM} ../../bin/ARM/reo_matrix_mult__longjmp
  20.142 +
  20.143 +# Subprojects
  20.144 +.clean-subprojects:
  20.145 +	cd ../../library__proto-runtime/nb__PR__ML__wDKU__lib && ${MAKE}  -f Makefile CONF=longjmp_ARM clean
  20.146 +	cd ../../library__Reo_opt1/nb__reo_opt1_wrapper_lib__as_lib && ${MAKE}  -f Makefile CONF=longjmp_ARM clean
  20.147 +	cd ../../library__Reo_opt1/nb__reo_opt1_wrapper_lib__as_lib && ${MAKE}  -f Makefile CONF=longjmp_ARM clean
  20.148 +	cd ../../library__proto-runtime/nb__PR__ML__wDKU__lib && ${MAKE}  -f Makefile CONF=longjmp_ARM clean
  20.149 +
  20.150 +# Enable dependency checking
  20.151 +.dep.inc: .depcheck-impl
  20.152 +
  20.153 +include .dep.inc
    21.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    21.2 +++ b/nb__Reo_matrix_mult/nbproject/Makefile-longjmp_X86_static.mk	Sat Jul 12 20:21:47 2014 +0200
    21.3 @@ -0,0 +1,150 @@
    21.4 +#
    21.5 +# Generated Makefile - do not edit!
    21.6 +#
    21.7 +# Edit the Makefile in the project folder instead (../Makefile). Each target
    21.8 +# has a -pre and a -post target defined where you can add customized code.
    21.9 +#
   21.10 +# This makefile implements configuration specific macros and targets.
   21.11 +
   21.12 +
   21.13 +# Environment
   21.14 +MKDIR=mkdir
   21.15 +CP=cp
   21.16 +GREP=grep
   21.17 +NM=nm
   21.18 +CCADMIN=CCadmin
   21.19 +RANLIB=ranlib
   21.20 +CC=gcc
   21.21 +CCC=g++
   21.22 +CXX=g++
   21.23 +FC=gfortran
   21.24 +AS=as
   21.25 +
   21.26 +# Macros
   21.27 +CND_PLATFORM=GNU-Linux-x86
   21.28 +CND_DLIB_EXT=so
   21.29 +CND_CONF=longjmp_X86_static
   21.30 +CND_DISTDIR=dist
   21.31 +CND_BUILDDIR=build
   21.32 +
   21.33 +# Include project Makefile
   21.34 +include Makefile
   21.35 +
   21.36 +# Object Directory
   21.37 +OBJECTDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}
   21.38 +
   21.39 +# Object Files
   21.40 +OBJECTFILES= \
   21.41 +	${OBJECTDIR}/_ext/1472/Matrix_Mult.o \
   21.42 +	${OBJECTDIR}/_ext/1539317932/ParamBag.o \
   21.43 +	${OBJECTDIR}/_ext/1539317932/ReadParamsFromFile.o \
   21.44 +	${OBJECTDIR}/_ext/1702716545/Circuit.o \
   21.45 +	${OBJECTDIR}/_ext/1702716545/DivideWork.o \
   21.46 +	${OBJECTDIR}/_ext/1702716545/Producer_and_Consumer.o \
   21.47 +	${OBJECTDIR}/_ext/1702716545/SeedVP.o \
   21.48 +	${OBJECTDIR}/_ext/1472/main.o
   21.49 +
   21.50 +
   21.51 +# C Compiler Flags
   21.52 +CFLAGS=
   21.53 +
   21.54 +# CC Compiler Flags
   21.55 +CCFLAGS=
   21.56 +CXXFLAGS=
   21.57 +
   21.58 +# Fortran Compiler Flags
   21.59 +FFLAGS=
   21.60 +
   21.61 +# Assembler Flags
   21.62 +ASFLAGS=
   21.63 +
   21.64 +# Link Libraries and Options
   21.65 +LDLIBSOPTIONS=-L../../PR__lib -Wl,-rpath,../../PR__lib ../../library__proto-runtime/nb__PR__ML__wDKU__lib/../../PR__lib/pr__ml__wdku__lib.a ../../library__Reo_opt1/nb__reo_opt1_wrapper_lib__as_lib/../../PR__lib/reo_opt1_wrapper_lib.a -lm -lpthread ../../PR__lib/prdynarray.a ../../PR__lib/prlistofarrays.a ../../PR__lib/prmalloc.a ../../PR__lib/prparam.a ../../PR__lib/prqueue.a ../../PR__lib/prhistogram.a
   21.66 +
   21.67 +# Build Targets
   21.68 +.build-conf: ${BUILD_SUBPROJECTS}
   21.69 +	"${MAKE}"  -f nbproject/Makefile-${CND_CONF}.mk ../../bin/X86/reo_matrix_mult__longjmp
   21.70 +
   21.71 +../../bin/X86/reo_matrix_mult__longjmp: ../../library__proto-runtime/nb__PR__ML__wDKU__lib/../../PR__lib/pr__ml__wdku__lib.a
   21.72 +
   21.73 +../../bin/X86/reo_matrix_mult__longjmp: ../../library__Reo_opt1/nb__reo_opt1_wrapper_lib__as_lib/../../PR__lib/reo_opt1_wrapper_lib.a
   21.74 +
   21.75 +../../bin/X86/reo_matrix_mult__longjmp: ../../PR__lib/prdynarray.a
   21.76 +
   21.77 +../../bin/X86/reo_matrix_mult__longjmp: ../../PR__lib/prlistofarrays.a
   21.78 +
   21.79 +../../bin/X86/reo_matrix_mult__longjmp: ../../PR__lib/prmalloc.a
   21.80 +
   21.81 +../../bin/X86/reo_matrix_mult__longjmp: ../../PR__lib/prparam.a
   21.82 +
   21.83 +../../bin/X86/reo_matrix_mult__longjmp: ../../PR__lib/prqueue.a
   21.84 +
   21.85 +../../bin/X86/reo_matrix_mult__longjmp: ../../PR__lib/prhistogram.a
   21.86 +
   21.87 +../../bin/X86/reo_matrix_mult__longjmp: ${OBJECTFILES}
   21.88 +	${MKDIR} -p ../../bin/X86
   21.89 +	${LINK.c} -o ../../bin/X86/reo_matrix_mult__longjmp ${OBJECTFILES} ${LDLIBSOPTIONS}
   21.90 +
   21.91 +${OBJECTDIR}/_ext/1472/Matrix_Mult.o: nbproject/Makefile-${CND_CONF}.mk ../Matrix_Mult.c 
   21.92 +	${MKDIR} -p ${OBJECTDIR}/_ext/1472
   21.93 +	${RM} "$@.d"
   21.94 +	$(COMPILE.c) -g -DARM -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1472/Matrix_Mult.o ../Matrix_Mult.c
   21.95 +
   21.96 +${OBJECTDIR}/_ext/1539317932/ParamBag.o: nbproject/Makefile-${CND_CONF}.mk ../ParamHelper/ParamBag.c 
   21.97 +	${MKDIR} -p ${OBJECTDIR}/_ext/1539317932
   21.98 +	${RM} "$@.d"
   21.99 +	$(COMPILE.c) -g -DARM -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1539317932/ParamBag.o ../ParamHelper/ParamBag.c
  21.100 +
  21.101 +${OBJECTDIR}/_ext/1539317932/ReadParamsFromFile.o: nbproject/Makefile-${CND_CONF}.mk ../ParamHelper/ReadParamsFromFile.c 
  21.102 +	${MKDIR} -p ${OBJECTDIR}/_ext/1539317932
  21.103 +	${RM} "$@.d"
  21.104 +	$(COMPILE.c) -g -DARM -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1539317932/ReadParamsFromFile.o ../ParamHelper/ReadParamsFromFile.c
  21.105 +
  21.106 +${OBJECTDIR}/_ext/1702716545/Circuit.o: nbproject/Makefile-${CND_CONF}.mk ../Reo__Matrix_Mult/Circuit.c 
  21.107 +	${MKDIR} -p ${OBJECTDIR}/_ext/1702716545
  21.108 +	${RM} "$@.d"
  21.109 +	$(COMPILE.c) -g -DARM -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1702716545/Circuit.o ../Reo__Matrix_Mult/Circuit.c
  21.110 +
  21.111 +${OBJECTDIR}/_ext/1702716545/DivideWork.o: nbproject/Makefile-${CND_CONF}.mk ../Reo__Matrix_Mult/DivideWork.c 
  21.112 +	${MKDIR} -p ${OBJECTDIR}/_ext/1702716545
  21.113 +	${RM} "$@.d"
  21.114 +	$(COMPILE.c) -g -DARM -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1702716545/DivideWork.o ../Reo__Matrix_Mult/DivideWork.c
  21.115 +
  21.116 +${OBJECTDIR}/_ext/1702716545/Producer_and_Consumer.o: nbproject/Makefile-${CND_CONF}.mk ../Reo__Matrix_Mult/Producer_and_Consumer.c 
  21.117 +	${MKDIR} -p ${OBJECTDIR}/_ext/1702716545
  21.118 +	${RM} "$@.d"
  21.119 +	$(COMPILE.c) -g -DARM -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1702716545/Producer_and_Consumer.o ../Reo__Matrix_Mult/Producer_and_Consumer.c
  21.120 +
  21.121 +${OBJECTDIR}/_ext/1702716545/SeedVP.o: nbproject/Makefile-${CND_CONF}.mk ../Reo__Matrix_Mult/SeedVP.c 
  21.122 +	${MKDIR} -p ${OBJECTDIR}/_ext/1702716545
  21.123 +	${RM} "$@.d"
  21.124 +	$(COMPILE.c) -g -DARM -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1702716545/SeedVP.o ../Reo__Matrix_Mult/SeedVP.c
  21.125 +
  21.126 +${OBJECTDIR}/_ext/1472/main.o: nbproject/Makefile-${CND_CONF}.mk ../main.c 
  21.127 +	${MKDIR} -p ${OBJECTDIR}/_ext/1472
  21.128 +	${RM} "$@.d"
  21.129 +	$(COMPILE.c) -g -DARM -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1472/main.o ../main.c
  21.130 +
  21.131 +# Subprojects
  21.132 +.build-subprojects:
  21.133 +	cd ../../library__proto-runtime/nb__PR__ML__wDKU__lib && ${MAKE}  -f Makefile CONF=longjmp_static_X86
  21.134 +	cd ../../library__Reo_opt1/nb__reo_opt1_wrapper_lib__as_lib && ${MAKE}  -f Makefile CONF=longjmp_static_X86
  21.135 +	cd ../../library__Reo_opt1/nb__reo_opt1_wrapper_lib__as_lib && ${MAKE}  -f Makefile CONF=longjmp_static_X86
  21.136 +	cd ../../library__proto-runtime/nb__PR__ML__wDKU__lib && ${MAKE}  -f Makefile CONF=longjmp_static_X86
  21.137 +
  21.138 +# Clean Targets
  21.139 +.clean-conf: ${CLEAN_SUBPROJECTS}
  21.140 +	${RM} -r ${CND_BUILDDIR}/${CND_CONF}
  21.141 +	${RM} ../../bin/X86/reo_matrix_mult__longjmp
  21.142 +
  21.143 +# Subprojects
  21.144 +.clean-subprojects:
  21.145 +	cd ../../library__proto-runtime/nb__PR__ML__wDKU__lib && ${MAKE}  -f Makefile CONF=longjmp_static_X86 clean
  21.146 +	cd ../../library__Reo_opt1/nb__reo_opt1_wrapper_lib__as_lib && ${MAKE}  -f Makefile CONF=longjmp_static_X86 clean
  21.147 +	cd ../../library__Reo_opt1/nb__reo_opt1_wrapper_lib__as_lib && ${MAKE}  -f Makefile CONF=longjmp_static_X86 clean
  21.148 +	cd ../../library__proto-runtime/nb__PR__ML__wDKU__lib && ${MAKE}  -f Makefile CONF=longjmp_static_X86 clean
  21.149 +
  21.150 +# Enable dependency checking
  21.151 +.dep.inc: .depcheck-impl
  21.152 +
  21.153 +include .dep.inc
    22.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    22.2 +++ b/nb__Reo_matrix_mult/nbproject/Makefile-longjmp_rtems.mk	Sat Jul 12 20:21:47 2014 +0200
    22.3 @@ -0,0 +1,146 @@
    22.4 +#
    22.5 +# Generated Makefile - do not edit!
    22.6 +#
    22.7 +# Edit the Makefile in the project folder instead (../Makefile). Each target
    22.8 +# has a -pre and a -post target defined where you can add customized code.
    22.9 +#
   22.10 +# This makefile implements configuration specific macros and targets.
   22.11 +
   22.12 +
   22.13 +# Environment
   22.14 +MKDIR=mkdir
   22.15 +CP=cp
   22.16 +GREP=grep
   22.17 +NM=nm
   22.18 +CCADMIN=CCadmin
   22.19 +RANLIB=ranlib
   22.20 +CC=k1-gcc
   22.21 +CCC=k1-g++
   22.22 +CXX=k1-g++
   22.23 +FC=gfortran
   22.24 +AS=k1-as
   22.25 +
   22.26 +# Macros
   22.27 +CND_PLATFORM=K1-tools-Linux-x86
   22.28 +CND_DLIB_EXT=so
   22.29 +CND_CONF=longjmp_rtems
   22.30 +CND_DISTDIR=dist
   22.31 +CND_BUILDDIR=build
   22.32 +
   22.33 +# Include project Makefile
   22.34 +include Makefile
   22.35 +
   22.36 +# Object Directory
   22.37 +OBJECTDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}
   22.38 +
   22.39 +# Object Files
   22.40 +OBJECTFILES= \
   22.41 +	${OBJECTDIR}/_ext/1472/Matrix_Mult.o \
   22.42 +	${OBJECTDIR}/_ext/1539317932/ParamBag.o \
   22.43 +	${OBJECTDIR}/_ext/1539317932/ReadParamsFromFile.o \
   22.44 +	${OBJECTDIR}/_ext/1702716545/Circuit.o \
   22.45 +	${OBJECTDIR}/_ext/1702716545/DivideWork.o \
   22.46 +	${OBJECTDIR}/_ext/1702716545/Producer_and_Consumer.o \
   22.47 +	${OBJECTDIR}/_ext/1702716545/SeedVP.o \
   22.48 +	${OBJECTDIR}/_ext/1472/main.o
   22.49 +
   22.50 +
   22.51 +# C Compiler Flags
   22.52 +CFLAGS=-mos=rtems
   22.53 +
   22.54 +# CC Compiler Flags
   22.55 +CCFLAGS=
   22.56 +CXXFLAGS=
   22.57 +
   22.58 +# Fortran Compiler Flags
   22.59 +FFLAGS=
   22.60 +
   22.61 +# Assembler Flags
   22.62 +ASFLAGS=
   22.63 +
   22.64 +# Link Libraries and Options
   22.65 +LDLIBSOPTIONS=-L../../PR__lib -Wl,-rpath,../../PR__lib ../../PR__lib_rtems/prdynarray.a ../../PR__lib_rtems/prqueue.a ../../PR__lib_rtems/prhistogram.a ../../PR__lib_rtems/prparam.a ../../PR__lib_rtems/prlistofarrays.a ../../PR__lib_rtems/prmalloc.a ../../library__proto-runtime/nb__PR__ML__wDKU__lib/dist/longjmp_rtems/K1-tools-Linux-x86/libnb__pr__ml__wdku__lib.a ../../library__Reo_opt1/nb__reo_opt1_wrapper_lib__as_lib/dist/longjmp_rtems/K1-tools-Linux-x86/libnb__reo_opt1_wrapper_lib__as_lib.a -lm -lmppaipc_sim
   22.66 +
   22.67 +# Build Targets
   22.68 +.build-conf: ${BUILD_SUBPROJECTS}
   22.69 +	"${MAKE}"  -f nbproject/Makefile-${CND_CONF}.mk ../../dist/bin/reo_matrix_mult__longjmp
   22.70 +
   22.71 +../../dist/bin/reo_matrix_mult__longjmp: ../../PR__lib_rtems/prdynarray.a
   22.72 +
   22.73 +../../dist/bin/reo_matrix_mult__longjmp: ../../PR__lib_rtems/prqueue.a
   22.74 +
   22.75 +../../dist/bin/reo_matrix_mult__longjmp: ../../PR__lib_rtems/prhistogram.a
   22.76 +
   22.77 +../../dist/bin/reo_matrix_mult__longjmp: ../../PR__lib_rtems/prparam.a
   22.78 +
   22.79 +../../dist/bin/reo_matrix_mult__longjmp: ../../PR__lib_rtems/prlistofarrays.a
   22.80 +
   22.81 +../../dist/bin/reo_matrix_mult__longjmp: ../../PR__lib_rtems/prmalloc.a
   22.82 +
   22.83 +../../dist/bin/reo_matrix_mult__longjmp: ../../library__proto-runtime/nb__PR__ML__wDKU__lib/dist/longjmp_rtems/K1-tools-Linux-x86/libnb__pr__ml__wdku__lib.a
   22.84 +
   22.85 +../../dist/bin/reo_matrix_mult__longjmp: ../../library__Reo_opt1/nb__reo_opt1_wrapper_lib__as_lib/dist/longjmp_rtems/K1-tools-Linux-x86/libnb__reo_opt1_wrapper_lib__as_lib.a
   22.86 +
   22.87 +../../dist/bin/reo_matrix_mult__longjmp: ${OBJECTFILES}
   22.88 +	${MKDIR} -p ../../dist/bin
   22.89 +	k1-gcc -o ../../dist/bin/reo_matrix_mult__longjmp ${OBJECTFILES} ${LDLIBSOPTIONS}
   22.90 +
   22.91 +${OBJECTDIR}/_ext/1472/Matrix_Mult.o: nbproject/Makefile-${CND_CONF}.mk ../Matrix_Mult.c 
   22.92 +	${MKDIR} -p ${OBJECTDIR}/_ext/1472
   22.93 +	${RM} "$@.d"
   22.94 +	$(COMPILE.c) -g -DRTEMS -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1472/Matrix_Mult.o ../Matrix_Mult.c
   22.95 +
   22.96 +${OBJECTDIR}/_ext/1539317932/ParamBag.o: nbproject/Makefile-${CND_CONF}.mk ../ParamHelper/ParamBag.c 
   22.97 +	${MKDIR} -p ${OBJECTDIR}/_ext/1539317932
   22.98 +	${RM} "$@.d"
   22.99 +	$(COMPILE.c) -g -DRTEMS -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1539317932/ParamBag.o ../ParamHelper/ParamBag.c
  22.100 +
  22.101 +${OBJECTDIR}/_ext/1539317932/ReadParamsFromFile.o: nbproject/Makefile-${CND_CONF}.mk ../ParamHelper/ReadParamsFromFile.c 
  22.102 +	${MKDIR} -p ${OBJECTDIR}/_ext/1539317932
  22.103 +	${RM} "$@.d"
  22.104 +	$(COMPILE.c) -g -DRTEMS -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1539317932/ReadParamsFromFile.o ../ParamHelper/ReadParamsFromFile.c
  22.105 +
  22.106 +${OBJECTDIR}/_ext/1702716545/Circuit.o: nbproject/Makefile-${CND_CONF}.mk ../Reo__Matrix_Mult/Circuit.c 
  22.107 +	${MKDIR} -p ${OBJECTDIR}/_ext/1702716545
  22.108 +	${RM} "$@.d"
  22.109 +	$(COMPILE.c) -g -DRTEMS -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1702716545/Circuit.o ../Reo__Matrix_Mult/Circuit.c
  22.110 +
  22.111 +${OBJECTDIR}/_ext/1702716545/DivideWork.o: nbproject/Makefile-${CND_CONF}.mk ../Reo__Matrix_Mult/DivideWork.c 
  22.112 +	${MKDIR} -p ${OBJECTDIR}/_ext/1702716545
  22.113 +	${RM} "$@.d"
  22.114 +	$(COMPILE.c) -g -DRTEMS -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1702716545/DivideWork.o ../Reo__Matrix_Mult/DivideWork.c
  22.115 +
  22.116 +${OBJECTDIR}/_ext/1702716545/Producer_and_Consumer.o: nbproject/Makefile-${CND_CONF}.mk ../Reo__Matrix_Mult/Producer_and_Consumer.c 
  22.117 +	${MKDIR} -p ${OBJECTDIR}/_ext/1702716545
  22.118 +	${RM} "$@.d"
  22.119 +	$(COMPILE.c) -g -DRTEMS -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1702716545/Producer_and_Consumer.o ../Reo__Matrix_Mult/Producer_and_Consumer.c
  22.120 +
  22.121 +${OBJECTDIR}/_ext/1702716545/SeedVP.o: nbproject/Makefile-${CND_CONF}.mk ../Reo__Matrix_Mult/SeedVP.c 
  22.122 +	${MKDIR} -p ${OBJECTDIR}/_ext/1702716545
  22.123 +	${RM} "$@.d"
  22.124 +	$(COMPILE.c) -g -DRTEMS -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1702716545/SeedVP.o ../Reo__Matrix_Mult/SeedVP.c
  22.125 +
  22.126 +${OBJECTDIR}/_ext/1472/main.o: nbproject/Makefile-${CND_CONF}.mk ../main.c 
  22.127 +	${MKDIR} -p ${OBJECTDIR}/_ext/1472
  22.128 +	${RM} "$@.d"
  22.129 +	$(COMPILE.c) -g -DRTEMS -I../.. -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/_ext/1472/main.o ../main.c
  22.130 +
  22.131 +# Subprojects
  22.132 +.build-subprojects:
  22.133 +	cd ../../library__proto-runtime/nb__PR__ML__wDKU__lib && ${MAKE}  -f Makefile CONF=longjmp_rtems
  22.134 +	cd ../../library__Reo_opt1/nb__reo_opt1_wrapper_lib__as_lib && ${MAKE}  -f Makefile CONF=longjmp_rtems
  22.135 +
  22.136 +# Clean Targets
  22.137 +.clean-conf: ${CLEAN_SUBPROJECTS}
  22.138 +	${RM} -r ${CND_BUILDDIR}/${CND_CONF}
  22.139 +	${RM} ../../dist/bin/reo_matrix_mult__longjmp
  22.140 +
  22.141 +# Subprojects
  22.142 +.clean-subprojects:
  22.143 +	cd ../../library__proto-runtime/nb__PR__ML__wDKU__lib && ${MAKE}  -f Makefile CONF=longjmp_rtems clean
  22.144 +	cd ../../library__Reo_opt1/nb__reo_opt1_wrapper_lib__as_lib && ${MAKE}  -f Makefile CONF=longjmp_rtems clean
  22.145 +
  22.146 +# Enable dependency checking
  22.147 +.dep.inc: .depcheck-impl
  22.148 +
  22.149 +include .dep.inc
    23.1 --- a/nb__Reo_matrix_mult/nbproject/Makefile-variables.mk	Wed Feb 19 09:27:10 2014 -0800
    23.2 +++ b/nb__Reo_matrix_mult/nbproject/Makefile-variables.mk	Sat Jul 12 20:21:47 2014 +0200
    23.3 @@ -24,12 +24,52 @@
    23.4  CND_PACKAGE_PATH_Release=dist/Release/GNU-Linux-x86/package/nbreomatrixmult.tar
    23.5  # Debug_Sequential configuration
    23.6  CND_PLATFORM_Debug_Sequential=GNU-Linux-x86
    23.7 -CND_ARTIFACT_DIR_Debug_Sequential=dist/Debug_Sequential/GNU-Linux-x86
    23.8 -CND_ARTIFACT_NAME_Debug_Sequential=nb__reo_matrix_mult
    23.9 -CND_ARTIFACT_PATH_Debug_Sequential=dist/Debug_Sequential/GNU-Linux-x86/nb__reo_matrix_mult
   23.10 +CND_ARTIFACT_DIR_Debug_Sequential=../../dist/bin
   23.11 +CND_ARTIFACT_NAME_Debug_Sequential=reo_matrix_mult__debug_seq
   23.12 +CND_ARTIFACT_PATH_Debug_Sequential=../../dist/bin/reo_matrix_mult__debug_seq
   23.13  CND_PACKAGE_DIR_Debug_Sequential=dist/Debug_Sequential/GNU-Linux-x86/package
   23.14  CND_PACKAGE_NAME_Debug_Sequential=nbreomatrixmult.tar
   23.15  CND_PACKAGE_PATH_Debug_Sequential=dist/Debug_Sequential/GNU-Linux-x86/package/nbreomatrixmult.tar
   23.16 +# MEAS_ON configuration
   23.17 +CND_PLATFORM_MEAS_ON=GNU-Linux-x86
   23.18 +CND_ARTIFACT_DIR_MEAS_ON=../../dist/bin
   23.19 +CND_ARTIFACT_NAME_MEAS_ON=reo_matrix_mult__meas_on
   23.20 +CND_ARTIFACT_PATH_MEAS_ON=../../dist/bin/reo_matrix_mult__meas_on
   23.21 +CND_PACKAGE_DIR_MEAS_ON=dist/MEAS_ON/GNU-Linux-x86/package
   23.22 +CND_PACKAGE_NAME_MEAS_ON=nbreomatrixmult.tar
   23.23 +CND_PACKAGE_PATH_MEAS_ON=dist/MEAS_ON/GNU-Linux-x86/package/nbreomatrixmult.tar
   23.24 +# longjmp configuration
   23.25 +CND_PLATFORM_longjmp=GNU-Linux-x86
   23.26 +CND_ARTIFACT_DIR_longjmp=../../dist/bin
   23.27 +CND_ARTIFACT_NAME_longjmp=reo_matrix_mult__longjmp
   23.28 +CND_ARTIFACT_PATH_longjmp=../../dist/bin/reo_matrix_mult__longjmp
   23.29 +CND_PACKAGE_DIR_longjmp=dist/longjmp/GNU-Linux-x86/package
   23.30 +CND_PACKAGE_NAME_longjmp=nbreomatrixmult.tar
   23.31 +CND_PACKAGE_PATH_longjmp=dist/longjmp/GNU-Linux-x86/package/nbreomatrixmult.tar
   23.32 +# longjmp_rtems configuration
   23.33 +CND_PLATFORM_longjmp_rtems=K1-tools-Linux-x86
   23.34 +CND_ARTIFACT_DIR_longjmp_rtems=../../dist/bin
   23.35 +CND_ARTIFACT_NAME_longjmp_rtems=reo_matrix_mult__longjmp
   23.36 +CND_ARTIFACT_PATH_longjmp_rtems=../../dist/bin/reo_matrix_mult__longjmp
   23.37 +CND_PACKAGE_DIR_longjmp_rtems=dist/longjmp_rtems/K1-tools-Linux-x86/package
   23.38 +CND_PACKAGE_NAME_longjmp_rtems=nbreomatrixmult.tar
   23.39 +CND_PACKAGE_PATH_longjmp_rtems=dist/longjmp_rtems/K1-tools-Linux-x86/package/nbreomatrixmult.tar
   23.40 +# longjmp_ARM configuration
   23.41 +CND_PLATFORM_longjmp_ARM=GNU_ARM-Linux-x86
   23.42 +CND_ARTIFACT_DIR_longjmp_ARM=../../bin/ARM
   23.43 +CND_ARTIFACT_NAME_longjmp_ARM=reo_matrix_mult__longjmp
   23.44 +CND_ARTIFACT_PATH_longjmp_ARM=../../bin/ARM/reo_matrix_mult__longjmp
   23.45 +CND_PACKAGE_DIR_longjmp_ARM=dist/longjmp_ARM/GNU_ARM-Linux-x86/package
   23.46 +CND_PACKAGE_NAME_longjmp_ARM=nbreomatrixmult.tar
   23.47 +CND_PACKAGE_PATH_longjmp_ARM=dist/longjmp_ARM/GNU_ARM-Linux-x86/package/nbreomatrixmult.tar
   23.48 +# longjmp_X86_static configuration
   23.49 +CND_PLATFORM_longjmp_X86_static=GNU-Linux-x86
   23.50 +CND_ARTIFACT_DIR_longjmp_X86_static=../../bin/X86
   23.51 +CND_ARTIFACT_NAME_longjmp_X86_static=reo_matrix_mult__longjmp
   23.52 +CND_ARTIFACT_PATH_longjmp_X86_static=../../bin/X86/reo_matrix_mult__longjmp
   23.53 +CND_PACKAGE_DIR_longjmp_X86_static=dist/longjmp_X86_static/GNU-Linux-x86/package
   23.54 +CND_PACKAGE_NAME_longjmp_X86_static=nbreomatrixmult.tar
   23.55 +CND_PACKAGE_PATH_longjmp_X86_static=dist/longjmp_X86_static/GNU-Linux-x86/package/nbreomatrixmult.tar
   23.56  #
   23.57  # include compiler specific variables
   23.58  #
    24.1 --- a/nb__Reo_matrix_mult/nbproject/Package-Debug_Sequential.bash	Wed Feb 19 09:27:10 2014 -0800
    24.2 +++ b/nb__Reo_matrix_mult/nbproject/Package-Debug_Sequential.bash	Sat Jul 12 20:21:47 2014 +0200
    24.3 @@ -13,8 +13,8 @@
    24.4  CND_DLIB_EXT=so
    24.5  NBTMPDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}/tmp-packaging
    24.6  TMPDIRNAME=tmp-packaging
    24.7 -OUTPUT_PATH=${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/nb__reo_matrix_mult
    24.8 -OUTPUT_BASENAME=nb__reo_matrix_mult
    24.9 +OUTPUT_PATH=../../dist/bin/reo_matrix_mult__debug_seq
   24.10 +OUTPUT_BASENAME=reo_matrix_mult__debug_seq
   24.11  PACKAGE_TOP_DIR=nbreomatrixmult/
   24.12  
   24.13  # Functions
    25.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    25.2 +++ b/nb__Reo_matrix_mult/nbproject/Package-MEAS_ON.bash	Sat Jul 12 20:21:47 2014 +0200
    25.3 @@ -0,0 +1,76 @@
    25.4 +#!/bin/bash -x
    25.5 +
    25.6 +#
    25.7 +# Generated - do not edit!
    25.8 +#
    25.9 +
   25.10 +# Macros
   25.11 +TOP=`pwd`
   25.12 +CND_PLATFORM=GNU-Linux-x86
   25.13 +CND_CONF=MEAS_ON
   25.14 +CND_DISTDIR=dist
   25.15 +CND_BUILDDIR=build
   25.16 +CND_DLIB_EXT=so
   25.17 +NBTMPDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}/tmp-packaging
   25.18 +TMPDIRNAME=tmp-packaging
   25.19 +OUTPUT_PATH=../../dist/bin/reo_matrix_mult__meas_on
   25.20 +OUTPUT_BASENAME=reo_matrix_mult__meas_on
   25.21 +PACKAGE_TOP_DIR=nbreomatrixmult/
   25.22 +
   25.23 +# Functions
   25.24 +function checkReturnCode
   25.25 +{
   25.26 +    rc=$?
   25.27 +    if [ $rc != 0 ]
   25.28 +    then
   25.29 +        exit $rc
   25.30 +    fi
   25.31 +}
   25.32 +function makeDirectory
   25.33 +# $1 directory path
   25.34 +# $2 permission (optional)
   25.35 +{
   25.36 +    mkdir -p "$1"
   25.37 +    checkReturnCode
   25.38 +    if [ "$2" != "" ]
   25.39 +    then
   25.40 +      chmod $2 "$1"
   25.41 +      checkReturnCode
   25.42 +    fi
   25.43 +}
   25.44 +function copyFileToTmpDir
   25.45 +# $1 from-file path
   25.46 +# $2 to-file path
   25.47 +# $3 permission
   25.48 +{
   25.49 +    cp "$1" "$2"
   25.50 +    checkReturnCode
   25.51 +    if [ "$3" != "" ]
   25.52 +    then
   25.53 +        chmod $3 "$2"
   25.54 +        checkReturnCode
   25.55 +    fi
   25.56 +}
   25.57 +
   25.58 +# Setup
   25.59 +cd "${TOP}"
   25.60 +mkdir -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package
   25.61 +rm -rf ${NBTMPDIR}
   25.62 +mkdir -p ${NBTMPDIR}
   25.63 +
   25.64 +# Copy files and create directories and links
   25.65 +cd "${TOP}"
   25.66 +makeDirectory "${NBTMPDIR}/nbreomatrixmult/bin"
   25.67 +copyFileToTmpDir "${OUTPUT_PATH}" "${NBTMPDIR}/${PACKAGE_TOP_DIR}bin/${OUTPUT_BASENAME}" 0755
   25.68 +
   25.69 +
   25.70 +# Generate tar file
   25.71 +cd "${TOP}"
   25.72 +rm -f ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/nbreomatrixmult.tar
   25.73 +cd ${NBTMPDIR}
   25.74 +tar -vcf ../../../../${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/nbreomatrixmult.tar *
   25.75 +checkReturnCode
   25.76 +
   25.77 +# Cleanup
   25.78 +cd "${TOP}"
   25.79 +rm -rf ${NBTMPDIR}
    26.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    26.2 +++ b/nb__Reo_matrix_mult/nbproject/Package-longjmp.bash	Sat Jul 12 20:21:47 2014 +0200
    26.3 @@ -0,0 +1,76 @@
    26.4 +#!/bin/bash -x
    26.5 +
    26.6 +#
    26.7 +# Generated - do not edit!
    26.8 +#
    26.9 +
   26.10 +# Macros
   26.11 +TOP=`pwd`
   26.12 +CND_PLATFORM=GNU-Linux-x86
   26.13 +CND_CONF=longjmp
   26.14 +CND_DISTDIR=dist
   26.15 +CND_BUILDDIR=build
   26.16 +CND_DLIB_EXT=so
   26.17 +NBTMPDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}/tmp-packaging
   26.18 +TMPDIRNAME=tmp-packaging
   26.19 +OUTPUT_PATH=../../dist/bin/reo_matrix_mult__longjmp
   26.20 +OUTPUT_BASENAME=reo_matrix_mult__longjmp
   26.21 +PACKAGE_TOP_DIR=nbreomatrixmult/
   26.22 +
   26.23 +# Functions
   26.24 +function checkReturnCode
   26.25 +{
   26.26 +    rc=$?
   26.27 +    if [ $rc != 0 ]
   26.28 +    then
   26.29 +        exit $rc
   26.30 +    fi
   26.31 +}
   26.32 +function makeDirectory
   26.33 +# $1 directory path
   26.34 +# $2 permission (optional)
   26.35 +{
   26.36 +    mkdir -p "$1"
   26.37 +    checkReturnCode
   26.38 +    if [ "$2" != "" ]
   26.39 +    then
   26.40 +      chmod $2 "$1"
   26.41 +      checkReturnCode
   26.42 +    fi
   26.43 +}
   26.44 +function copyFileToTmpDir
   26.45 +# $1 from-file path
   26.46 +# $2 to-file path
   26.47 +# $3 permission
   26.48 +{
   26.49 +    cp "$1" "$2"
   26.50 +    checkReturnCode
   26.51 +    if [ "$3" != "" ]
   26.52 +    then
   26.53 +        chmod $3 "$2"
   26.54 +        checkReturnCode
   26.55 +    fi
   26.56 +}
   26.57 +
   26.58 +# Setup
   26.59 +cd "${TOP}"
   26.60 +mkdir -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package
   26.61 +rm -rf ${NBTMPDIR}
   26.62 +mkdir -p ${NBTMPDIR}
   26.63 +
   26.64 +# Copy files and create directories and links
   26.65 +cd "${TOP}"
   26.66 +makeDirectory "${NBTMPDIR}/nbreomatrixmult/bin"
   26.67 +copyFileToTmpDir "${OUTPUT_PATH}" "${NBTMPDIR}/${PACKAGE_TOP_DIR}bin/${OUTPUT_BASENAME}" 0755
   26.68 +
   26.69 +
   26.70 +# Generate tar file
   26.71 +cd "${TOP}"
   26.72 +rm -f ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/nbreomatrixmult.tar
   26.73 +cd ${NBTMPDIR}
   26.74 +tar -vcf ../../../../${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/nbreomatrixmult.tar *
   26.75 +checkReturnCode
   26.76 +
   26.77 +# Cleanup
   26.78 +cd "${TOP}"
   26.79 +rm -rf ${NBTMPDIR}
    27.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    27.2 +++ b/nb__Reo_matrix_mult/nbproject/Package-longjmp_ARM.bash	Sat Jul 12 20:21:47 2014 +0200
    27.3 @@ -0,0 +1,76 @@
    27.4 +#!/bin/bash -x
    27.5 +
    27.6 +#
    27.7 +# Generated - do not edit!
    27.8 +#
    27.9 +
   27.10 +# Macros
   27.11 +TOP=`pwd`
   27.12 +CND_PLATFORM=GNU_ARM-Linux-x86
   27.13 +CND_CONF=longjmp_ARM
   27.14 +CND_DISTDIR=dist
   27.15 +CND_BUILDDIR=build
   27.16 +CND_DLIB_EXT=so
   27.17 +NBTMPDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}/tmp-packaging
   27.18 +TMPDIRNAME=tmp-packaging
   27.19 +OUTPUT_PATH=../../bin/ARM/reo_matrix_mult__longjmp
   27.20 +OUTPUT_BASENAME=reo_matrix_mult__longjmp
   27.21 +PACKAGE_TOP_DIR=nbreomatrixmult/
   27.22 +
   27.23 +# Functions
   27.24 +function checkReturnCode
   27.25 +{
   27.26 +    rc=$?
   27.27 +    if [ $rc != 0 ]
   27.28 +    then
   27.29 +        exit $rc
   27.30 +    fi
   27.31 +}
   27.32 +function makeDirectory
   27.33 +# $1 directory path
   27.34 +# $2 permission (optional)
   27.35 +{
   27.36 +    mkdir -p "$1"
   27.37 +    checkReturnCode
   27.38 +    if [ "$2" != "" ]
   27.39 +    then
   27.40 +      chmod $2 "$1"
   27.41 +      checkReturnCode
   27.42 +    fi
   27.43 +}
   27.44 +function copyFileToTmpDir
   27.45 +# $1 from-file path
   27.46 +# $2 to-file path
   27.47 +# $3 permission
   27.48 +{
   27.49 +    cp "$1" "$2"
   27.50 +    checkReturnCode
   27.51 +    if [ "$3" != "" ]
   27.52 +    then
   27.53 +        chmod $3 "$2"
   27.54 +        checkReturnCode
   27.55 +    fi
   27.56 +}
   27.57 +
   27.58 +# Setup
   27.59 +cd "${TOP}"
   27.60 +mkdir -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package
   27.61 +rm -rf ${NBTMPDIR}
   27.62 +mkdir -p ${NBTMPDIR}
   27.63 +
   27.64 +# Copy files and create directories and links
   27.65 +cd "${TOP}"
   27.66 +makeDirectory "${NBTMPDIR}/nbreomatrixmult/bin"
   27.67 +copyFileToTmpDir "${OUTPUT_PATH}" "${NBTMPDIR}/${PACKAGE_TOP_DIR}bin/${OUTPUT_BASENAME}" 0755
   27.68 +
   27.69 +
   27.70 +# Generate tar file
   27.71 +cd "${TOP}"
   27.72 +rm -f ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/nbreomatrixmult.tar
   27.73 +cd ${NBTMPDIR}
   27.74 +tar -vcf ../../../../${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/nbreomatrixmult.tar *
   27.75 +checkReturnCode
   27.76 +
   27.77 +# Cleanup
   27.78 +cd "${TOP}"
   27.79 +rm -rf ${NBTMPDIR}
    28.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    28.2 +++ b/nb__Reo_matrix_mult/nbproject/Package-longjmp_X86_static.bash	Sat Jul 12 20:21:47 2014 +0200
    28.3 @@ -0,0 +1,76 @@
    28.4 +#!/bin/bash -x
    28.5 +
    28.6 +#
    28.7 +# Generated - do not edit!
    28.8 +#
    28.9 +
   28.10 +# Macros
   28.11 +TOP=`pwd`
   28.12 +CND_PLATFORM=GNU-Linux-x86
   28.13 +CND_CONF=longjmp_X86_static
   28.14 +CND_DISTDIR=dist
   28.15 +CND_BUILDDIR=build
   28.16 +CND_DLIB_EXT=so
   28.17 +NBTMPDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}/tmp-packaging
   28.18 +TMPDIRNAME=tmp-packaging
   28.19 +OUTPUT_PATH=../../bin/X86/reo_matrix_mult__longjmp
   28.20 +OUTPUT_BASENAME=reo_matrix_mult__longjmp
   28.21 +PACKAGE_TOP_DIR=nbreomatrixmult/
   28.22 +
   28.23 +# Functions
   28.24 +function checkReturnCode
   28.25 +{
   28.26 +    rc=$?
   28.27 +    if [ $rc != 0 ]
   28.28 +    then
   28.29 +        exit $rc
   28.30 +    fi
   28.31 +}
   28.32 +function makeDirectory
   28.33 +# $1 directory path
   28.34 +# $2 permission (optional)
   28.35 +{
   28.36 +    mkdir -p "$1"
   28.37 +    checkReturnCode
   28.38 +    if [ "$2" != "" ]
   28.39 +    then
   28.40 +      chmod $2 "$1"
   28.41 +      checkReturnCode
   28.42 +    fi
   28.43 +}
   28.44 +function copyFileToTmpDir
   28.45 +# $1 from-file path
   28.46 +# $2 to-file path
   28.47 +# $3 permission
   28.48 +{
   28.49 +    cp "$1" "$2"
   28.50 +    checkReturnCode
   28.51 +    if [ "$3" != "" ]
   28.52 +    then
   28.53 +        chmod $3 "$2"
   28.54 +        checkReturnCode
   28.55 +    fi
   28.56 +}
   28.57 +
   28.58 +# Setup
   28.59 +cd "${TOP}"
   28.60 +mkdir -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package
   28.61 +rm -rf ${NBTMPDIR}
   28.62 +mkdir -p ${NBTMPDIR}
   28.63 +
   28.64 +# Copy files and create directories and links
   28.65 +cd "${TOP}"
   28.66 +makeDirectory "${NBTMPDIR}/nbreomatrixmult/bin"
   28.67 +copyFileToTmpDir "${OUTPUT_PATH}" "${NBTMPDIR}/${PACKAGE_TOP_DIR}bin/${OUTPUT_BASENAME}" 0755
   28.68 +
   28.69 +
   28.70 +# Generate tar file
   28.71 +cd "${TOP}"
   28.72 +rm -f ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/nbreomatrixmult.tar
   28.73 +cd ${NBTMPDIR}
   28.74 +tar -vcf ../../../../${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/nbreomatrixmult.tar *
   28.75 +checkReturnCode
   28.76 +
   28.77 +# Cleanup
   28.78 +cd "${TOP}"
   28.79 +rm -rf ${NBTMPDIR}
    29.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    29.2 +++ b/nb__Reo_matrix_mult/nbproject/Package-longjmp_rtems.bash	Sat Jul 12 20:21:47 2014 +0200
    29.3 @@ -0,0 +1,76 @@
    29.4 +#!/bin/bash -x
    29.5 +
    29.6 +#
    29.7 +# Generated - do not edit!
    29.8 +#
    29.9 +
   29.10 +# Macros
   29.11 +TOP=`pwd`
   29.12 +CND_PLATFORM=K1-tools-Linux-x86
   29.13 +CND_CONF=longjmp_rtems
   29.14 +CND_DISTDIR=dist
   29.15 +CND_BUILDDIR=build
   29.16 +CND_DLIB_EXT=so
   29.17 +NBTMPDIR=${CND_BUILDDIR}/${CND_CONF}/${CND_PLATFORM}/tmp-packaging
   29.18 +TMPDIRNAME=tmp-packaging
   29.19 +OUTPUT_PATH=../../dist/bin/reo_matrix_mult__longjmp
   29.20 +OUTPUT_BASENAME=reo_matrix_mult__longjmp
   29.21 +PACKAGE_TOP_DIR=nbreomatrixmult/
   29.22 +
   29.23 +# Functions
   29.24 +function checkReturnCode
   29.25 +{
   29.26 +    rc=$?
   29.27 +    if [ $rc != 0 ]
   29.28 +    then
   29.29 +        exit $rc
   29.30 +    fi
   29.31 +}
   29.32 +function makeDirectory
   29.33 +# $1 directory path
   29.34 +# $2 permission (optional)
   29.35 +{
   29.36 +    mkdir -p "$1"
   29.37 +    checkReturnCode
   29.38 +    if [ "$2" != "" ]
   29.39 +    then
   29.40 +      chmod $2 "$1"
   29.41 +      checkReturnCode
   29.42 +    fi
   29.43 +}
   29.44 +function copyFileToTmpDir
   29.45 +# $1 from-file path
   29.46 +# $2 to-file path
   29.47 +# $3 permission
   29.48 +{
   29.49 +    cp "$1" "$2"
   29.50 +    checkReturnCode
   29.51 +    if [ "$3" != "" ]
   29.52 +    then
   29.53 +        chmod $3 "$2"
   29.54 +        checkReturnCode
   29.55 +    fi
   29.56 +}
   29.57 +
   29.58 +# Setup
   29.59 +cd "${TOP}"
   29.60 +mkdir -p ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package
   29.61 +rm -rf ${NBTMPDIR}
   29.62 +mkdir -p ${NBTMPDIR}
   29.63 +
   29.64 +# Copy files and create directories and links
   29.65 +cd "${TOP}"
   29.66 +makeDirectory "${NBTMPDIR}/nbreomatrixmult/bin"
   29.67 +copyFileToTmpDir "${OUTPUT_PATH}" "${NBTMPDIR}/${PACKAGE_TOP_DIR}bin/${OUTPUT_BASENAME}" 0755
   29.68 +
   29.69 +
   29.70 +# Generate tar file
   29.71 +cd "${TOP}"
   29.72 +rm -f ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/nbreomatrixmult.tar
   29.73 +cd ${NBTMPDIR}
   29.74 +tar -vcf ../../../../${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/package/nbreomatrixmult.tar *
   29.75 +checkReturnCode
   29.76 +
   29.77 +# Cleanup
   29.78 +cd "${TOP}"
   29.79 +rm -rf ${NBTMPDIR}
    30.1 --- a/nb__Reo_matrix_mult/nbproject/configurations.xml	Wed Feb 19 09:27:10 2014 -0800
    30.2 +++ b/nb__Reo_matrix_mult/nbproject/configurations.xml	Sat Jul 12 20:21:47 2014 +0200
    30.3 @@ -1,5 +1,5 @@
    30.4  <?xml version="1.0" encoding="UTF-8"?>
    30.5 -<configurationDescriptor version="90">
    30.6 +<configurationDescriptor version="94">
    30.7    <logicalFolder name="root" displayName="root" projectFiles="true" kind="ROOT">
    30.8      <logicalFolder name="HeaderFiles"
    30.9                     displayName="Header Files"
   30.10 @@ -44,8 +44,7 @@
   30.11      </logicalFolder>
   30.12    </logicalFolder>
   30.13    <sourceRootList>
   30.14 -    <Elem>../ParamHelper</Elem>
   30.15 -    <Elem>../Reo__Matrix_Mult</Elem>
   30.16 +    <Elem>../..</Elem>
   30.17    </sourceRootList>
   30.18    <projectmakefile>Makefile</projectmakefile>
   30.19    <confs>
   30.20 @@ -157,20 +156,133 @@
   30.21              <pElem>../..</pElem>
   30.22            </incDir>
   30.23            <preprocessorList>
   30.24 -            <Elem>DEBUG__SEQUENTIAL_MODE</Elem>
   30.25              <Elem>DEBUG__TURN_ON_DEBUG_PRINT</Elem>
   30.26 +            <Elem>DEBUG__TURN_ON_SEQUENTIAL_MODE</Elem>
   30.27            </preprocessorList>
   30.28          </cTool>
   30.29          <linkerTool>
   30.30 +          <output>../../dist/bin/reo_matrix_mult__debug_seq</output>
   30.31            <linkerAddLib>
   30.32              <pElem>../../PR__lib</pElem>
   30.33            </linkerAddLib>
   30.34 +          <linkerDynSerch>
   30.35 +            <pElem>../../PR__lib</pElem>
   30.36 +          </linkerDynSerch>
   30.37            <linkerLibItems>
   30.38 -            <linkerLibLibItem>pr__ml__sharedmem__dku_debug</linkerLibLibItem>
   30.39              <linkerLibLibItem>prmalloc</linkerLibLibItem>
   30.40              <linkerLibLibItem>prparam</linkerLibLibItem>
   30.41              <linkerLibLibItem>prqueue</linkerLibLibItem>
   30.42 -            <linkerLibLibItem>reo_wrapper_lib_opt1</linkerLibLibItem>
   30.43 +            <linkerLibStdlibItem>Mathematics</linkerLibStdlibItem>
   30.44 +            <linkerLibProjectItem>
   30.45 +              <makeArtifact PL="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/library__Reo_opt1/nb__reo_opt1_wrapper_lib__as_lib"
   30.46 +                            CT="2"
   30.47 +                            CN="Debug"
   30.48 +                            AC="false"
   30.49 +                            BL="true"
   30.50 +                            WD="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/library__Reo_opt1/nb__reo_opt1_wrapper_lib__as_lib"
   30.51 +                            BC="${MAKE}  -f Makefile CONF=Debug"
   30.52 +                            CC="${MAKE}  -f Makefile CONF=Debug clean"
   30.53 +                            OP="../../PR__lib/libreo_opt1_ml_lib.so">
   30.54 +              </makeArtifact>
   30.55 +            </linkerLibProjectItem>
   30.56 +            <linkerLibProjectItem>
   30.57 +              <makeArtifact PL="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/library__proto-runtime/nb__PR__ML__wDKU__lib"
   30.58 +                            CT="2"
   30.59 +                            CN="MEAS_ON"
   30.60 +                            AC="true"
   30.61 +                            BL="true"
   30.62 +                            WD="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/library__proto-runtime/nb__PR__ML__wDKU__lib"
   30.63 +                            BC="${MAKE}  -f Makefile CONF=MEAS_ON"
   30.64 +                            CC="${MAKE}  -f Makefile CONF=MEAS_ON clean"
   30.65 +                            OP="../../PR__lib/libpr__ml__sharedmem_debug_seq.so">
   30.66 +              </makeArtifact>
   30.67 +            </linkerLibProjectItem>
   30.68 +          </linkerLibItems>
   30.69 +        </linkerTool>
   30.70 +        <requiredProjects>
   30.71 +          <makeArtifact PL="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/library__Reo_opt1/nb__reo_opt1_wrapper_lib__as_lib"
   30.72 +                        CT="2"
   30.73 +                        CN="Debug"
   30.74 +                        AC="false"
   30.75 +                        BL="true"
   30.76 +                        WD="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/library__Reo_opt1/nb__reo_opt1_wrapper_lib__as_lib"
   30.77 +                        BC="${MAKE}  -f Makefile CONF=Debug"
   30.78 +                        CC="${MAKE}  -f Makefile CONF=Debug clean"
   30.79 +                        OP="../../PR__lib/libreo_opt1_ml_lib.so">
   30.80 +          </makeArtifact>
   30.81 +          <makeArtifact PL="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/library__proto-runtime/nb__PR__ML__wDKU__lib"
   30.82 +                        CT="2"
   30.83 +                        CN="MEAS_ON"
   30.84 +                        AC="true"
   30.85 +                        BL="true"
   30.86 +                        WD="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/library__proto-runtime/nb__PR__ML__wDKU__lib"
   30.87 +                        BC="${MAKE}  -f Makefile CONF=MEAS_ON"
   30.88 +                        CC="${MAKE}  -f Makefile CONF=MEAS_ON clean"
   30.89 +                        OP="../../PR__lib/libpr__ml__sharedmem_debug_seq.so">
   30.90 +          </makeArtifact>
   30.91 +        </requiredProjects>
   30.92 +      </compileType>
   30.93 +      <item path="../Matrix_Mult.c" ex="false" tool="0" flavor2="0">
   30.94 +      </item>
   30.95 +      <item path="../Matrix_Mult.h" ex="false" tool="3" flavor2="0">
   30.96 +      </item>
   30.97 +      <item path="../ParamHelper/Param.h" ex="false" tool="3" flavor2="0">
   30.98 +      </item>
   30.99 +      <item path="../ParamHelper/ParamBag.c" ex="false" tool="0" flavor2="0">
  30.100 +      </item>
  30.101 +      <item path="../ParamHelper/ReadParamsFromFile.c"
  30.102 +            ex="false"
  30.103 +            tool="0"
  30.104 +            flavor2="0">
  30.105 +      </item>
  30.106 +      <item path="../Reo__Matrix_Mult/Circuit.c" ex="false" tool="0" flavor2="0">
  30.107 +      </item>
  30.108 +      <item path="../Reo__Matrix_Mult/Circuit.h" ex="false" tool="3" flavor2="0">
  30.109 +      </item>
  30.110 +      <item path="../Reo__Matrix_Mult/DivideWork.c" ex="false" tool="0" flavor2="0">
  30.111 +      </item>
  30.112 +      <item path="../Reo__Matrix_Mult/Producer_and_Consumer.c"
  30.113 +            ex="false"
  30.114 +            tool="0"
  30.115 +            flavor2="0">
  30.116 +      </item>
  30.117 +      <item path="../Reo__Matrix_Mult/Reo__Matrix_Mult.h"
  30.118 +            ex="false"
  30.119 +            tool="3"
  30.120 +            flavor2="0">
  30.121 +      </item>
  30.122 +      <item path="../Reo__Matrix_Mult/SeedVP.c" ex="false" tool="0" flavor2="0">
  30.123 +      </item>
  30.124 +      <item path="../main.c" ex="false" tool="0" flavor2="0">
  30.125 +      </item>
  30.126 +    </conf>
  30.127 +    <conf name="MEAS_ON" type="1">
  30.128 +      <toolsSet>
  30.129 +        <compilerSet>default</compilerSet>
  30.130 +        <dependencyChecking>true</dependencyChecking>
  30.131 +        <rebuildPropChanged>false</rebuildPropChanged>
  30.132 +      </toolsSet>
  30.133 +      <compileType>
  30.134 +        <cTool>
  30.135 +          <incDir>
  30.136 +            <pElem>../..</pElem>
  30.137 +          </incDir>
  30.138 +        </cTool>
  30.139 +        <linkerTool>
  30.140 +          <output>../../dist/bin/reo_matrix_mult__meas_on</output>
  30.141 +          <linkerAddLib>
  30.142 +            <pElem>../../PR__lib</pElem>
  30.143 +          </linkerAddLib>
  30.144 +          <linkerDynSerch>
  30.145 +            <pElem>../../PR__lib</pElem>
  30.146 +          </linkerDynSerch>
  30.147 +          <linkerLibItems>
  30.148 +            <linkerLibLibItem>prmalloc</linkerLibLibItem>
  30.149 +            <linkerLibLibItem>prparam</linkerLibLibItem>
  30.150 +            <linkerLibLibItem>prqueue</linkerLibLibItem>
  30.151 +            <linkerLibStdlibItem>Mathematics</linkerLibStdlibItem>
  30.152 +            <linkerLibLibItem>pr__ml__sharedmem__meas_on</linkerLibLibItem>
  30.153 +            <linkerLibLibItem>reo_opt1_ml_lib__meas_on</linkerLibLibItem>
  30.154            </linkerLibItems>
  30.155          </linkerTool>
  30.156        </compileType>
  30.157 @@ -208,5 +320,470 @@
  30.158        <item path="../main.c" ex="false" tool="0" flavor2="0">
  30.159        </item>
  30.160      </conf>
  30.161 +    <conf name="longjmp" type="1">
  30.162 +      <toolsSet>
  30.163 +        <compilerSet>default</compilerSet>
  30.164 +        <dependencyChecking>true</dependencyChecking>
  30.165 +        <rebuildPropChanged>true</rebuildPropChanged>
  30.166 +      </toolsSet>
  30.167 +      <compileType>
  30.168 +        <cTool>
  30.169 +          <commandlineTool>gcc</commandlineTool>
  30.170 +          <incDir>
  30.171 +            <pElem>../..</pElem>
  30.172 +          </incDir>
  30.173 +          <preprocessorList>
  30.174 +            <Elem>X86</Elem>
  30.175 +          </preprocessorList>
  30.176 +        </cTool>
  30.177 +        <ccTool>
  30.178 +          <commandlineTool>gcc</commandlineTool>
  30.179 +        </ccTool>
  30.180 +        <linkerTool>
  30.181 +          <output>../../dist/bin/reo_matrix_mult__longjmp</output>
  30.182 +          <linkerAddLib>
  30.183 +            <pElem>../../PR__lib</pElem>
  30.184 +          </linkerAddLib>
  30.185 +          <linkerDynSerch>
  30.186 +            <pElem>../../PR__lib</pElem>
  30.187 +          </linkerDynSerch>
  30.188 +          <commandlineTool>gcc</commandlineTool>
  30.189 +          <linkerLibItems>
  30.190 +            <linkerLibLibItem>prmalloc</linkerLibLibItem>
  30.191 +            <linkerLibLibItem>prparam</linkerLibLibItem>
  30.192 +            <linkerLibLibItem>prqueue</linkerLibLibItem>
  30.193 +            <linkerLibStdlibItem>Mathematics</linkerLibStdlibItem>
  30.194 +            <linkerLibProjectItem>
  30.195 +              <makeArtifact PL="../../library__proto-runtime/nb__PR__ML__wDKU__lib"
  30.196 +                            CT="2"
  30.197 +                            CN="longjmp"
  30.198 +                            AC="true"
  30.199 +                            BL="true"
  30.200 +                            WD="../../library__proto-runtime/nb__PR__ML__wDKU__lib"
  30.201 +                            BC="${MAKE}  -f Makefile CONF=longjmp"
  30.202 +                            CC="${MAKE}  -f Makefile CONF=longjmp clean"
  30.203 +                            OP="../../PR__lib/libpr__ml__sharedmem__longjmp.so">
  30.204 +              </makeArtifact>
  30.205 +            </linkerLibProjectItem>
  30.206 +            <linkerLibProjectItem>
  30.207 +              <makeArtifact PL="../../library__Reo_opt1/nb__reo_opt1_wrapper_lib__as_lib"
  30.208 +                            CT="2"
  30.209 +                            CN="longjmp"
  30.210 +                            AC="true"
  30.211 +                            BL="true"
  30.212 +                            WD="../../library__Reo_opt1/nb__reo_opt1_wrapper_lib__as_lib"
  30.213 +                            BC="${MAKE}  -f Makefile CONF=longjmp"
  30.214 +                            CC="${MAKE}  -f Makefile CONF=longjmp clean"
  30.215 +                            OP="../../PR__lib/libreo_opt1_ml_lib__longjmp.so">
  30.216 +              </makeArtifact>
  30.217 +            </linkerLibProjectItem>
  30.218 +          </linkerLibItems>
  30.219 +        </linkerTool>
  30.220 +        <requiredProjects>
  30.221 +          <makeArtifact PL="../../library__Reo_opt1/nb__reo_opt1_wrapper_lib__as_lib"
  30.222 +                        CT="2"
  30.223 +                        CN="longjmp"
  30.224 +                        AC="true"
  30.225 +                        BL="true"
  30.226 +                        WD="../../library__Reo_opt1/nb__reo_opt1_wrapper_lib__as_lib"
  30.227 +                        BC="${MAKE}  -f Makefile CONF=longjmp"
  30.228 +                        CC="${MAKE}  -f Makefile CONF=longjmp clean"
  30.229 +                        OP="../../PR__lib/libreo_opt1_ml_lib__longjmp.so">
  30.230 +          </makeArtifact>
  30.231 +          <makeArtifact PL="../../library__proto-runtime/nb__PR__ML__wDKU__lib"
  30.232 +                        CT="2"
  30.233 +                        CN="longjmp"
  30.234 +                        AC="true"
  30.235 +                        BL="true"
  30.236 +                        WD="../../library__proto-runtime/nb__PR__ML__wDKU__lib"
  30.237 +                        BC="${MAKE}  -f Makefile CONF=longjmp"
  30.238 +                        CC="${MAKE}  -f Makefile CONF=longjmp clean"
  30.239 +                        OP="../../PR__lib/libpr__ml__sharedmem__longjmp.so">
  30.240 +          </makeArtifact>
  30.241 +        </requiredProjects>
  30.242 +      </compileType>
  30.243 +      <item path="../Matrix_Mult.c" ex="false" tool="0" flavor2="9">
  30.244 +      </item>
  30.245 +      <item path="../Matrix_Mult.h" ex="false" tool="3" flavor2="0">
  30.246 +      </item>
  30.247 +      <item path="../ParamHelper/Param.h" ex="false" tool="3" flavor2="0">
  30.248 +      </item>
  30.249 +      <item path="../ParamHelper/ParamBag.c" ex="false" tool="0" flavor2="9">
  30.250 +      </item>
  30.251 +      <item path="../ParamHelper/ReadParamsFromFile.c"
  30.252 +            ex="false"
  30.253 +            tool="0"
  30.254 +            flavor2="9">
  30.255 +      </item>
  30.256 +      <item path="../Reo__Matrix_Mult/Circuit.c" ex="false" tool="0" flavor2="9">
  30.257 +      </item>
  30.258 +      <item path="../Reo__Matrix_Mult/Circuit.h" ex="false" tool="3" flavor2="0">
  30.259 +      </item>
  30.260 +      <item path="../Reo__Matrix_Mult/DivideWork.c" ex="false" tool="0" flavor2="9">
  30.261 +      </item>
  30.262 +      <item path="../Reo__Matrix_Mult/Producer_and_Consumer.c"
  30.263 +            ex="false"
  30.264 +            tool="0"
  30.265 +            flavor2="9">
  30.266 +      </item>
  30.267 +      <item path="../Reo__Matrix_Mult/Reo__Matrix_Mult.h"
  30.268 +            ex="false"
  30.269 +            tool="3"
  30.270 +            flavor2="0">
  30.271 +      </item>
  30.272 +      <item path="../Reo__Matrix_Mult/SeedVP.c" ex="false" tool="0" flavor2="9">
  30.273 +      </item>
  30.274 +      <item path="../main.c" ex="false" tool="0" flavor2="9">
  30.275 +      </item>
  30.276 +    </conf>
  30.277 +    <conf name="longjmp_rtems" type="1">
  30.278 +      <toolsSet>
  30.279 +        <compilerSet>K1-tools|GNU</compilerSet>
  30.280 +        <dependencyChecking>true</dependencyChecking>
  30.281 +        <rebuildPropChanged>true</rebuildPropChanged>
  30.282 +      </toolsSet>
  30.283 +      <compileType>
  30.284 +        <cTool>
  30.285 +          <commandlineTool>k1-gcc</commandlineTool>
  30.286 +          <incDir>
  30.287 +            <pElem>../..</pElem>
  30.288 +          </incDir>
  30.289 +          <commandLine>-mos=rtems</commandLine>
  30.290 +          <preprocessorList>
  30.291 +            <Elem>RTEMS</Elem>
  30.292 +          </preprocessorList>
  30.293 +        </cTool>
  30.294 +        <linkerTool>
  30.295 +          <output>../../dist/bin/reo_matrix_mult__longjmp</output>
  30.296 +          <linkerAddLib>
  30.297 +            <pElem>../../PR__lib</pElem>
  30.298 +          </linkerAddLib>
  30.299 +          <linkerDynSerch>
  30.300 +            <pElem>../../PR__lib</pElem>
  30.301 +          </linkerDynSerch>
  30.302 +          <commandlineTool>k1-gcc</commandlineTool>
  30.303 +          <linkerLibItems>
  30.304 +            <linkerLibFileItem>../../PR__lib_rtems/prdynarray.a</linkerLibFileItem>
  30.305 +            <linkerLibFileItem>../../PR__lib_rtems/prqueue.a</linkerLibFileItem>
  30.306 +            <linkerLibFileItem>../../PR__lib_rtems/prhistogram.a</linkerLibFileItem>
  30.307 +            <linkerLibFileItem>../../PR__lib_rtems/prparam.a</linkerLibFileItem>
  30.308 +            <linkerLibFileItem>../../PR__lib_rtems/prlistofarrays.a</linkerLibFileItem>
  30.309 +            <linkerLibFileItem>../../PR__lib_rtems/prmalloc.a</linkerLibFileItem>
  30.310 +            <linkerLibProjectItem>
  30.311 +              <makeArtifact PL="../../library__proto-runtime/nb__PR__ML__wDKU__lib"
  30.312 +                            CT="3"
  30.313 +                            CN="longjmp_rtems"
  30.314 +                            AC="true"
  30.315 +                            BL="true"
  30.316 +                            WD="../../library__proto-runtime/nb__PR__ML__wDKU__lib"
  30.317 +                            BC="${MAKE}  -f Makefile CONF=longjmp_rtems"
  30.318 +                            CC="${MAKE}  -f Makefile CONF=longjmp_rtems clean"
  30.319 +                            OP="${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/libnb__pr__ml__wdku__lib.a">
  30.320 +              </makeArtifact>
  30.321 +            </linkerLibProjectItem>
  30.322 +            <linkerLibProjectItem>
  30.323 +              <makeArtifact PL="../../library__Reo_opt1/nb__reo_opt1_wrapper_lib__as_lib"
  30.324 +                            CT="3"
  30.325 +                            CN="longjmp_rtems"
  30.326 +                            AC="false"
  30.327 +                            BL="true"
  30.328 +                            WD="../../library__Reo_opt1/nb__reo_opt1_wrapper_lib__as_lib"
  30.329 +                            BC="${MAKE}  -f Makefile CONF=longjmp_rtems"
  30.330 +                            CC="${MAKE}  -f Makefile CONF=longjmp_rtems clean"
  30.331 +                            OP="${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/libnb__reo_opt1_wrapper_lib__as_lib.a">
  30.332 +              </makeArtifact>
  30.333 +            </linkerLibProjectItem>
  30.334 +            <linkerLibStdlibItem>Mathematics</linkerLibStdlibItem>
  30.335 +            <linkerLibLibItem>mppaipc_sim</linkerLibLibItem>
  30.336 +          </linkerLibItems>
  30.337 +        </linkerTool>
  30.338 +        <requiredProjects>
  30.339 +          <makeArtifact PL="../../library__Reo_opt1/nb__reo_opt1_wrapper_lib__as_lib"
  30.340 +                        CT="3"
  30.341 +                        CN="longjmp_rtems"
  30.342 +                        AC="true"
  30.343 +                        BL="false"
  30.344 +                        WD="../../library__Reo_opt1/nb__reo_opt1_wrapper_lib__as_lib"
  30.345 +                        BC="${MAKE}  -f Makefile CONF=longjmp_rtems"
  30.346 +                        CC="${MAKE}  -f Makefile CONF=longjmp_rtems clean"
  30.347 +                        OP="${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/libnb__reo_opt1_wrapper_lib__as_lib.a">
  30.348 +          </makeArtifact>
  30.349 +          <makeArtifact PL="../../library__proto-runtime/nb__PR__ML__wDKU__lib"
  30.350 +                        CT="3"
  30.351 +                        CN="longjmp_rtems"
  30.352 +                        AC="true"
  30.353 +                        BL="false"
  30.354 +                        WD="../../library__proto-runtime/nb__PR__ML__wDKU__lib"
  30.355 +                        BC="${MAKE}  -f Makefile CONF=longjmp_rtems"
  30.356 +                        CC="${MAKE}  -f Makefile CONF=longjmp_rtems clean"
  30.357 +                        OP="${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/libnb__pr__ml__wdku__lib.a">
  30.358 +          </makeArtifact>
  30.359 +        </requiredProjects>
  30.360 +      </compileType>
  30.361 +      <item path="../Matrix_Mult.c" ex="false" tool="0" flavor2="9">
  30.362 +      </item>
  30.363 +      <item path="../Matrix_Mult.h" ex="false" tool="3" flavor2="0">
  30.364 +      </item>
  30.365 +      <item path="../ParamHelper/Param.h" ex="false" tool="3" flavor2="0">
  30.366 +      </item>
  30.367 +      <item path="../ParamHelper/ParamBag.c" ex="false" tool="0" flavor2="9">
  30.368 +      </item>
  30.369 +      <item path="../ParamHelper/ReadParamsFromFile.c"
  30.370 +            ex="false"
  30.371 +            tool="0"
  30.372 +            flavor2="9">
  30.373 +      </item>
  30.374 +      <item path="../Reo__Matrix_Mult/Circuit.c" ex="false" tool="0" flavor2="9">
  30.375 +      </item>
  30.376 +      <item path="../Reo__Matrix_Mult/Circuit.h" ex="false" tool="3" flavor2="0">
  30.377 +      </item>
  30.378 +      <item path="../Reo__Matrix_Mult/DivideWork.c" ex="false" tool="0" flavor2="9">
  30.379 +      </item>
  30.380 +      <item path="../Reo__Matrix_Mult/Producer_and_Consumer.c"
  30.381 +            ex="false"
  30.382 +            tool="0"
  30.383 +            flavor2="9">
  30.384 +      </item>
  30.385 +      <item path="../Reo__Matrix_Mult/Reo__Matrix_Mult.h"
  30.386 +            ex="false"
  30.387 +            tool="3"
  30.388 +            flavor2="0">
  30.389 +      </item>
  30.390 +      <item path="../Reo__Matrix_Mult/SeedVP.c" ex="false" tool="0" flavor2="9">
  30.391 +      </item>
  30.392 +      <item path="../main.c" ex="false" tool="0" flavor2="9">
  30.393 +      </item>
  30.394 +    </conf>
  30.395 +    <conf name="longjmp_ARM" type="1">
  30.396 +      <toolsSet>
  30.397 +        <compilerSet>GNU_ARM|GNU</compilerSet>
  30.398 +        <dependencyChecking>true</dependencyChecking>
  30.399 +        <rebuildPropChanged>true</rebuildPropChanged>
  30.400 +      </toolsSet>
  30.401 +      <compileType>
  30.402 +        <cTool>
  30.403 +          <incDir>
  30.404 +            <pElem>../..</pElem>
  30.405 +          </incDir>
  30.406 +          <commandLine>-O2</commandLine>
  30.407 +          <preprocessorList>
  30.408 +            <Elem>ARM</Elem>
  30.409 +          </preprocessorList>
  30.410 +        </cTool>
  30.411 +        <linkerTool>
  30.412 +          <output>../../bin/ARM/reo_matrix_mult__longjmp</output>
  30.413 +          <linkerAddLib>
  30.414 +            <pElem>../../PR__lib</pElem>
  30.415 +          </linkerAddLib>
  30.416 +          <linkerDynSerch>
  30.417 +            <pElem>../../PR__lib</pElem>
  30.418 +          </linkerDynSerch>
  30.419 +          <linkerLibItems>
  30.420 +            <linkerLibProjectItem>
  30.421 +              <makeArtifact PL="../../library__proto-runtime/nb__PR__ML__wDKU__lib"
  30.422 +                            CT="3"
  30.423 +                            CN="longjmp_ARM"
  30.424 +                            AC="true"
  30.425 +                            BL="true"
  30.426 +                            WD="../../library__proto-runtime/nb__PR__ML__wDKU__lib"
  30.427 +                            BC="${MAKE}  -f Makefile CONF=longjmp_ARM"
  30.428 +                            CC="${MAKE}  -f Makefile CONF=longjmp_ARM clean"
  30.429 +                            OP="../../PR__lib_arm/pr__ml__wdku__lib.a">
  30.430 +              </makeArtifact>
  30.431 +            </linkerLibProjectItem>
  30.432 +            <linkerLibProjectItem>
  30.433 +              <makeArtifact PL="../../library__Reo_opt1/nb__reo_opt1_wrapper_lib__as_lib"
  30.434 +                            CT="3"
  30.435 +                            CN="longjmp_ARM"
  30.436 +                            AC="true"
  30.437 +                            BL="true"
  30.438 +                            WD="../../library__Reo_opt1/nb__reo_opt1_wrapper_lib__as_lib"
  30.439 +                            BC="${MAKE}  -f Makefile CONF=longjmp_ARM"
  30.440 +                            CC="${MAKE}  -f Makefile CONF=longjmp_ARM clean"
  30.441 +                            OP="../../PR__lib_arm/reo_opt1_wrapper_lib.a">
  30.442 +              </makeArtifact>
  30.443 +            </linkerLibProjectItem>
  30.444 +            <linkerLibStdlibItem>Mathematics</linkerLibStdlibItem>
  30.445 +            <linkerLibStdlibItem>PosixThreads</linkerLibStdlibItem>
  30.446 +            <linkerLibFileItem>../../PR__lib_arm/prdynarray.a</linkerLibFileItem>
  30.447 +            <linkerLibFileItem>../../PR__lib_arm/prhistogram.a</linkerLibFileItem>
  30.448 +            <linkerLibFileItem>../../PR__lib_arm/prlistofarrays.a</linkerLibFileItem>
  30.449 +            <linkerLibFileItem>../../PR__lib_arm/prmalloc.a</linkerLibFileItem>
  30.450 +            <linkerLibFileItem>../../PR__lib_arm/prparam.a</linkerLibFileItem>
  30.451 +            <linkerLibFileItem>../../PR__lib_arm/prqueue.a</linkerLibFileItem>
  30.452 +          </linkerLibItems>
  30.453 +        </linkerTool>
  30.454 +        <requiredProjects>
  30.455 +          <makeArtifact PL="../../library__Reo_opt1/nb__reo_opt1_wrapper_lib__as_lib"
  30.456 +                        CT="3"
  30.457 +                        CN="longjmp_ARM"
  30.458 +                        AC="true"
  30.459 +                        BL="true"
  30.460 +                        WD="../../library__Reo_opt1/nb__reo_opt1_wrapper_lib__as_lib"
  30.461 +                        BC="${MAKE}  -f Makefile CONF=longjmp_ARM"
  30.462 +                        CC="${MAKE}  -f Makefile CONF=longjmp_ARM clean"
  30.463 +                        OP="../../PR__lib_arm/reo_opt1_wrapper_lib.a">
  30.464 +          </makeArtifact>
  30.465 +          <makeArtifact PL="../../library__proto-runtime/nb__PR__ML__wDKU__lib"
  30.466 +                        CT="3"
  30.467 +                        CN="longjmp_ARM"
  30.468 +                        AC="true"
  30.469 +                        BL="true"
  30.470 +                        WD="../../library__proto-runtime/nb__PR__ML__wDKU__lib"
  30.471 +                        BC="${MAKE}  -f Makefile CONF=longjmp_ARM"
  30.472 +                        CC="${MAKE}  -f Makefile CONF=longjmp_ARM clean"
  30.473 +                        OP="../../PR__lib_arm/pr__ml__wdku__lib.a">
  30.474 +          </makeArtifact>
  30.475 +        </requiredProjects>
  30.476 +      </compileType>
  30.477 +      <item path="../Matrix_Mult.c" ex="false" tool="0" flavor2="9">
  30.478 +      </item>
  30.479 +      <item path="../Matrix_Mult.h" ex="false" tool="3" flavor2="0">
  30.480 +      </item>
  30.481 +      <item path="../ParamHelper/Param.h" ex="false" tool="3" flavor2="0">
  30.482 +      </item>
  30.483 +      <item path="../ParamHelper/ParamBag.c" ex="false" tool="0" flavor2="9">
  30.484 +      </item>
  30.485 +      <item path="../ParamHelper/ReadParamsFromFile.c"
  30.486 +            ex="false"
  30.487 +            tool="0"
  30.488 +            flavor2="9">
  30.489 +      </item>
  30.490 +      <item path="../Reo__Matrix_Mult/Circuit.c" ex="false" tool="0" flavor2="9">
  30.491 +      </item>
  30.492 +      <item path="../Reo__Matrix_Mult/Circuit.h" ex="false" tool="3" flavor2="0">
  30.493 +      </item>
  30.494 +      <item path="../Reo__Matrix_Mult/DivideWork.c" ex="false" tool="0" flavor2="9">
  30.495 +      </item>
  30.496 +      <item path="../Reo__Matrix_Mult/Producer_and_Consumer.c"
  30.497 +            ex="false"
  30.498 +            tool="0"
  30.499 +            flavor2="9">
  30.500 +      </item>
  30.501 +      <item path="../Reo__Matrix_Mult/Reo__Matrix_Mult.h"
  30.502 +            ex="false"
  30.503 +            tool="3"
  30.504 +            flavor2="0">
  30.505 +      </item>
  30.506 +      <item path="../Reo__Matrix_Mult/SeedVP.c" ex="false" tool="0" flavor2="9">
  30.507 +      </item>
  30.508 +      <item path="../main.c" ex="false" tool="0" flavor2="9">
  30.509 +      </item>
  30.510 +    </conf>
  30.511 +    <conf name="longjmp_X86_static" type="1">
  30.512 +      <toolsSet>
  30.513 +        <compilerSet>GNU|GNU</compilerSet>
  30.514 +        <dependencyChecking>true</dependencyChecking>
  30.515 +        <rebuildPropChanged>true</rebuildPropChanged>
  30.516 +      </toolsSet>
  30.517 +      <compileType>
  30.518 +        <cTool>
  30.519 +          <incDir>
  30.520 +            <pElem>../..</pElem>
  30.521 +          </incDir>
  30.522 +          <preprocessorList>
  30.523 +            <Elem>ARM</Elem>
  30.524 +          </preprocessorList>
  30.525 +        </cTool>
  30.526 +        <linkerTool>
  30.527 +          <output>../../bin/X86/reo_matrix_mult__longjmp</output>
  30.528 +          <linkerAddLib>
  30.529 +            <pElem>../../PR__lib</pElem>
  30.530 +          </linkerAddLib>
  30.531 +          <linkerDynSerch>
  30.532 +            <pElem>../../PR__lib</pElem>
  30.533 +          </linkerDynSerch>
  30.534 +          <linkerLibItems>
  30.535 +            <linkerLibProjectItem>
  30.536 +              <makeArtifact PL="../../library__proto-runtime/nb__PR__ML__wDKU__lib"
  30.537 +                            CT="3"
  30.538 +                            CN="longjmp_static_X86"
  30.539 +                            AC="true"
  30.540 +                            BL="true"
  30.541 +                            WD="../../library__proto-runtime/nb__PR__ML__wDKU__lib"
  30.542 +                            BC="${MAKE}  -f Makefile CONF=longjmp_static_X86"
  30.543 +                            CC="${MAKE}  -f Makefile CONF=longjmp_static_X86 clean"
  30.544 +                            OP="../../PR__lib/pr__ml__wdku__lib.a">
  30.545 +              </makeArtifact>
  30.546 +            </linkerLibProjectItem>
  30.547 +            <linkerLibProjectItem>
  30.548 +              <makeArtifact PL="../../library__Reo_opt1/nb__reo_opt1_wrapper_lib__as_lib"
  30.549 +                            CT="3"
  30.550 +                            CN="longjmp_static_X86"
  30.551 +                            AC="true"
  30.552 +                            BL="true"
  30.553 +                            WD="../../library__Reo_opt1/nb__reo_opt1_wrapper_lib__as_lib"
  30.554 +                            BC="${MAKE}  -f Makefile CONF=longjmp_static_X86"
  30.555 +                            CC="${MAKE}  -f Makefile CONF=longjmp_static_X86 clean"
  30.556 +                            OP="../../PR__lib/reo_opt1_wrapper_lib.a">
  30.557 +              </makeArtifact>
  30.558 +            </linkerLibProjectItem>
  30.559 +            <linkerLibStdlibItem>Mathematics</linkerLibStdlibItem>
  30.560 +            <linkerLibStdlibItem>PosixThreads</linkerLibStdlibItem>
  30.561 +            <linkerLibFileItem>../../PR__lib/prdynarray.a</linkerLibFileItem>
  30.562 +            <linkerLibFileItem>../../PR__lib/prlistofarrays.a</linkerLibFileItem>
  30.563 +            <linkerLibFileItem>../../PR__lib/prmalloc.a</linkerLibFileItem>
  30.564 +            <linkerLibFileItem>../../PR__lib/prparam.a</linkerLibFileItem>
  30.565 +            <linkerLibFileItem>../../PR__lib/prqueue.a</linkerLibFileItem>
  30.566 +            <linkerLibFileItem>../../PR__lib/prhistogram.a</linkerLibFileItem>
  30.567 +          </linkerLibItems>
  30.568 +        </linkerTool>
  30.569 +        <requiredProjects>
  30.570 +          <makeArtifact PL="../../library__Reo_opt1/nb__reo_opt1_wrapper_lib__as_lib"
  30.571 +                        CT="3"
  30.572 +                        CN="longjmp_static_X86"
  30.573 +                        AC="true"
  30.574 +                        BL="true"
  30.575 +                        WD="../../library__Reo_opt1/nb__reo_opt1_wrapper_lib__as_lib"
  30.576 +                        BC="${MAKE}  -f Makefile CONF=longjmp_static_X86"
  30.577 +                        CC="${MAKE}  -f Makefile CONF=longjmp_static_X86 clean"
  30.578 +                        OP="../../PR__lib/reo_opt1_wrapper_lib.a">
  30.579 +          </makeArtifact>
  30.580 +          <makeArtifact PL="../../library__proto-runtime/nb__PR__ML__wDKU__lib"
  30.581 +                        CT="3"
  30.582 +                        CN="longjmp_static_X86"
  30.583 +                        AC="true"
  30.584 +                        BL="true"
  30.585 +                        WD="../../library__proto-runtime/nb__PR__ML__wDKU__lib"
  30.586 +                        BC="${MAKE}  -f Makefile CONF=longjmp_static_X86"
  30.587 +                        CC="${MAKE}  -f Makefile CONF=longjmp_static_X86 clean"
  30.588 +                        OP="../../PR__lib/pr__ml__wdku__lib.a">
  30.589 +          </makeArtifact>
  30.590 +        </requiredProjects>
  30.591 +      </compileType>
  30.592 +      <item path="../Matrix_Mult.c" ex="false" tool="0" flavor2="9">
  30.593 +      </item>
  30.594 +      <item path="../Matrix_Mult.h" ex="false" tool="3" flavor2="0">
  30.595 +      </item>
  30.596 +      <item path="../ParamHelper/Param.h" ex="false" tool="3" flavor2="0">
  30.597 +      </item>
  30.598 +      <item path="../ParamHelper/ParamBag.c" ex="false" tool="0" flavor2="9">
  30.599 +      </item>
  30.600 +      <item path="../ParamHelper/ReadParamsFromFile.c"
  30.601 +            ex="false"
  30.602 +            tool="0"
  30.603 +            flavor2="9">
  30.604 +      </item>
  30.605 +      <item path="../Reo__Matrix_Mult/Circuit.c" ex="false" tool="0" flavor2="9">
  30.606 +      </item>
  30.607 +      <item path="../Reo__Matrix_Mult/Circuit.h" ex="false" tool="3" flavor2="0">
  30.608 +      </item>
  30.609 +      <item path="../Reo__Matrix_Mult/DivideWork.c" ex="false" tool="0" flavor2="9">
  30.610 +      </item>
  30.611 +      <item path="../Reo__Matrix_Mult/Producer_and_Consumer.c"
  30.612 +            ex="false"
  30.613 +            tool="0"
  30.614 +            flavor2="9">
  30.615 +      </item>
  30.616 +      <item path="../Reo__Matrix_Mult/Reo__Matrix_Mult.h"
  30.617 +            ex="false"
  30.618 +            tool="3"
  30.619 +            flavor2="0">
  30.620 +      </item>
  30.621 +      <item path="../Reo__Matrix_Mult/SeedVP.c" ex="false" tool="0" flavor2="9">
  30.622 +      </item>
  30.623 +      <item path="../main.c" ex="false" tool="0" flavor2="9">
  30.624 +      </item>
  30.625 +    </conf>
  30.626    </confs>
  30.627  </configurationDescriptor>
    31.1 --- a/nb__Reo_matrix_mult/nbproject/private/Makefile-variables.mk	Wed Feb 19 09:27:10 2014 -0800
    31.2 +++ b/nb__Reo_matrix_mult/nbproject/private/Makefile-variables.mk	Sat Jul 12 20:21:47 2014 +0200
    31.3 @@ -6,3 +6,8 @@
    31.4  # Debug configuration
    31.5  # Release configuration
    31.6  # Debug_Sequential configuration
    31.7 +# MEAS_ON configuration
    31.8 +# longjmp configuration
    31.9 +# longjmp_rtems configuration
   31.10 +# longjmp_ARM configuration
   31.11 +# longjmp_X86_static configuration
    32.1 --- a/nb__Reo_matrix_mult/nbproject/private/configurations.xml	Wed Feb 19 09:27:10 2014 -0800
    32.2 +++ b/nb__Reo_matrix_mult/nbproject/private/configurations.xml	Sat Jul 12 20:21:47 2014 +0200
    32.3 @@ -1,5 +1,5 @@
    32.4  <?xml version="1.0" encoding="UTF-8"?>
    32.5 -<configurationDescriptor version="90">
    32.6 +<configurationDescriptor version="94">
    32.7    <projectmakefile>Makefile</projectmakefile>
    32.8    <confs>
    32.9      <conf name="Debug" type="1">
   32.10 @@ -95,12 +95,12 @@
   32.11            <runcommandpicklistitem>"${OUTPUT_PATH}" 10 config_files/9x9.txt</runcommandpicklistitem>
   32.12            <runcommandpicklistitem>"${OUTPUT_PATH}" 10 config_files/Matrix_Mult_config_files/ matrix_mult_config_size_9.txt</runcommandpicklistitem>
   32.13            <runcommandpicklistitem>"${OUTPUT_PATH}" 10  ./config_files/Matrix_Mult_config_files/ matrix_mult_config_size_9.txt</runcommandpicklistitem>
   32.14 +          <runcommandpicklistitem>"${OUTPUT_PATH}" 10  ./config_files/Matrix_Mult_config_files/matrix_mult_config_size_8.txt</runcommandpicklistitem>
   32.15            <runcommandpicklistitem>"${OUTPUT_PATH}" 10  ./config_files/Matrix_Mult_config_files/matrix_mult_config_size_9.txt</runcommandpicklistitem>
   32.16 -          <runcommandpicklistitem>"${OUTPUT_PATH}" 10  ./config_files/Matrix_Mult_config_files/matrix_mult_config_size_8.txt</runcommandpicklistitem>
   32.17            <runcommandpicklistitem>"${OUTPUT_PATH}" 10  ./config_files/Matrix_Mult_config_files/matrix_mult_config_size_16.txt</runcommandpicklistitem>
   32.18          </runcommandpicklist>
   32.19          <runcommand>"${OUTPUT_PATH}" 10  ./config_files/Matrix_Mult_config_files/matrix_mult_config_size_16.txt</runcommand>
   32.20 -        <rundir>/mnt/hgfs/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/dist</rundir>
   32.21 +        <rundir>/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/dist</rundir>
   32.22          <buildfirst>true</buildfirst>
   32.23          <terminal-type>0</terminal-type>
   32.24          <remove-instrumentation>0</remove-instrumentation>
   32.25 @@ -109,5 +109,244 @@
   32.26          </environment>
   32.27        </runprofile>
   32.28      </conf>
   32.29 +    <conf name="MEAS_ON" type="1">
   32.30 +      <toolsSet>
   32.31 +        <developmentServer>localhost</developmentServer>
   32.32 +        <platform>2</platform>
   32.33 +      </toolsSet>
   32.34 +      <dbx_gdbdebugger version="1">
   32.35 +        <gdb_pathmaps>
   32.36 +        </gdb_pathmaps>
   32.37 +        <gdb_interceptlist>
   32.38 +          <gdbinterceptoptions gdb_all="false" gdb_unhandled="true" gdb_unexpected="true"/>
   32.39 +        </gdb_interceptlist>
   32.40 +        <gdb_options>
   32.41 +          <DebugOptions>
   32.42 +          </DebugOptions>
   32.43 +        </gdb_options>
   32.44 +        <gdb_buildfirst gdb_buildfirst_overriden="false" gdb_buildfirst_old="false"/>
   32.45 +      </dbx_gdbdebugger>
   32.46 +      <nativedebugger version="1">
   32.47 +        <engine>gdb</engine>
   32.48 +      </nativedebugger>
   32.49 +      <runprofile version="9">
   32.50 +        <runcommandpicklist>
   32.51 +          <runcommandpicklistitem>"${OUTPUT_PATH}"</runcommandpicklistitem>
   32.52 +          <runcommandpicklistitem>"${OUTPUT_PATH}" 10 9x9.txt</runcommandpicklistitem>
   32.53 +          <runcommandpicklistitem>"${OUTPUT_PATH}" 10 config_files/9x9.txt</runcommandpicklistitem>
   32.54 +          <runcommandpicklistitem>"${OUTPUT_PATH}" 10 config_files/Matrix_Mult_config_files/ matrix_mult_config_size_9.txt</runcommandpicklistitem>
   32.55 +          <runcommandpicklistitem>"${OUTPUT_PATH}" 10  ./config_files/Matrix_Mult_config_files/ matrix_mult_config_size_9.txt</runcommandpicklistitem>
   32.56 +          <runcommandpicklistitem>"${OUTPUT_PATH}" 10  ./config_files/Matrix_Mult_config_files/matrix_mult_config_size_8.txt</runcommandpicklistitem>
   32.57 +          <runcommandpicklistitem>"${OUTPUT_PATH}" 10  ./config_files/Matrix_Mult_config_files/matrix_mult_config_size_9.txt</runcommandpicklistitem>
   32.58 +          <runcommandpicklistitem>"${OUTPUT_PATH}" 10  ./config_files/Matrix_Mult_config_files/matrix_mult_config_size_16.txt</runcommandpicklistitem>
   32.59 +          <runcommandpicklistitem>"${OUTPUT_PATH}" 10  ./config_files/Matrix_Mult_config_files/matrix_mult_config_size_2048.txt</runcommandpicklistitem>
   32.60 +        </runcommandpicklist>
   32.61 +        <runcommand>"${OUTPUT_PATH}" 10  ./config_files/Matrix_Mult_config_files/matrix_mult_config_size_2048.txt</runcommand>
   32.62 +        <rundir>../../dist</rundir>
   32.63 +        <buildfirst>true</buildfirst>
   32.64 +        <terminal-type>0</terminal-type>
   32.65 +        <remove-instrumentation>0</remove-instrumentation>
   32.66 +        <environment>
   32.67 +          <variable name="LD_LIBRARY_PATH" value="../PR__lib"/>
   32.68 +        </environment>
   32.69 +      </runprofile>
   32.70 +    </conf>
   32.71 +    <conf name="longjmp" type="1">
   32.72 +      <toolsSet>
   32.73 +        <developmentServer>localhost</developmentServer>
   32.74 +        <platform>2</platform>
   32.75 +      </toolsSet>
   32.76 +      <dbx_gdbdebugger version="1">
   32.77 +        <gdb_pathmaps>
   32.78 +          <gdb_pathmap gdb_from="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/"
   32.79 +                       gdb_to="/home/coolicer/Documents/Bach Proj/"/>
   32.80 +        </gdb_pathmaps>
   32.81 +        <gdb_interceptlist>
   32.82 +          <gdbinterceptoptions gdb_all="false" gdb_unhandled="true" gdb_unexpected="true"/>
   32.83 +        </gdb_interceptlist>
   32.84 +        <gdb_options>
   32.85 +          <DebugOptions>
   32.86 +            <option name="gdb_detach_on_fork" value="off"/>
   32.87 +            <option name="gdb_init_file" value=""/>
   32.88 +            <option name="gdb_source_dirs"
   32.89 +                    value="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/VReo_longjmp_test/library__proto-runtime/Defines:/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/VReo_longjmp_test/library__proto-runtime/HW_Dependent_Primitives:/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/VReo_longjmp_test/library__proto-runtime/Services_Offered_by_PR:/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/VReo_longjmp_test/library__proto-runtime/Services_Offered_by_PR/Services_Language:/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/VReo_longjmp_test/library__proto-runtime/Services_Offered_by_PR/Services_Language/Measurement:/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/VReo_longjmp_test/library__Reo_opt1:/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/VReo_longjmp_test/library__proto-runtime:/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/VReo_longjmp_test/Application:/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/VReo_longjmp_test/Application/Reo__Matrix_Mult:/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/VReo_longjmp_test/libraries__C_utility/PR__malloc"/>
   32.90 +          </DebugOptions>
   32.91 +        </gdb_options>
   32.92 +        <gdb_buildfirst gdb_buildfirst_overriden="false" gdb_buildfirst_old="false"/>
   32.93 +      </dbx_gdbdebugger>
   32.94 +      <nativedebugger version="1">
   32.95 +        <engine>gdb</engine>
   32.96 +      </nativedebugger>
   32.97 +      <runprofile version="9">
   32.98 +        <runcommandpicklist>
   32.99 +          <runcommandpicklistitem>"${OUTPUT_PATH}"</runcommandpicklistitem>
  32.100 +          <runcommandpicklistitem>"${OUTPUT_PATH}" 10 9x9.txt</runcommandpicklistitem>
  32.101 +          <runcommandpicklistitem>"${OUTPUT_PATH}" 10 config_files/9x9.txt</runcommandpicklistitem>
  32.102 +          <runcommandpicklistitem>"${OUTPUT_PATH}" 10 config_files/Matrix_Mult_config_files/ matrix_mult_config_size_9.txt</runcommandpicklistitem>
  32.103 +          <runcommandpicklistitem>"${OUTPUT_PATH}" 10  ./config_files/Matrix_Mult_config_files/ matrix_mult_config_size_9.txt</runcommandpicklistitem>
  32.104 +          <runcommandpicklistitem>"${OUTPUT_PATH}" 10  ./config_files/Matrix_Mult_config_files/matrix_mult_config_size_8.txt</runcommandpicklistitem>
  32.105 +          <runcommandpicklistitem>"${OUTPUT_PATH}" 10  ./config_files/Matrix_Mult_config_files/matrix_mult_config_size_9.txt</runcommandpicklistitem>
  32.106 +          <runcommandpicklistitem>"${OUTPUT_PATH}" 10  ./config_files/Matrix_Mult_config_files/matrix_mult_config_size_16.txt</runcommandpicklistitem>
  32.107 +          <runcommandpicklistitem>"${OUTPUT_PATH}" 10  ./config_files/Matrix_Mult_config_files/matrix_mult_config_size_2048.txt</runcommandpicklistitem>
  32.108 +        </runcommandpicklist>
  32.109 +        <runcommand>"${OUTPUT_PATH}" 10  ./config_files/Matrix_Mult_config_files/matrix_mult_config_size_2048.txt</runcommand>
  32.110 +        <rundir>../../dist</rundir>
  32.111 +        <buildfirst>true</buildfirst>
  32.112 +        <console-type>1</console-type>
  32.113 +        <terminal-type>1</terminal-type>
  32.114 +        <remove-instrumentation>0</remove-instrumentation>
  32.115 +        <environment>
  32.116 +          <variable name="LD_LIBRARY_PATH" value="../PR__lib"/>
  32.117 +        </environment>
  32.118 +      </runprofile>
  32.119 +    </conf>
  32.120 +    <conf name="longjmp_rtems" type="1">
  32.121 +      <toolsSet>
  32.122 +        <developmentServer>localhost</developmentServer>
  32.123 +        <platform>2</platform>
  32.124 +      </toolsSet>
  32.125 +      <dbx_gdbdebugger version="1">
  32.126 +        <gdb_pathmaps>
  32.127 +          <gdb_pathmap gdb_from="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/"
  32.128 +                       gdb_to="/home/coolicer/Documents/Bach Proj/"/>
  32.129 +        </gdb_pathmaps>
  32.130 +        <gdb_interceptlist>
  32.131 +          <gdbinterceptoptions gdb_all="false" gdb_unhandled="true" gdb_unexpected="true"/>
  32.132 +        </gdb_interceptlist>
  32.133 +        <gdb_options>
  32.134 +          <DebugOptions>
  32.135 +            <option name="gdb_detach_on_fork" value="off"/>
  32.136 +            <option name="gdb_init_file" value=""/>
  32.137 +            <option name="gdb_source_dirs"
  32.138 +                    value="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/VReo_longjmp_test/library__proto-runtime/Defines:/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/VReo_longjmp_test/library__proto-runtime/HW_Dependent_Primitives:/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/VReo_longjmp_test/library__proto-runtime/Services_Offered_by_PR:/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/VReo_longjmp_test/library__proto-runtime/Services_Offered_by_PR/Services_Language:/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/VReo_longjmp_test/library__proto-runtime/Services_Offered_by_PR/Services_Language/Measurement:/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/VReo_longjmp_test/library__Reo_opt1:/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/VReo_longjmp_test/library__proto-runtime:/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/VReo_longjmp_test/Application:/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/VReo_longjmp_test/Application/Reo__Matrix_Mult:/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/VReo_longjmp_test/libraries__C_utility/PR__malloc"/>
  32.139 +          </DebugOptions>
  32.140 +        </gdb_options>
  32.141 +        <gdb_buildfirst gdb_buildfirst_overriden="false" gdb_buildfirst_old="false"/>
  32.142 +      </dbx_gdbdebugger>
  32.143 +      <nativedebugger version="1">
  32.144 +        <engine>gdb</engine>
  32.145 +      </nativedebugger>
  32.146 +      <runprofile version="9">
  32.147 +        <runcommandpicklist>
  32.148 +          <runcommandpicklistitem>"${OUTPUT_PATH}"</runcommandpicklistitem>
  32.149 +          <runcommandpicklistitem>"${OUTPUT_PATH}" 10 9x9.txt</runcommandpicklistitem>
  32.150 +          <runcommandpicklistitem>"${OUTPUT_PATH}" 10 config_files/9x9.txt</runcommandpicklistitem>
  32.151 +          <runcommandpicklistitem>"${OUTPUT_PATH}" 10 config_files/Matrix_Mult_config_files/ matrix_mult_config_size_9.txt</runcommandpicklistitem>
  32.152 +          <runcommandpicklistitem>"${OUTPUT_PATH}" 10  ./config_files/Matrix_Mult_config_files/ matrix_mult_config_size_9.txt</runcommandpicklistitem>
  32.153 +          <runcommandpicklistitem>"${OUTPUT_PATH}" 10  ./config_files/Matrix_Mult_config_files/matrix_mult_config_size_8.txt</runcommandpicklistitem>
  32.154 +          <runcommandpicklistitem>"${OUTPUT_PATH}" 10  ./config_files/Matrix_Mult_config_files/matrix_mult_config_size_9.txt</runcommandpicklistitem>
  32.155 +          <runcommandpicklistitem>"${OUTPUT_PATH}" 10  ./config_files/Matrix_Mult_config_files/matrix_mult_config_size_16.txt</runcommandpicklistitem>
  32.156 +          <runcommandpicklistitem>"${OUTPUT_PATH}" 10  ./config_files/Matrix_Mult_config_files/matrix_mult_config_size_2048.txt</runcommandpicklistitem>
  32.157 +        </runcommandpicklist>
  32.158 +        <runcommand>"${OUTPUT_PATH}" 10  ./config_files/Matrix_Mult_config_files/matrix_mult_config_size_2048.txt</runcommand>
  32.159 +        <rundir>../../dist</rundir>
  32.160 +        <buildfirst>true</buildfirst>
  32.161 +        <console-type>1</console-type>
  32.162 +        <terminal-type>1</terminal-type>
  32.163 +        <remove-instrumentation>0</remove-instrumentation>
  32.164 +        <environment>
  32.165 +          <variable name="LD_LIBRARY_PATH" value="../PR__lib"/>
  32.166 +        </environment>
  32.167 +      </runprofile>
  32.168 +    </conf>
  32.169 +    <conf name="longjmp_ARM" type="1">
  32.170 +      <toolsSet>
  32.171 +        <developmentServer>localhost</developmentServer>
  32.172 +        <platform>2</platform>
  32.173 +      </toolsSet>
  32.174 +      <dbx_gdbdebugger version="1">
  32.175 +        <gdb_pathmaps>
  32.176 +          <gdb_pathmap gdb_from="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/"
  32.177 +                       gdb_to="/home/coolicer/Documents/Bach\ Proj/"/>
  32.178 +        </gdb_pathmaps>
  32.179 +        <gdb_interceptlist>
  32.180 +          <gdbinterceptoptions gdb_all="false" gdb_unhandled="true" gdb_unexpected="true"/>
  32.181 +        </gdb_interceptlist>
  32.182 +        <gdb_options>
  32.183 +          <DebugOptions>
  32.184 +            <option name="gdb_detach_on_fork" value="off"/>
  32.185 +            <option name="gdb_init_file" value=""/>
  32.186 +            <option name="gdb_source_dirs"
  32.187 +                    value="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/VReo_longjmp_test/library__proto-runtime/Defines:/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/VReo_longjmp_test/library__proto-runtime/HW_Dependent_Primitives:/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/VReo_longjmp_test/library__proto-runtime/Services_Offered_by_PR:/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/VReo_longjmp_test/library__proto-runtime/Services_Offered_by_PR/Services_Language:/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/VReo_longjmp_test/library__proto-runtime/Services_Offered_by_PR/Services_Language/Measurement:/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/VReo_longjmp_test/library__Reo_opt1:/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/VReo_longjmp_test/library__proto-runtime:/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/VReo_longjmp_test/Application:/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/VReo_longjmp_test/Application/Reo__Matrix_Mult:/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/VReo_longjmp_test/libraries__C_utility/PR__malloc"/>
  32.188 +          </DebugOptions>
  32.189 +        </gdb_options>
  32.190 +        <gdb_buildfirst gdb_buildfirst_overriden="false" gdb_buildfirst_old="false"/>
  32.191 +      </dbx_gdbdebugger>
  32.192 +      <nativedebugger version="1">
  32.193 +        <engine>gdb</engine>
  32.194 +      </nativedebugger>
  32.195 +      <runprofile version="9">
  32.196 +        <runcommandpicklist>
  32.197 +          <runcommandpicklistitem>"${OUTPUT_PATH}" 10  ./config_files/Matrix_Mult_config_files/ matrix_mult_config_size_9.txt</runcommandpicklistitem>
  32.198 +          <runcommandpicklistitem>"${OUTPUT_PATH}" 10  ./config_files/Matrix_Mult_config_files/matrix_mult_config_size_8.txt</runcommandpicklistitem>
  32.199 +          <runcommandpicklistitem>"${OUTPUT_PATH}" 10  ./config_files/Matrix_Mult_config_files/matrix_mult_config_size_9.txt</runcommandpicklistitem>
  32.200 +          <runcommandpicklistitem>"${OUTPUT_PATH}" 10  ./config_files/Matrix_Mult_config_files/matrix_mult_config_size_16.txt</runcommandpicklistitem>
  32.201 +          <runcommandpicklistitem>"${OUTPUT_PATH}" 10  ./config_files/Matrix_Mult_config_files/matrix_mult_config_size_2048.txt</runcommandpicklistitem>
  32.202 +          <runcommandpicklistitem>qemu-arm -L /home/coolicer/Documents/ARM/toolchain/arm-none-linux-gnueabi/libc/ -U LD_LIBRARY_PATH "${OUTPUT_PATH}" 10  ./config_files/Matrix_Mult_config_files/matrix_mult_config_size_2048.txt</runcommandpicklistitem>
  32.203 +          <runcommandpicklistitem>qemu-arm -L /home/coolicer/Documents/ARM/toolchain/arm-none-linux-gnueabi/libc/ -U LD_LIBRARY_PATH "${OUTPUT_PATH}" 10  matrix2048.txt</runcommandpicklistitem>
  32.204 +          <runcommandpicklistitem>qemu-arm -L /home/coolicer/Documents/ARM/toolchain/arm-none-linux-gnueabi/libc/ -U LD_LIBRARY_PATH -S "${OUTPUT_PATH}" 10 matrix2048.txt</runcommandpicklistitem>
  32.205 +          <runcommandpicklistitem>qemu-arm -L /home/coolicer/Documents/ARM/toolchain/arm-none-linux-gnueabi/libc/ -U LD_LIBRARY_PATH -g 1234 "${OUTPUT_PATH}" 10 matrix2048.txt</runcommandpicklistitem>
  32.206 +          <runcommandpicklistitem>qemu-arm -L /home/coolicer/Documents/ARM/toolchain/arm-none-linux-gnueabi/libc/ -U LD_LIBRARY_PATH "${OUTPUT_PATH}" 10 matrix2048.txt</runcommandpicklistitem>
  32.207 +        </runcommandpicklist>
  32.208 +        <runcommand>qemu-arm -L /home/coolicer/Documents/ARM/toolchain/arm-none-linux-gnueabi/libc/ -U LD_LIBRARY_PATH "${OUTPUT_PATH}" 10 matrix2048.txt</runcommand>
  32.209 +        <rundir>../../bin/ARM/</rundir>
  32.210 +        <buildfirst>true</buildfirst>
  32.211 +        <console-type>1</console-type>
  32.212 +        <terminal-type>1</terminal-type>
  32.213 +        <remove-instrumentation>0</remove-instrumentation>
  32.214 +        <environment>
  32.215 +        </environment>
  32.216 +      </runprofile>
  32.217 +    </conf>
  32.218 +    <conf name="longjmp_X86_static" type="1">
  32.219 +      <toolsSet>
  32.220 +        <developmentServer>localhost</developmentServer>
  32.221 +        <platform>2</platform>
  32.222 +      </toolsSet>
  32.223 +      <dbx_gdbdebugger version="1">
  32.224 +        <gdb_pathmaps>
  32.225 +          <gdb_pathmap gdb_from="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/"
  32.226 +                       gdb_to="/home/coolicer/Documents/Bach Proj/"/>
  32.227 +        </gdb_pathmaps>
  32.228 +        <gdb_interceptlist>
  32.229 +          <gdbinterceptoptions gdb_all="false" gdb_unhandled="true" gdb_unexpected="true"/>
  32.230 +        </gdb_interceptlist>
  32.231 +        <gdb_options>
  32.232 +          <DebugOptions>
  32.233 +            <option name="gdb_detach_on_fork" value="off"/>
  32.234 +            <option name="gdb_init_file" value=""/>
  32.235 +            <option name="gdb_source_dirs"
  32.236 +                    value="/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/VReo_longjmp_test/library__proto-runtime/Defines:/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/VReo_longjmp_test/library__proto-runtime/HW_Dependent_Primitives:/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/VReo_longjmp_test/library__proto-runtime/Services_Offered_by_PR:/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/VReo_longjmp_test/library__proto-runtime/Services_Offered_by_PR/Services_Language:/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/VReo_longjmp_test/library__proto-runtime/Services_Offered_by_PR/Services_Language/Measurement:/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/VReo_longjmp_test/library__Reo_opt1:/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/VReo_longjmp_test/library__proto-runtime:/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/VReo_longjmp_test/Application:/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/VReo_longjmp_test/Application/Reo__Matrix_Mult:/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/VReo_longjmp_test/libraries__C_utility/PR__malloc"/>
  32.237 +          </DebugOptions>
  32.238 +        </gdb_options>
  32.239 +        <gdb_buildfirst gdb_buildfirst_overriden="false" gdb_buildfirst_old="false"/>
  32.240 +      </dbx_gdbdebugger>
  32.241 +      <nativedebugger version="1">
  32.242 +        <engine>gdb</engine>
  32.243 +      </nativedebugger>
  32.244 +      <runprofile version="9">
  32.245 +        <runcommandpicklist>
  32.246 +          <runcommandpicklistitem>"${OUTPUT_PATH}" 10 9x9.txt</runcommandpicklistitem>
  32.247 +          <runcommandpicklistitem>"${OUTPUT_PATH}" 10 config_files/9x9.txt</runcommandpicklistitem>
  32.248 +          <runcommandpicklistitem>"${OUTPUT_PATH}" 10 config_files/Matrix_Mult_config_files/ matrix_mult_config_size_9.txt</runcommandpicklistitem>
  32.249 +          <runcommandpicklistitem>"${OUTPUT_PATH}" 10  ./config_files/Matrix_Mult_config_files/ matrix_mult_config_size_9.txt</runcommandpicklistitem>
  32.250 +          <runcommandpicklistitem>"${OUTPUT_PATH}" 10  ./config_files/Matrix_Mult_config_files/matrix_mult_config_size_8.txt</runcommandpicklistitem>
  32.251 +          <runcommandpicklistitem>"${OUTPUT_PATH}" 10  ./config_files/Matrix_Mult_config_files/matrix_mult_config_size_9.txt</runcommandpicklistitem>
  32.252 +          <runcommandpicklistitem>"${OUTPUT_PATH}" 10  ./config_files/Matrix_Mult_config_files/matrix_mult_config_size_16.txt</runcommandpicklistitem>
  32.253 +          <runcommandpicklistitem>"${OUTPUT_PATH}" 10  ./config_files/Matrix_Mult_config_files/matrix_mult_config_size_2048.txt</runcommandpicklistitem>
  32.254 +          <runcommandpicklistitem>"${OUTPUT_PATH}" 1000  ./config_files/Matrix_Mult_config_files/matrix_mult_config_size_2048.txt</runcommandpicklistitem>
  32.255 +          <runcommandpicklistitem>"${OUTPUT_PATH}" 1 ./config_files/Matrix_Mult_config_files/matrix_mult_config_size_2048.txt</runcommandpicklistitem>
  32.256 +        </runcommandpicklist>
  32.257 +        <runcommand>"${OUTPUT_PATH}" 1 ./config_files/Matrix_Mult_config_files/matrix_mult_config_size_2048.txt</runcommand>
  32.258 +        <rundir>../../dist</rundir>
  32.259 +        <buildfirst>true</buildfirst>
  32.260 +        <console-type>1</console-type>
  32.261 +        <terminal-type>1</terminal-type>
  32.262 +        <remove-instrumentation>0</remove-instrumentation>
  32.263 +        <environment>
  32.264 +          <variable name="LD_LIBRARY_PATH" value="../PR__lib"/>
  32.265 +        </environment>
  32.266 +      </runprofile>
  32.267 +    </conf>
  32.268    </confs>
  32.269  </configurationDescriptor>
    33.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    33.2 +++ b/nb__Reo_matrix_mult/nbproject/private/launcher.properties	Sat Jul 12 20:21:47 2014 +0200
    33.3 @@ -0,0 +1,40 @@
    33.4 +# Launchers File syntax:
    33.5 +#
    33.6 +# [Must-have property line] 
    33.7 +# launcher1.runCommand=<Run Command>
    33.8 +# [Optional extra properties] 
    33.9 +# launcher1.displayName=<Display Name, runCommand by default>
   33.10 +# launcher1.buildCommand=<Build Command, Build Command specified in project properties by default>
   33.11 +# launcher1.runDir=<Run Directory, ${PROJECT_DIR} by default>
   33.12 +# launcher1.symbolFiles=<Symbol Files loaded by debugger, ${OUTPUT_PATH} by default>
   33.13 +# launcher1.env.<Environment variable KEY>=<Environment variable VALUE>
   33.14 +# (If this value is quoted with ` it is handled as a native command which execution result will become the value)
   33.15 +# [Common launcher properties]
   33.16 +# common.runDir=<Run Directory>
   33.17 +# (This value is overwritten by a launcher specific runDir value if the latter exists)
   33.18 +# common.env.<Environment variable KEY>=<Environment variable VALUE>
   33.19 +# (Environment variables from common launcher are merged with launcher specific variables)
   33.20 +# common.symbolFiles=<Symbol Files loaded by debugger>
   33.21 +# (This value is overwritten by a launcher specific symbolFiles value if the latter exists)
   33.22 +#
   33.23 +# In runDir, symbolFiles and env fields you can use these macroses:
   33.24 +# ${PROJECT_DIR}    -   project directory absolute path
   33.25 +# ${OUTPUT_PATH}    -   linker output path (relative to project directory path)
   33.26 +# ${OUTPUT_BASENAME}-   linker output filename
   33.27 +# ${TESTDIR}        -   test files directory (relative to project directory path)
   33.28 +# ${OBJECTDIR}      -   object files directory (relative to project directory path)
   33.29 +# ${CND_DISTDIR}    -   distribution directory (relative to project directory path)
   33.30 +# ${CND_BUILDDIR}   -   build directory (relative to project directory path)
   33.31 +# ${CND_PLATFORM}   -   platform name
   33.32 +# ${CND_CONF}       -   configuration name
   33.33 +# ${CND_DLIB_EXT}   -   dynamic library extension
   33.34 +#
   33.35 +# All the project launchers must be listed in the file!
   33.36 +#
   33.37 +# launcher1.runCommand=...
   33.38 +# launcher2.runCommand=...
   33.39 +# ...
   33.40 +# common.runDir=...
   33.41 +# common.env.KEY=VALUE
   33.42 +
   33.43 +# launcher1.runCommand=<type your run command here>
   33.44 \ No newline at end of file
    34.1 --- a/nb__Reo_matrix_mult/nbproject/private/private.xml	Wed Feb 19 09:27:10 2014 -0800
    34.2 +++ b/nb__Reo_matrix_mult/nbproject/private/private.xml	Sat Jul 12 20:21:47 2014 +0200
    34.3 @@ -2,9 +2,24 @@
    34.4  <project-private xmlns="http://www.netbeans.org/ns/project-private/1">
    34.5      <data xmlns="http://www.netbeans.org/ns/make-project-private/1">
    34.6          <activeConfTypeElem>1</activeConfTypeElem>
    34.7 -        <activeConfIndexElem>2</activeConfIndexElem>
    34.8 +        <activeConfIndexElem>6</activeConfIndexElem>
    34.9      </data>
   34.10 +    <editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/2" lastBookmarkId="0"/>
   34.11      <open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2">
   34.12 +        <group name="VReo_longjmp_test"/>
   34.13 +        <group name="matrix_mult"/>
   34.14 +        <group name="longjmp">
   34.15 +            <file>file:/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/VReo_longjmp_test/Application/Reo__Matrix_Mult/Circuit.c</file>
   34.16 +            <file>file:/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/VReo_longjmp_test/library__proto-runtime/AnimationMaster.c</file>
   34.17 +            <file>file:/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/VReo_longjmp_test/Application/main.c</file>
   34.18 +            <file>file:/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/VReo_longjmp_test/library__proto-runtime/PR__int.c</file>
   34.19 +            <file>file:/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/VReo_longjmp_test/library__proto-runtime/PR__PI.c</file>
   34.20 +            <file>file:/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/VReo_longjmp_test/library__proto-runtime/PR.c</file>
   34.21 +            <file>file:/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/VReo_longjmp_test/Application/Reo__Matrix_Mult/SeedVP.c</file>
   34.22 +            <file>file:/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/VReo_longjmp_test/library__proto-runtime/CoreController.c</file>
   34.23 +            <file>file:/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/VReo_longjmp_test/library__proto-runtime/PR__SS.c</file>
   34.24 +            <file>file:/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/VReo_longjmp_test/library__proto-runtime/PR__WL.c</file>
   34.25 +        </group>
   34.26          <group/>
   34.27      </open-files>
   34.28  </project-private>
    35.1 --- a/nb__Reo_matrix_mult/nbproject/project.xml	Wed Feb 19 09:27:10 2014 -0800
    35.2 +++ b/nb__Reo_matrix_mult/nbproject/project.xml	Sat Jul 12 20:21:47 2014 +0200
    35.3 @@ -8,10 +8,14 @@
    35.4              <cpp-extensions/>
    35.5              <header-extensions>h</header-extensions>
    35.6              <sourceEncoding>UTF-8</sourceEncoding>
    35.7 -            <make-dep-projects/>
    35.8 +            <make-dep-projects>
    35.9 +                <make-dep-project>../../library__Reo_opt1/nb__reo_opt1_wrapper_lib__as_lib</make-dep-project>
   35.10 +                <make-dep-project>../../library__proto-runtime/nb__PR__ML__wDKU__lib</make-dep-project>
   35.11 +                <make-dep-project>/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/library__Reo_opt1/nb__reo_opt1_wrapper_lib__as_lib</make-dep-project>
   35.12 +                <make-dep-project>/win/D/2__Work/1__Development/0__Code/PR/PR__ML_lib__sharedMem/Projects/Reo_Opt1__matrix_mult/library__proto-runtime/nb__PR__ML__wDKU__lib</make-dep-project>
   35.13 +            </make-dep-projects>
   35.14              <sourceRootList>
   35.15 -                <sourceRootElem>../ParamHelper</sourceRootElem>
   35.16 -                <sourceRootElem>../Reo__Matrix_Mult</sourceRootElem>
   35.17 +                <sourceRootElem>../..</sourceRootElem>
   35.18              </sourceRootList>
   35.19              <confList>
   35.20                  <confElem>
   35.21 @@ -26,6 +30,26 @@
   35.22                      <name>Debug_Sequential</name>
   35.23                      <type>1</type>
   35.24                  </confElem>
   35.25 +                <confElem>
   35.26 +                    <name>MEAS_ON</name>
   35.27 +                    <type>1</type>
   35.28 +                </confElem>
   35.29 +                <confElem>
   35.30 +                    <name>longjmp</name>
   35.31 +                    <type>1</type>
   35.32 +                </confElem>
   35.33 +                <confElem>
   35.34 +                    <name>longjmp_rtems</name>
   35.35 +                    <type>1</type>
   35.36 +                </confElem>
   35.37 +                <confElem>
   35.38 +                    <name>longjmp_ARM</name>
   35.39 +                    <type>1</type>
   35.40 +                </confElem>
   35.41 +                <confElem>
   35.42 +                    <name>longjmp_X86_static</name>
   35.43 +                    <type>1</type>
   35.44 +                </confElem>
   35.45              </confList>
   35.46              <formatting>
   35.47                  <project-formatting-style>false</project-formatting-style>