Home | History | Annotate | Download | only in openssh

Lines Matching refs:mms

121 	struct mm_share *mms, *next;
123 for (mms = RB_ROOT(head); mms; mms = next) {
124 next = RB_NEXT(mmtree, head, mms);
125 RB_REMOVE(mmtree, head, mms);
127 xfree(mms);
129 mm_free(mmalloc, mms);
172 struct mm_share *mms, *tmp;
181 RB_FOREACH(mms, mmtree, &mm->rb_free) {
182 if (mms->size >= size)
186 if (mms == NULL)
190 memset(mms->address, 0xd0, size);
192 tmp = mm_make_entry(mm, &mm->rb_allocated, mms->address, size);
195 mms->size -= size;
196 mms->address = (u_char *)mms->address + size;
198 if (mms->size == 0) {
199 RB_REMOVE(mmtree, &mm->rb_free, mms);
201 xfree(mms);
203 mm_free(mm->mmalloc, mms);
214 struct mm_share *mms, *prev, tmp;
217 mms = RB_FIND(mmtree, &mm->rb_allocated, &tmp);
218 if (mms == NULL)
222 memset(mms->address, 0xd0, mms->size);
225 RB_REMOVE(mmtree, &mm->rb_allocated, mms);
226 if (RB_INSERT(mmtree, &mm->rb_free, mms) != NULL)
230 prev = mms;
254 prev->size += mms->size;
255 RB_REMOVE(mmtree, &mm->rb_free, mms);
257 xfree(mms);
259 mm_free(mm->mmalloc, mms);
261 prev = mms;
267 mms = RB_NEXT(mmtree, &mm->rb_free, prev);
268 if (mms == NULL)
271 if (MM_ADDRESS_END(prev) > mms->address)
273 mms->address, prev->address, (u_long)prev->size);
274 if (MM_ADDRESS_END(prev) != mms->address)
277 prev->size += mms->size;
278 RB_REMOVE(mmtree, &mm->rb_free, mms);
281 xfree(mms);
283 mm_free(mm->mmalloc, mms);
291 struct mm_share *mms, *new;
294 RB_FOREACH(mms, mmtree, oldtree) {
296 mm_memvalid(mmold, mms, sizeof(struct mm_share));
297 mm_memvalid(mm, mms->address, mms->size);
300 memcpy(new, mms, sizeof(struct mm_share));