X-Git-Url: http://plrg.eecs.uci.edu/git/?p=cdsspec-compiler.git;a=blobdiff_plain;f=datarace.h;h=7c24b6d56c1b400a311b0eaae5ef32e9ad0e8c31;hp=b2f709911ecff2274596ed11f7c5338365ee57e7;hb=1ca9b05f504ed968eb922b12cddb0a8217d6fc50;hpb=0accacf66b9f7bb4479205a0840f208dd8da6960 diff --git a/datarace.h b/datarace.h index b2f7099..7c24b6d 100644 --- a/datarace.h +++ b/datarace.h @@ -5,8 +5,12 @@ #ifndef DATARACE_H #include "config.h" #include -#include "clockvector.h" -#include +#include "modeltypes.h" +#include "stl-model.h" + +/* Forward declaration */ +class ClockVector; +class ModelAction; struct ShadowTable { void * array[65536]; @@ -32,18 +36,18 @@ struct DataRace { bool isnewwrite; /* Address of data race. */ - void *address; + const void *address; }; #define MASK16BIT 0xffff void initRaceDetector(); void raceCheckWrite(thread_id_t thread, void *location, ClockVector *currClock); -void raceCheckRead(thread_id_t thread, void *location, ClockVector *currClock); -void checkDataRaces(); -void printRace(struct DataRace *race); +void raceCheckRead(thread_id_t thread, const void *location, ClockVector *currClock); +bool checkDataRaces(); +void assert_race(struct DataRace *race); -extern std::vector unrealizedraces; +extern SnapVector unrealizedraces; /** Basic encoding idea: * (void *) Either: