nckernel  0.1
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Functions
Initial memory 관리자

Paging 을 위한 page directory 및 page table 을 초기화 하기 위해 사용 된다. x86 시스템을 위해 구현된 것이며, 다른 시스템에서는 사용되지 못할 수도 있다. 매우 느리고 비 효율적인 메모리 관리자이기 때문에, 간단히 사용하는 경우 를 위해 만든 것이므로, 다른 곳에서 광대하게 사용하지 않는 것을 추천한다. 이 메모리 할당자는 4KB 단위로 할당을 한다. (Page table 및 Page directory 를 위한 것이므로) More...

Functions

void * initm_alloc (void *initm)
 initm 에 청크를 할당한다 More...
 
void * initm_find_pma (void *vma)
 
void * initm_find_vma (void *pma)
 initm_set_pma 함수에서 설정된 값을 이용해 pma 에 해당하는 vma 주소를 찾는다 More...
 
int initm_free (void *initm, void *ptr)
 initm 에 할당된 메모리 청크를 해제한다 More...
 
size_t initm_free_size (void *initm)
 
int initm_init (void *initm, size_t size)
 initm 의 자료구조를 초기화 한다 More...
 
void * initm_pma (void)
 
void initm_set_pma (void *initm)
 PMA 상의 initm 의 시작 주소를 지정 More...
 
void initm_set_vma (void *initm)
 VMA 상의 initm 의 시작 주소를 지정 More...
 
size_t initm_size (void *initm)
 initm 에 할당된 메모리 크기 More...
 
void initm_update_for_vma (void)
 
void * initm_vma (void)
 VMA 상에서의 initm 의 시작 주소를 가져온다 More...
 

Detailed Description

Paging 을 위한 page directory 및 page table 을 초기화 하기 위해 사용 된다. x86 시스템을 위해 구현된 것이며, 다른 시스템에서는 사용되지 못할 수도 있다. 매우 느리고 비 효율적인 메모리 관리자이기 때문에, 간단히 사용하는 경우 를 위해 만든 것이므로, 다른 곳에서 광대하게 사용하지 않는 것을 추천한다. 이 메모리 할당자는 4KB 단위로 할당을 한다. (Page table 및 Page directory 를 위한 것이므로)

Date
2011-9-27
Author
Sung-jae Park nices.nosp@m.j@ni.nosp@m.cesj..nosp@m.com

Function Documentation

void* initm_alloc ( void *  initm)

initm 에 청크를 할당한다

Definition at line 127 of file initm.c.

References _SC_PAGESIZE, head_info::bitmap, tail_info::data, tail_info::free_sz, tail_info::nr_of_chunks, NULL, sysconf(), and head_info::tail.

Referenced by onetime_map_init(), vm_init(), and vm_init_done().

Here is the call graph for this function:

Here is the caller graph for this function:

void* initm_find_pma ( void *  vma)

Definition at line 219 of file initm.c.

References initm_pma(), and initm_vma().

Referenced by onetime_map_init().

Here is the call graph for this function:

Here is the caller graph for this function:

void* initm_find_vma ( void *  pma)

initm_set_pma 함수에서 설정된 값을 이용해 pma 에 해당하는 vma 주소를 찾는다

Definition at line 208 of file initm.c.

References info::initm_pma, initm_vma(), and s_info.

Referenced by initm_update_for_vma(), onetime_map_init(), onetime_unmap(), and vm_init_done().

Here is the call graph for this function:

Here is the caller graph for this function:

int initm_free ( void *  initm,
void *  ptr 
)

initm 에 할당된 메모리 청크를 해제한다

Definition at line 154 of file initm.c.

References _SC_PAGESIZE, head_info::bitmap, tail_info::data, ENOENT, tail_info::free_sz, sysconf(), and head_info::tail.

Here is the call graph for this function:

size_t initm_free_size ( void *  initm)

Definition at line 116 of file initm.c.

References tail_info::free_sz, and head_info::tail.

int initm_init ( void *  initm,
size_t  size 
)

initm 의 자료구조를 초기화 한다

Definition at line 78 of file initm.c.

References _SC_PAGESIZE, head_info::bitmap, tail_info::data, tail_info::free_sz, tail_info::head, memset(), tail_info::nr_of_chunks, sysconf(), tail_info::sz, and head_info::tail.

Referenced by _start().

Here is the call graph for this function:

Here is the caller graph for this function:

void* initm_pma ( void  )

Definition at line 200 of file initm.c.

References info::initm_pma, and s_info.

Referenced by initm_find_pma().

Here is the caller graph for this function:

void initm_set_pma ( void *  initm)

PMA 상의 initm 의 시작 주소를 지정

Definition at line 190 of file initm.c.

References info::initm_pma, and s_info.

void initm_set_vma ( void *  initm)

VMA 상의 initm 의 시작 주소를 지정

Definition at line 195 of file initm.c.

References info::initm_vma, and s_info.

size_t initm_size ( void *  initm)

initm 에 할당된 메모리 크기

Definition at line 105 of file initm.c.

References tail_info::sz, and head_info::tail.

void initm_update_for_vma ( void  )

Definition at line 233 of file initm.c.

References tail_info::data, tail_info::head, initm_find_vma(), initm_vma(), and head_info::tail.

Here is the call graph for this function:

void* initm_vma ( void  )

VMA 상에서의 initm 의 시작 주소를 가져온다

Definition at line 178 of file initm.c.

References info::initm_vma, and s_info.

Referenced by initm_find_pma(), initm_find_vma(), initm_update_for_vma(), and onetime_map_init().

Here is the caller graph for this function: