2016-09-01 1 views
0

장치에서 I mmap() 인 경우, 예 : /dev/mem.fd없이 mmap()을 호출하면 어떤 함수가 호출 될 것입니까? (MAP_ANONYMOUS를 사용 하시겠습니까?)

fbfd = open("/dev/mem", O_RDWR); 
dataBuffer = (char *)mmap(0, 
          FILESIZE, 
          PROT_READ | PROT_WRITE, 
          MAP_SHARED, 
          fbfd, 
          0); 

그럼 실제 기능은 remap_pfn_range을 볼 수 있습니다 내 생각 /dev/memf_op->mmap입니다 mmap_mem()이다.

mmap()MAP_ANONYMOUS이고 fd가없는 경우 어떤 기능을 수행해야합니까? remap_pfn_range?

dataBuffer = (char *)mmap(0, 
           FILESIZE, 
           PROT_READ | PROT_WRITE, 
           MAP_SHARED | MAP_ANONYMOUS, 
           0, 
           0); 

나는 그것을 찾을 수 있습니까?

감사합니다.

답변

0

OK, 나는

는 더 FD, 그래서 아무 f_op->mmap 없다 ... 답을 찾을 수 있습니다.

MAP_ANONYMOUSmmap()MAP_SHARED 경우 shmem_zero_setup(), 설치 공유 익명의 매핑에 의해 처리 될 것이며, 또한 do_mmap_pgoff()에 대한 vma을 준비합니다.