This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Oops! Change 25080 should have updated checksums too.
[perl5.git] / malloc_ctl.h
CommitLineData
22f7c9c9
JH
1#ifndef MALLOC_CTL_H
2# define 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
17START_EXTERN_C
18Malloc_t Perl_malloc (MEM_SIZE nbytes);
19Malloc_t Perl_calloc (MEM_SIZE elements, MEM_SIZE size);
20Malloc_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 */
23Free_t Perl_mfree (Malloc_t where);
24END_EXTERN_C
25
26#ifndef NO_MALLOC_DYNAMIC_CFG
27
6af660ee 28/* IV configuration data */
22f7c9c9
JH
29enum {
30 MallocCfg_FIRST_SBRK,
31 MallocCfg_MIN_SBRK,
32 MallocCfg_MIN_SBRK_FRAC1000,
33 MallocCfg_SBRK_ALLOW_FAILURES,
34 MallocCfg_SBRK_FAILURE_PRICE,
35 MallocCfg_sbrk_goodness,
36
37 MallocCfg_filldead,
38 MallocCfg_fillalive,
39 MallocCfg_fillcheck,
40
41 MallocCfg_skip_cfg_env,
42 MallocCfg_cfg_env_read,
43
44 MallocCfg_emergency_buffer_size,
45 MallocCfg_emergency_buffer_last_req,
46
47 MallocCfg_emergency_buffer_prepared_size,
48
49 MallocCfg_last
50};
6af660ee
IZ
51/* char* configuration data */
52enum {
53 MallocCfgP_emergency_buffer,
54 MallocCfgP_emergency_buffer_prepared,
55 MallocCfgP_last
56};
a7433df8 57START_EXTERN_C
22f7c9c9 58extern IV *MallocCfg_ptr;
6af660ee 59extern char **MallocCfgP_ptr;
a7433df8 60END_EXTERN_C
22f7c9c9
JH
61
62#endif
63
64#endif