上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
4.3.5 pmem驱动程序
pmem驱动程序是物理内存的驱动程序,可用于分配物理内存。pmem提供给用户空间的接口是主设备号为10的Misc字符设备,其次设备号是动态生成的。
pmem的内容在drivers/misc/目录中,Makefile中的内容如下所示:
obj-$(CONFIG_ANDROID_PMEM) += pmem.o
pmem的头文件是include/linux目录中的android_pmem.handroid_pmem.h文件,在drivers/misc/目录中的pmem.c中实现功能。
pmem驱动程序提供了mmap和ioctl的接口,这些ioctl的命令如下所示:
#define PMEM_IOCTL_MAGIC 'p' #define PMEM_GET_PHYS _IOW(PMEM_IOCTL_MAGIC, 1, unsigned int) #define PMEM_MAP _IOW(PMEM_IOCTL_MAGIC, 2, unsigned int) #define PMEM_GET_SIZE _IOW(PMEM_IOCTL_MAGIC, 3, unsigned int) #define PMEM_UNMAP _IOW(PMEM_IOCTL_MAGIC, 4, unsigned int) #define PMEM_ALLOCATE _IOW(PMEM_IOCTL_MAGIC, 5, unsigned int) #define PMEM_CONNECT _IOW(PMEM_IOCTL_MAGIC, 6, unsigned int) #define PMEM_GET_TOTAL_SIZE _IOW(PMEM_IOCTL_MAGIC, 7, unsigned int)
这些ioctl命令包含了获得物理内存、映射和解除映射内存、获得内存尺寸、分配、连接和获得全部大小等功能。