File: stableptr.h

package info (click to toggle)
nhc98 1.16-15
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 62,544 kB
  • ctags: 103,012
  • sloc: ansic: 831,077; haskell: 60,111; java: 4,116; makefile: 3,045; sh: 2,183; cpp: 212
file content (18 lines) | stat: -rw-r--r-- 530 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#ifndef _STABLEPTR_H_
#define _STABLEPTR_H_

typedef void* StablePtr;

extern  StablePtr      makeStablePtr  (unsigned long*);
extern  unsigned long *derefStablePtr (StablePtr);
extern  void           freeStablePtr  (StablePtr);
extern  void           copyStablePtr  (StablePtr,StablePtr);

/* for backwards compatibility: */
typedef StablePtr HaskellRef;
#define stableRef(x)		derefStablePtr(x)
#define stableInsert(x)		makeStablePtr(x)
#define stableRelease(x)	freeStablePtr(x)
#define stableCopy(x,y)		copyStablePtr(x)

#endif