/* * ParallelTeam.h * * Created on: Nov 12, 2013 * Author: ron1234 */ #ifndef PARALLELTEAM_H_ #define PARALLELTEAM_H_ #define NUM_THREADS #define ARRAY_SIZE 1000000 #define BUF_SIZE 50 namespace std { /* * Define Register types */ enum typeIndex{PP,P,ST,C,S}; typedef struct { typeIndex registerType; union { __pid_t *ppidPtr; __pid_t *pidPtr; char *stringPtr; double *clockPtr; int *sleepPtr; }var; }registerPtr; typedef void *myFuncPtr(void*); struct THREAD_DATA { myFuncPtr funcPtr; }; class ParallelTeam { typeIndex regType; int registerSize; registerPtr regPtr; int num_of_threads; public: void *registerBlockWrite; Memory *memPtr; ParallelTeam(); virtual ~ParallelTeam(); void createProcessTeam(int n); void *get(int regIndex, int n); static void *worker_fnc(void *arg); }; } /* namespace std */ #endif /* PARALLELTEAM_H_ */