1
  
2
  
3
  
4
  
5
  
6
  
7
  
8
  
9
  
10
  
11
  
12
  
13
  
14
  
15
  
16
  
17
  
18
  
19
  
20
  
21
  
#undef BLOCK_ALLOC 
#undef PTR_HASH_ALLOC 
 
#define BLOCK_ALLOC(DATA,SIZE)                                        \ 
struct DATA *PIKE_CONCAT(alloc_,DATA)(void);                    \ 
void PIKE_CONCAT(really_free_,DATA)(struct DATA *d);    \ 
void PIKE_CONCAT3(free_all_,DATA,_blocks)(void); 
 
 
#define PTR_HASH_ALLOC(DATA,BSIZE)                            \ 
BLOCK_ALLOC(DATA,BSIZE)                                         \ 
struct DATA *PIKE_CONCAT(find_,DATA)(void *ptr);                \ 
struct DATA *PIKE_CONCAT(get_,DATA)(void *ptr);                 \ 
int PIKE_CONCAT3(check_,DATA,_semafore)(void *ptr);             \ 
struct DATA *PIKE_CONCAT(remove_,DATA)(void *ptr);              \ 
void PIKE_CONCAT3(init_,DATA,_hash)(void);                      \ 
void PIKE_CONCAT3(exit_,DATA,_hash)(void);                      \