1 #ifndef PERL_MALLOC_CTL_H_ 2 # define PERL_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 63