안녕하세요. 제가 지금 ldd3판을 보면서 공부 중 입니다.
궁금한 것이 아래의 open 함수입니다. container_of에서 첫 인자로 inode->i_cdev를 넘겨주고
구조체를 scull_dev를 넘겨줍니다. 그리고 위치를 cdev를 넘겨줍니다.
container_of 매크로의 활용은 이해를 했습니다.
즉, scull_dev구조체와 cdev 멤버와 비교해서 offset값을 구해서 inode->i_cdev - offset을 해서
구조체 시작 주소를 구하는 것으로 이해를 했습니다.
문제는~! inode랑 scull_dev 구조체는 서로가 다릅니다. container_of 연산이 끝나면
원래 원하던 scull_dev구조체의 시작 주소가 아니고 inode의 주소 어딘가로 가게 되는게 아닌가요?