This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Skup sigdispatch tests on VMS as they hang the VMS smokers.
[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 PERL_CALLCONV Malloc_t Perl_malloc (MEM_SIZE nbytes);
18 PERL_CALLCONV Malloc_t Perl_calloc (MEM_SIZE elements, MEM_SIZE size);
19 PERL_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 */
22 PERL_CALLCONV Free_t   Perl_mfree (Malloc_t where);
23
24 #ifndef NO_MALLOC_DYNAMIC_CFG
25
26 /* IV configuration data */
27 enum {
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 */
50 enum {
51   MallocCfgP_emergency_buffer,
52   MallocCfgP_emergency_buffer_prepared,
53   MallocCfgP_last
54 };
55 START_EXTERN_C
56 extern IV *MallocCfg_ptr;
57 extern char **MallocCfgP_ptr;
58 END_EXTERN_C
59
60 #endif
61
62 #endif