通过在调用 write() 或 ioctl(SG_IO) 之前,将 SG_FLAG_MMAP_IO 常量设置(或按位或运算)到 sg_io_hdr 结构的 flag 成员中,来请求 Mmap 映射的 IO。 执行 mmap 映射 IO 的逻辑 _假定_ 应用程序已进行了适当的 mmap() 调用。 换句话说,它不会进行检查。 [1]
[1] | sg 驱动程序确实会记录 mmap() 系统调用已在文件描述符上至少被调用过一次。 这并不足够,因为给定的 'length' 可能对于当前的 IO 来说太短。 此外,驱动程序不知道 munmap() 调用,因此很容易被欺骗。 |