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


| 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().


| 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().


| 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.

| 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().


| void* initm_pma | ( | void | ) |
Definition at line 200 of file initm.c.
References info::initm_pma, and s_info.
Referenced by initm_find_pma().

| 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.

| 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().

1.8.4