Lines Matching refs:r
73 regional_init(struct regional* r) in regional_init() argument
76 r->data = (char*)r + a; in regional_init()
77 r->available = r->first_size - a; in regional_init()
78 r->next = NULL; in regional_init()
79 r->large_list = NULL; in regional_init()
80 r->total_large = 0; in regional_init()
92 struct regional* r; in regional_create_custom_large_object() local
94 r = (struct regional*)malloc(size); in regional_create_custom_large_object()
96 if(!r) return NULL; in regional_create_custom_large_object()
97 r->first_size = size; in regional_create_custom_large_object()
98 r->large_object_size = large_object_size; in regional_create_custom_large_object()
99 regional_init(r); in regional_create_custom_large_object()
100 return r; in regional_create_custom_large_object()
119 regional_free_all(struct regional *r) in regional_free_all() argument
121 char* p = r->next, *np; in regional_free_all()
127 p = r->large_list; in regional_free_all()
133 regional_init(r); in regional_free_all()
137 regional_destroy(struct regional *r) in regional_destroy() argument
139 if(!r) return; in regional_destroy()
140 regional_free_all(r); in regional_destroy()
141 free(r); in regional_destroy()
145 regional_alloc(struct regional *r, size_t size) in regional_alloc() argument
160 if(a > r->large_object_size) { in regional_alloc()
163 r->total_large += ALIGNMENT+size; in regional_alloc()
164 *(char**)s = r->large_list; in regional_alloc()
165 r->large_list = (char*)s; in regional_alloc()
169 if(a > r->available) { in regional_alloc()
172 *(char**)s = r->next; in regional_alloc()
173 r->next = (char*)s; in regional_alloc()
174 r->data = (char*)s + ALIGNMENT; in regional_alloc()
175 r->available = REGIONAL_CHUNK_SIZE - ALIGNMENT; in regional_alloc()
178 r->available -= a; in regional_alloc()
179 s = r->data; in regional_alloc()
180 r->data += a; in regional_alloc()
185 regional_alloc_init(struct regional* r, const void *init, size_t size) in regional_alloc_init() argument
187 void *s = regional_alloc(r, size); in regional_alloc_init()
194 regional_alloc_zero(struct regional *r, size_t size) in regional_alloc_zero() argument
196 void *s = regional_alloc(r, size); in regional_alloc_zero()
203 regional_strdup(struct regional *r, const char *string) in regional_strdup() argument
205 return (char*)regional_alloc_init(r, string, strlen(string)+1); in regional_strdup()
213 count_chunks(struct regional* r) in count_chunks() argument
216 char* p = r->next; in count_chunks()
228 count_large(struct regional* r) in count_large() argument
231 char* p = r->large_list; in count_large()
240 regional_log_stats(struct regional *r) in regional_log_stats() argument
245 log_assert(REGIONAL_CHUNK_SIZE-ALIGNMENT > r->large_object_size); in regional_log_stats()
249 (unsigned)count_chunks(r), (unsigned)count_large(r)); in regional_log_stats()
253 regional_get_mem(struct regional* r) in regional_get_mem() argument
255 return r->first_size + (count_chunks(r)-1)*REGIONAL_CHUNK_SIZE in regional_get_mem()
256 + r->total_large; in regional_get_mem()