00001
00002
00003
00004
00005
00006 #ifndef _tredmill_tm_h
00007 #define _tredmill_tm_h
00008
00009
00010
00011
00012 #include <stddef.h>
00013 #include <stdio.h>
00014
00015
00016
00017
00018
00019 #ifndef tm_ptr_TO_END_IS_VALID
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038 #define tm_ptr_TO_END_IS_VALID 0
00039 #endif
00040
00041
00042
00043
00044
00045
00046
00047
00048 typedef struct tm_adesc {
00049 size_t size;
00050 void *opaque;
00051 void *hidden;
00052 } tm_adesc;
00053
00054
00055 tm_adesc *tm_adesc_for_size(tm_adesc *desc, int force_new);
00056
00057
00058
00059
00060
00061
00062
00063 void tm_init(int *argcp, char ***argvp, char ***envpp);
00064
00065
00066
00067
00068
00069
00070
00071
00072 int tm_root_add(const char *name, const void *begin, const void *end);
00073 void tm_root_remove(const char *name, const void *begin, const void *end);
00074
00075
00076
00077
00078
00079
00080
00081
00082 void *tm_alloc(size_t size);
00083 void *tm_alloc_desc(tm_adesc *desc);
00084 void *tm_realloc(void *ptr, size_t size);
00085 void tm_free(void *ptr);
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099
00100 void tm_gc_full();
00101
00102
00103
00104
00105
00106
00107
00108
00109 extern int tm_sweep_is_error;
00110
00111 extern FILE *tm_msg_file;
00112 extern const char *tm_msg_prefix;
00113
00114 void tm_msg_enable(const char *codes, int enable);
00115 void tm_msg(const char *format, ...);
00116 void tm_msg1(const char *format, ...);
00117 void tm_print_stats();
00118 void tm_print_block_stats();
00119 void tm_print_time_stats();
00120
00121
00122
00123
00124
00125
00126
00127
00128 extern long tm_node_parcel_some_size;
00129 extern long tm_root_scan_some_size;
00130 extern long tm_node_scan_some_size;
00131 extern long tm_node_sweep_some_size;
00132 extern long tm_node_unmark_some_size;
00133 extern long tm_block_sweep_some_size;
00134 extern int tm_block_min_free;
00135 extern size_t tm_os_alloc_max;
00136 extern int tm_root_scan_full;
00137
00138
00139
00140
00141
00142
00143 #endif