This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
for pod/perlfaq2.pod against latest snapshot for Alpaca
[perl5.git] / malloc_ctl.h
1 #ifndef MALLOC_CTL_H
2 #  define MALLOC_CTL_H
3
4 struct perl_mstats {
5     UV *nfree;
6     UV *ntotal;
7     IV topbucket, topbucket_ev, topbucket_odd, totfree, total, total_chain;
8     IV total_sbrk, sbrks, sbrk_good, sbrk_slack, start_slack, sbrked_remains;
9     IV minbucket;
10     /* Level 1 info */
11     UV *bucket_mem_size;
12     UV *bucket_available_size;
13     UV nbuckets;
14 };
15 typedef struct perl_mstats perl_mstats_t;
16
17 START_EXTERN_C
18 Malloc_t Perl_malloc (MEM_SIZE nbytes);
19 Malloc_t Perl_calloc (MEM_SIZE elements, MEM_SIZE size);
20 Malloc_t Perl_realloc (Malloc_t where, MEM_SIZE nbytes);
21 /* 'mfree' rather than 'free', since there is already a 'perl_free'
22  * that causes clashes with case-insensitive linkers */
23 Free_t   Perl_mfree (Malloc_t where);
24 END_EXTERN_C
25
26 #ifndef NO_MALLOC_DYNAMIC_CFG
27
28 enum {
29   MallocCfg_FIRST_SBRK,
30   MallocCfg_MIN_SBRK,
31   MallocCfg_MIN_SBRK_FRAC1000,
32   MallocCfg_SBRK_ALLOW_FAILURES,
33   MallocCfg_SBRK_FAILURE_PRICE,
34   MallocCfg_sbrk_goodness,
35
36   MallocCfg_filldead,
37   MallocCfg_fillalive,
38   MallocCfg_fillcheck,
39
40   MallocCfg_skip_cfg_env,
41   MallocCfg_cfg_env_read,
42
43   MallocCfg_emergency_buffer_size,
44   MallocCfg_emergency_buffer_last_req,
45
46   MallocCfg_emergency_buffer_prepared_size,
47
48   MallocCfg_last
49 };
50 extern IV *MallocCfg_ptr;
51
52 #endif
53
54 #endif