Lines Matching defs:memheap
97 static struct SIS_OH * sisfb_poh_new_node(struct SIS_HEAP *memheap);
98 static struct SIS_OH * sisfb_poh_allocate(struct SIS_HEAP *memheap, u32 size);
101 static struct SIS_OH * sisfb_poh_free(struct SIS_HEAP *memheap, u32 base);
102 static void sisfb_free_node(struct SIS_HEAP *memheap, struct SIS_OH *poh);
3227 sisfb_poh_new_node(struct SIS_HEAP *memheap)
3234 if(memheap->poh_freelist == NULL) {
3239 poha->poha_next = memheap->poha_chain;
3240 memheap->poha_chain = poha;
3251 memheap->poh_freelist = &poha->aoh[0];
3254 poh = memheap->poh_freelist;
3255 memheap->poh_freelist = poh->poh_next;
3261 sisfb_poh_allocate(struct SIS_HEAP *memheap, u32 size)
3267 if(size > memheap->max_freesize) {
3273 pohThis = memheap->oh_free.poh_next;
3275 while(pohThis != &memheap->oh_free) {
3293 pohRoot = sisfb_poh_new_node(memheap);
3304 memheap->max_freesize -= size;
3306 pohThis = &memheap->oh_used;
3332 sisfb_poh_free(struct SIS_HEAP *memheap, u32 base)
3342 poh_freed = memheap->oh_used.poh_next;
3344 while(poh_freed != &memheap->oh_used) {
3356 memheap->max_freesize += poh_freed->size;
3362 pohThis = memheap->oh_free.poh_next;
3364 while(pohThis != &memheap->oh_free) {
3378 sisfb_free_node(memheap, poh_freed);
3379 sisfb_free_node(memheap, poh_next);
3385 sisfb_free_node(memheap, poh_freed);
3392 sisfb_free_node(memheap, poh_freed);
3396 sisfb_insert_node(&memheap->oh_free, poh_freed);
3402 sisfb_free_node(struct SIS_HEAP *memheap, struct SIS_OH *poh)
3407 poh->poh_next = memheap->poh_freelist;
3408 memheap->poh_freelist = poh;