Fix segfault at the first lock action
[c11tester.git] / classlist.h
1 #ifndef CLASSLIST_H
2 #define CLASSLIST_H
3 #include <inttypes.h>
4 #include "stl-model.h"
5 #include "hashset.h"
6 #include "modeltypes.h"
7
8 class ClockVector;
9 class CycleGraph;
10 class CycleNode;
11 class ModelAction;
12 class ModelChecker;
13 class ModelExecution;
14 class ModelHistory;
15 class Scheduler;
16 class Thread;
17 class TraceAnalysis;
18 class Fuzzer;
19 class NewFuzzer;
20 class FuncNode;
21 class FuncInst;
22 class Predicate;
23 class ConcretePredicate;
24 class WaitObj;
25
26 struct model_snapshot_members;
27 struct bug_message;
28
29 typedef SnapList<ModelAction *> action_list_t;
30 typedef SnapList<uint32_t> func_id_list_t;
31 typedef SnapList<FuncInst *> func_inst_list_t;
32 typedef HashTable<FuncInst *, ModelAction *, uintptr_t, 0> inst_act_map_t;
33
34 typedef HashSet<Predicate *, uintptr_t, 0, model_malloc, model_calloc, model_free> PredSet;
35 typedef HSIterator<Predicate *, uintptr_t, 0, model_malloc, model_calloc, model_free> PredSetIter;
36
37 typedef HashSet<uint64_t, uint64_t, 0, snapshot_malloc, snapshot_calloc, snapshot_free> value_set_t;
38 typedef HSIterator<uint64_t, uint64_t, 0, snapshot_malloc, snapshot_calloc, snapshot_free> value_set_iter;
39 typedef HashSet<void *, uintptr_t, 0, snapshot_malloc, snapshot_calloc, snapshot_free> loc_set_t;
40 typedef HSIterator<void *, uintptr_t, 0, snapshot_malloc, snapshot_calloc, snapshot_free> loc_set_iter;
41 typedef HashSet<thread_id_t, int, 0> thrd_id_set_t;
42 typedef HSIterator<thread_id_t, int, 0> thrd_id_set_iter;
43
44 extern volatile int modellock;
45 #endif