1 /* Copyright (c) 2015 Regents of the University of California
3 * Author: Brian Demsky <bdemsky@uci.edu>
5 * This program is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU General Public License
7 * version 2 as published by the Free Software Foundation.
12 #include "classlist.h"
15 #include "stl-model.h"
19 WaitPair(ExecPoint * stoppoint, ExecPoint * waitpoint);
21 ExecPoint * getStop();
22 ExecPoint * getWait();
26 ExecPoint *stop_point;
27 ExecPoint *wait_point;
32 MCScheduler(MCExecution * e);
34 ucontext_t * get_system_context() { return &system_context; }
35 void swap_threads(Thread * from, Thread *to);
39 bool check_store_buffer(unsigned int tid);
41 bool checkSet(unsigned int tid, ModelVector<ModelVector<WaitPair* > * > *set, unsigned int *setindex, ExecPoint *current);
42 bool check_thread(unsigned int tid);
43 void addWaitPair(EPRecord *stoprec, EPRecord *waitrec);
48 unsigned int waitsetlen;
49 ucontext_t system_context;
50 MCExecution *execution;
51 ModelVector<ModelVector<WaitPair* > * > *waitset;
52 unsigned int * waitsetindex;
54 ModelVector<ModelVector<WaitPair* > * > *storeset;
55 unsigned int * storesetindex;