37#define __MMPRIVATE_H 1
41#ifdef R__HAVE_LIMITS_H
49#ifdef R__HAVE_STDDEF_H
52# include <sys/types.h>
55#ifdef R__HAVE_UNISTD_H
58#ifdef R__HAVE_STDLIB_H
65# define MIN(A, B) ((A) < (B) ? (A) : (B))
68#define MMALLOC_MAGIC "mmalloc"
69#define MMALLOC_MAGIC_SIZE 8
70#define MMALLOC_VERSION 1
71#define MMALLOC_KEYS 16
79#define INT_BIT (CHAR_BIT * sizeof(int))
80#define BLOCKLOG (INT_BIT > 16 ? 12 : 9)
81#define BLOCKSIZE ((unsigned int) 1 << BLOCKLOG)
82#define BLOCKIFY(SIZE) (((SIZE) + BLOCKSIZE - 1) / BLOCKSIZE)
84#define ADDR2UINT(addr) ((uintptr_t)(addr))
85#define RESIDUAL(addr,bsize) ((unsigned int) (ADDR2UINT (addr) % (bsize)))
90#define HEAP (INT_BIT > 16 ? 4194304 : 65536)
95#define FINAL_FREE_BLOCKS 8
102#define MALLOC_SEARCH_START mdp -> heapindex
106#define BLOCK(A) (((char *) (A) - mdp -> heapbase) / BLOCKSIZE + 1)
108#define ADDRESS(B) ((PTR) (((B) - 1) * BLOCKSIZE + mdp -> heapbase))
321#define MMALLOC_DEVZERO (1 << 0)
322#define MMALLOC_INITIALIZED (1 << 1)
323#define MMALLOC_MMCHECK_USED (1 << 2)
343#if defined(R__HAVE_MMAP)
359#ifndef NO_SBRK_MALLOC
366#define MD_TO_MDP(md) \
368? (__mmalloc_default_mdp == NULL \
369? __mmalloc_sbrk_init () \
370: __mmalloc_default_mdp) \
371: (struct mdesc *) (md))
375#define MD_TO_MDP(md) ((struct mdesc *) (md))
size_t size(const MatrixT &matrix)
retrieve the size of a square matrix
void __mmalloc_free(struct mdesc *mdp, PTR ptr)
static PTR morecore(struct mdesc *mdp, size_t size)
#define MMALLOC_MAGIC_SIZE
struct mdesc * __mmalloc_default_mdp
struct mdesc * __mmalloc_sbrk_init()
char magic[MMALLOC_MAGIC_SIZE]
PTR mmalloc_hook PARAMS((PTR, size_t))
void mfree_hook PARAMS((PTR, PTR))
struct mmlist fraghead[BLOCKLOG]
PTR mrealloc_hook PARAMS((PTR, PTR, size_t))
struct mmstats_t heapstats
struct alignlist * aligned_blocks
PTR morecore PARAMS((struct mdesc *, int))
void abortfunc PARAMS((void))