char *a
a = kmalloc(1024, GFP_KERNEL);
보통 이렇게 쓰는데요. size는 32 * PAGE_SIZE 인걸로 알고 있습니다. 그렇다면 32 바이트 단위로 할당이 되는겁니까?
아니면
a = kmalloc(21, GFP_KERNEL); 이렇게 해서 21바이트만 할당받고 싶은데..이렇게는 안되나요?
아시는 분계시면 답변부탁드립니다.
kmalloc()함수는 128Kb까지의 임의의 메모리 (연속된) 사이즈를 할당 받는걸로 알고 있는데요...
페이지 단위로 할당 하는거는 alloc_pages() 이고, 커널 오브젝트 단위로 할당 받는거는 kmem_cache_alloc() 이고,
굳이 연속적이지 않은 메모리를 할당 받기위해서는 vmalloc()을 쓰면 됩니다.
맞게 기억하고 있는지 모르겠네요..한번 확인해 보세요...
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
kmalloc()함수는
kmalloc()함수는 128Kb까지의 임의의 메모리 (연속된) 사이즈를 할당 받는걸로 알고 있는데요...
페이지 단위로 할당 하는거는 alloc_pages() 이고,
커널 오브젝트 단위로 할당 받는거는 kmem_cache_alloc() 이고,
굳이 연속적이지 않은 메모리를 할당 받기위해서는 vmalloc()을 쓰면 됩니다.
맞게 기억하고 있는지 모르겠네요..한번 확인해 보세요...
댓글 달기