Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 888 → Rev 889

/kernel/branches/kolibri_pe/core/heap.c
8,15 → 8,6
 
#define page_tabs 0xDF800000
 
typedef struct
{
link_t link;
link_t adj;
addr_t base;
size_t size;
void *parent;
u32_t state;
}md_t;
 
#define MD_FREE 1
#define MD_USED 2
83,7 → 74,6
list_initialize(&lheap.used);
list_initialize(&sheap.used);
 
 
md_slab = slab_cache_create(sizeof(md_t), 32,NULL,NULL,SLAB_CACHE_MAGDEFERRED);
 
md = (md_t*)slab_alloc(md_slab,0);
622,16 → 612,12
};
 
 
void * __fastcall mem_alloc(size_t size, u32_t flags)
md_t* __fastcall md_alloc(size_t size, u32_t flags)
{
eflags_t efl;
 
md_t *md;
 
DBG("\nmem_alloc: %x bytes\n", size);
 
ASSERT(size != 0);
 
size = (size+4095)&~4095;
 
if( flags & PG_MAP )
641,6 → 627,9
if( !md )
return NULL;
 
ASSERT(md->state == MD_USED);
ASSERT(md->parent != NULL);
 
md_t *lmd = (md_t*)md->parent;
 
ASSERT( lmd != NULL);
661,15 → 650,34
};
}
else
{
md = find_unmapped_md(size);
 
if( !md )
return NULL;
 
ASSERT(md->parent != NULL);
ASSERT(md->state == MD_USED);
}
 
return md;
};
 
 
void * __fastcall mem_alloc(size_t size, u32_t flags)
{
eflags_t efl;
 
md_t *md;
 
DBG("\nmem_alloc: %x bytes\n", size);
 
ASSERT(size != 0);
 
md = md_alloc(size, flags);
 
if( !md )
return NULL;
 
efl = safe_cli();
spinlock_lock(&sheap.lock);