티스토리 뷰


kernel에 개발을 하던 중 아래와 같은 error가 발생했습니다.

error: invalid use of undefined type ‘struct address_space’


/proc/meminfo 의 정보 중 Cached 필드 값을 얻는 모듈을 가져다 쓰는 과정에서 발생을 했는데요,

Cached는 아래와 같이 구해집니다.

    cached = global_page_state(NR_FILE_PAGES) -

            total_swapcache_pages - i.bufferram;


이 cached를 구하는 연산을 가져다 쓰려는데, total_swapcache_pages가 문제가 됐습니다.

해당 define은 include/linux/swap.h 에 되어 있었고, 해당 파일은 정상적으로 include 되어있었는데 말이죠,


하지만.. 더 살펴본 결과 struct address_space는 linux/fs.h에 있었네요..

이쪽 링크가 도움이 되었습니다.


kernel 버전을 변경하면서 이것저것 포팅하다 보니.. 헤더 파일 찾는게 참 쉽지 않은것 같습니다.

이것도 언젠가는 익숙해지고, 쉬운 방법을 찾게 되겠죠..


댓글
댓글쓰기 폼