[Kernel Macro] container_of 매크로
디바이스 드라이버 작업을 하다 보면 자주 보게 되는 매크로중으 히나가바로 container_of 매크로 입니다.이해가 가는 것 같기도 하고 아니것 같기도 하고 묻는 사람도 있고 해서오늘은 이 매크로에 대해서 한번 알아 볼가 합니다. 일단 함수 원형을 한번 볼까요? lxr 사이트에서 긁어 왔습니다.위치는 include/linux/kernel.h 입니다. 650#define container_of(ptr, type, member) ({ \ 651 const typeof( ((type *)0)->member ) *__mptr = (ptr); \ 652 (type *)( (char *)__mptr - offsetof(type,member) );}) 이건 뭐 상당히 거시기 하군요.뜯기 전에 좀 쉬운 예를 들어 보..
Computer/Linux/Unix
2015. 3. 26. 13:45