Declare RTS-private prototypes with __attribute__((visibility("hidden")))
[ghc.git] / rts / Stable.h
1 /* -----------------------------------------------------------------------------
2 *
3 * (c) The GHC Team, 1998-2004
4 *
5 * Stable Pointers: A stable pointer is represented as an index into
6 * the stable pointer table.
7 *
8 * StgStablePtr used to be a synonym for StgWord, but stable pointers
9 * are guaranteed to be void* on the C-side, so we have to do some
10 * occasional casting. Size is not a matter, because StgWord is always
11 * the same size as a void*.
12 *
13 * ---------------------------------------------------------------------------*/
14
15 #ifndef STABLE_H
16 #define STABLE_H
17
18 #include "sm/GC.h" // for evac_fn below
19
20 #pragma GCC visibility push(hidden)
21
22 void freeStablePtr ( StgStablePtr sp );
23
24 void initStablePtrTable ( void );
25 void exitStablePtrTable ( void );
26 StgWord lookupStableName ( StgPtr p );
27
28 void markStablePtrTable ( evac_fn evac, void *user );
29 void threadStablePtrTable ( evac_fn evac, void *user );
30 void gcStablePtrTable ( void );
31 void updateStablePtrTable ( rtsBool full );
32
33 void stablePtrPreGC ( void );
34 void stablePtrPostGC ( void );
35
36 #pragma GCC visibility pop
37
38 #endif /* STABLE_H */