Mercurial > cgi-bin > hgwebdir.cgi > PR > Applications > VReo > Reo__Matrix_Mult
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
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>
