2013-02-11 Sebastian Huber <sebastian.huber@embedded-brains.de>
[official-gcc.git] / libgo / runtime / race.h
blob9f3b3ec66088c383d71708685d0d59970191e0e8
1 // Copyright 2012 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
5 // Definitions related to data race detection.
7 #ifdef RACE
8 enum { raceenabled = 1 };
9 #else
10 enum { raceenabled = 0 };
11 #endif
13 // Initialize race detection subsystem.
14 void runtime_raceinit(void);
15 // Finalize race detection subsystem, does not return.
16 void runtime_racefini(void);
18 void runtime_racemapshadow(void *addr, uintptr size);
19 void runtime_racemalloc(void *p, uintptr sz, void *pc);
20 void runtime_racefree(void *p);
21 void runtime_racegostart(int32 goid, void *pc);
22 void runtime_racegoend(int32 goid);
23 void runtime_racewritepc(void *addr, void *callpc, void *pc);
24 void runtime_racereadpc(void *addr, void *callpc, void *pc);
25 void runtime_racefingo(void);
26 void runtime_raceacquire(void *addr);
27 void runtime_raceacquireg(G *gp, void *addr);
28 void runtime_racerelease(void *addr);
29 void runtime_racereleaseg(G *gp, void *addr);
30 void runtime_racereleasemerge(void *addr);
31 void runtime_racereleasemergeg(G *gp, void *addr);