官术网_书友最值得收藏!

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命令包含了獲得物理內存、映射和解除映射內存、獲得內存尺寸、分配、連接和獲得全部大小等功能。

主站蜘蛛池模板: 阳东县| 尚志市| 称多县| 黄陵县| 南木林县| 沂南县| 巫山县| 武强县| 盐城市| 临安市| 马山县| 屯昌县| 罗城| 涿鹿县| 开原市| 阜宁县| 偏关县| 三明市| 白山市| 五大连池市| 东兴市| 竹山县| 罗源县| 中阳县| 陵水| 康马县| 孟连| 遂宁市| 辰溪县| 湘潭市| 尚志市| 大渡口区| 彭州市| 柳林县| 郑州市| 静乐县| 安丘市| 秦安县| 临城县| 津市市| 阿图什市|