Main Page | Class List | Directories | File List | Class Members | File Members

block_alloc.h File Reference

Go to the source code of this file.

Defines

#define PRE_INIT_BLOCK(X)
#define INIT_BLOCK(X)
#define EXIT_BLOCK(X)
#define COUNT_BLOCK(X)
#define COUNT_OTHER()
#define DMALLOC_DESCRIBE_BLOCK(X)
#define BLOCK_ALLOC_HSIZE_SHIFT   2
#define MAX_EMPTY_BLOCKS   4
#define BLOCK_ALLOC_USED   DO_IF_DMALLOC(real_used) DO_IF_NOT_DMALLOC(used)
#define DO_PRE_INIT_BLOCK(X)
#define PIKE_HASH_T   size_t
#define BA_UL(X)   X
#define BA_STATIC
#define BA_INLINE
#define BLOCK_ALLOC_FILL_PAGES(DATA, PAGES)
#define PTR_HASH_ALLOC_FILL_PAGES(DATA, PAGES)
#define PTR_HASH_ALLOC_FIXED_FILL_PAGES(DATA, PAGES)
#define BLOCK_HEADER_SIZE   (3 * sizeof (void *) + sizeof (INT32))
#define BLOCK_ALLOC(DATA, BSIZE)
#define LOW_PTR_HASH_ALLOC(DATA, BSIZE)
#define PTR_HASH_ALLOC_FIXED(DATA, BSIZE)
#define PTR_HASH_ALLOC(DATA, BSIZE)


Define Documentation

#define BA_INLINE
 

#define BA_STATIC
 

#define BA_UL  )     X
 

#define BLOCK_ALLOC DATA,
BSIZE   ) 
 

#define BLOCK_ALLOC_FILL_PAGES DATA,
PAGES   ) 
 

Value:

BLOCK_ALLOC(DATA,                                                       \
              ((PIKE_MALLOC_PAGE_SIZE * (PAGES))                        \
               - PIKE_MALLOC_OVERHEAD - BLOCK_HEADER_SIZE) /            \
              sizeof (struct DATA))

#define BLOCK_ALLOC_HSIZE_SHIFT   2
 

#define BLOCK_ALLOC_USED   DO_IF_DMALLOC(real_used) DO_IF_NOT_DMALLOC(used)
 

#define BLOCK_HEADER_SIZE   (3 * sizeof (void *) + sizeof (INT32))
 

#define COUNT_BLOCK  ) 
 

 
#define COUNT_OTHER  ) 
 

#define DMALLOC_DESCRIBE_BLOCK  ) 
 

#define DO_PRE_INIT_BLOCK  ) 
 

Value:

do {                            \
    DO_IF_DMALLOC(MEMSET((X), 0x55, sizeof(*(X))));             \
    PRE_INIT_BLOCK(X);                                          \
  } while (0)

#define EXIT_BLOCK  ) 
 

#define INIT_BLOCK  ) 
 

#define LOW_PTR_HASH_ALLOC DATA,
BSIZE   ) 
 

#define MAX_EMPTY_BLOCKS   4
 

#define PIKE_HASH_T   size_t
 

#define PRE_INIT_BLOCK  ) 
 

#define PTR_HASH_ALLOC DATA,
BSIZE   ) 
 

#define PTR_HASH_ALLOC_FILL_PAGES DATA,
PAGES   ) 
 

Value:

PTR_HASH_ALLOC(DATA,                                                    \
                 ((PIKE_MALLOC_PAGE_SIZE * (PAGES))                     \
                  - PIKE_MALLOC_OVERHEAD - BLOCK_HEADER_SIZE) /         \
                 sizeof (struct DATA))

#define PTR_HASH_ALLOC_FIXED DATA,
BSIZE   ) 
 

Value:

struct DATA *PIKE_CONCAT3(make_,DATA,_unlocked)(void *ptr, PIKE_HASH_T hval);\
LOW_PTR_HASH_ALLOC(DATA,BSIZE)                                               \
                                                                             \
struct DATA *PIKE_CONCAT3(make_,DATA,_unlocked)(void *ptr, PIKE_HASH_T hval) \
{                                                                            \
  struct DATA *p;                                                            \
                                                                             \
  DO_IF_DEBUG( if(!PIKE_CONCAT(DATA,_hash_table))                            \
    Pike_fatal("Hash table error!\n"); )                                     \
  PIKE_CONCAT(num_,DATA)++;                                                  \
                                                                             \
  p=BA_UL(PIKE_CONCAT(alloc_,DATA))();                                       \
  p->PTR_HASH_ALLOC_DATA=ptr;                                                \
  p->BLOCK_ALLOC_NEXT=PIKE_CONCAT(DATA,_hash_table)[hval];                   \
  PIKE_CONCAT(DATA,_hash_table)[hval]=p;                                     \
  return p;                                                                  \
}

#define PTR_HASH_ALLOC_FIXED_FILL_PAGES DATA,
PAGES   ) 
 

Value:

PTR_HASH_ALLOC_FIXED(DATA,                                              \
                       ((PIKE_MALLOC_PAGE_SIZE * (PAGES))               \
                        - PIKE_MALLOC_OVERHEAD - BLOCK_HEADER_SIZE) /   \
                       sizeof (struct DATA))


Generated on Fri Jul 22 23:44:28 2005 for Pike by  doxygen 1.3.9.1