| 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 |