현재목적:

1.특정파일의 struct file* fp를 얻어서 fp->f_op 을 내가만든 커스텀 file_operations으로 대체하기

2. 커스텀 file_operation에서 다른것들은 shmem_file_operations 그대로 똑같이 사용하되, mmap 함수포인터만 내가만든 커스텀 mmap함수를 포인트하게 할거임

3 커스텀mmap 함수에서 해당 vma의 vm_operations_struct 도 마찬가지로 커스텀 vm_operations_struct 로 대체할거고 커스텀 vm_ops에서 fault만 내가 만든 함수로 대체할거임

문제점:

내가 이해한게 맞으면 커스텀 @_operations 구조체들을 만들때 다른 함수포인터들은 mm/shmem.c 내부에 static으로 정의된 전역변수 구조체와 함수들을 참조해야함. 근데 static이라서 읽어올 방법이 없음

+ 커스텀 mmap이랑 fault 함수에서도 간단한 작업만 수행하고 내부에서 다시 shmem.c 의 함수를 호출하고싶은데 이거도 마찬가지로 죄다 static함수라서 호출할 방법이 없음


결론:

혹시 런타임 내에서라도 커널 소스코드내의 static 변수를 참조할 수 있는 방법은 없음?

mm/shmem.c 내부의 static 전역변수를 수정까진 필요없고 읽기라도 해야하는데 말그대로 static이니 extern 같은걸로 읽어올수도 없고 해당 기능을 제공하는 커널API라도 있으면 좋겠는데 그런것도 못찾겠음

- dc official App