|
我想把一个文件offet为0x400、长度为0x200的区段映射到内存指定地址addr开始处,但是do_mmap返回-EINVAL,经查阅资料发现可能是页对齐的问题,于是尝试将offset修改为0,结果能够返回我设置的addr,但是设为我需要的0x400就不行,所以想问大家,我怎么才能实现我所需要的功能?
另外,do_mmap似乎会将len修正为页大小,那假如offset+len超出文件的长度怎么办?
总感觉do_mmap的行为很是诡异……
附调用方法:map_addr = do_mmap(pfile, addr, 0x200, prot, flag, 0x400); |
|