struct ShadowTable *root;
/** This function initialized the data race detector. */
-
void initRaceDetector() {
root=(struct ShadowTable *) calloc(sizeof(struct ShadowTable),1);
}
-/** This function looks up the entry in the shadow table corresponding
- to a given address.*/
-
+/** This function looks up the entry in the shadow table corresponding to a
+ * given address.*/
static uint64_t * lookupAddressEntry(void * address) {
struct ShadowTable *currtable=root;
#ifdef BIT48
* Expands a record from the compact form to the full form. This is
* necessary for multiple readers or for very large thread ids or time
* stamps. */
-
static void expandRecord(uint64_t * shadow) {
uint64_t shadowval=*shadow;
}
/** This function is called when we detect a data race.*/
-
static void reportDataRace() {
printf("The reportDataRace method should report useful things about this datarace!\n");
}
-/** This function does race detection for a write on an expanded
- * record. */
-
+/** This function does race detection for a write on an expanded record. */
void fullRaceCheckWrite(thread_id_t thread, uint64_t * shadow, ClockVector *currClock) {
struct RaceRecord * record=(struct RaceRecord *) (*shadow);
record->writeClock=ourClock;
}
-/** This function does race detection on a write.
- */
-
+/** This function does race detection on a write. */
void raceCheckWrite(thread_id_t thread, void *location, ClockVector *currClock) {
uint64_t * shadow=lookupAddressEntry(location);
uint64_t shadowval=*shadow;
*shadow = ENCODEOP(0, 0, threadid, ourClock);
}
-/** This function does race detection on a read for an expanded
- * record. */
-
+/** This function does race detection on a read for an expanded record. */
void fullRaceCheckRead(thread_id_t thread, uint64_t * shadow, ClockVector *currClock) {
struct RaceRecord * record=(struct RaceRecord *) (*shadow);
}
/** This function does race detection on a read. */
-
void raceCheckRead(thread_id_t thread, void *location, ClockVector *currClock) {
uint64_t * shadow=lookupAddressEntry(location);
uint64_t shadowval=*shadow;