#define MAX_MEMORY_POOL_SIZE 1000
char memory_pool[MEMORY_POOL_SIZE];
static const usedmask[] =
{
0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01
};

#define SHOW_POOL(x) (memory_pool[(x)/8] & usedmask[(x)%8])
#define SET_USED(x) (memory_pool[(x)/8] |= usedmask[(x)%8])
#define SET_UNUSED(x) (memory_pool[(x)/8] &= ~usedmask[(x)%8])

void *nvram_malloc(int size)
{
int i, j, k, is_free;

is_free = UNUSED;
for(i = 0 ; i < MAX_NVRAM_SIZE ; i++)
{
if(SHOW_POOL(i) == UNUSED)
{
for(j = 1 ; j < (size-1) ; j++)
{
if(SHOW_POOL(i+j) != UNUSED) {
i = i + j;
is_free = USED;
break;
}
else continue;
}
if(is_free == UNUSED) {
for(j = 0 ; j < size ; j++)
SET_USED(i+j);
return (void *)(i + BASE_NVRAM);
}
}
}
return NULL;
}
Posted by hjlee
:
Google
 
BLOG main image
http://hjoo.org by hjlee

공지사항

카테고리

분류 전체보기 (154)
연구실생활 (9)
여 행 (8)
영어공부 (4)
취미생활 (7)
논 문 (2)
My Stories (31)
기 사 (11)
Computer (15)
즐길거리 (15)
스크랩 (3)
Web Progmming (0)
유용한 정보 (21)
KISANTEL (5)

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

Total :
Today : Yesterday :