#ifndef DATARACE_H
#include "config.h"
#include <stdint.h>
-#include "clockvector.h"
#include <vector>
+#include "modeltypes.h"
+
+/* Forward declaration */
+class ClockVector;
+class ModelAction;
struct ShadowTable {
void * array[65536];
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<struct DataRace *> unrealizedraces;