1#ifndef PERL_MALLOC_CTL_H_
2#  define PERL_MALLOC_CTL_H_
3
4struct 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};
15typedef struct perl_mstats perl_mstats_t;
16
17PERL_CALLCONV Malloc_t Perl_malloc (MEM_SIZE nbytes);
18PERL_CALLCONV Malloc_t Perl_calloc (MEM_SIZE elements, MEM_SIZE size);
19PERL_CALLCONV Malloc_t Perl_realloc (Malloc_t where, MEM_SIZE nbytes);
20/* 'mfree' rather than 'free', since there is already a 'perl_free'
21 * that causes clashes with case-insensitive linkers */
22PERL_CALLCONV Free_t   Perl_mfree (Malloc_t where);
23
24#ifndef NO_MALLOC_DYNAMIC_CFG
25
26/* IV configuration data */
27enum {
28  MallocCfg_FIRST_SBRK,
29  MallocCfg_MIN_SBRK,
30  MallocCfg_MIN_SBRK_FRAC1000,
31  MallocCfg_SBRK_ALLOW_FAILURES,
32  MallocCfg_SBRK_FAILURE_PRICE,
33  MallocCfg_sbrk_goodness,
34
35  MallocCfg_filldead,
36  MallocCfg_fillalive,
37  MallocCfg_fillcheck,
38
39  MallocCfg_skip_cfg_env,
40  MallocCfg_cfg_env_read,
41
42  MallocCfg_emergency_buffer_size,
43  MallocCfg_emergency_buffer_last_req,
44
45  MallocCfg_emergency_buffer_prepared_size,
46
47  MallocCfg_last
48};
49/* char* configuration data */
50enum {
51  MallocCfgP_emergency_buffer,
52  MallocCfgP_emergency_buffer_prepared,
53  MallocCfgP_last
54};
55START_EXTERN_C
56extern IV *MallocCfg_ptr;
57extern char **MallocCfgP_ptr;
58END_EXTERN_C
59
60#endif
61
62#endif
63