⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mmshow.c

📁 为Linux虚拟内存驱动程序
💻 C
字号:
#include <linux/module.h>
#include <linux/init.h>
#include <linux/slab.h>
#include <linux/mm.h>
#include <linux/vmalloc.h>

unsigned long pagemem;
unsigned char *kmallocmem;
unsigned char *vmallocmem;

MODULE_LICENSE("GPL");
MODULE_AUTHOR("Chen Li-Jun, WANG Cong");

static int __init init_mmshow(void)
{
	pagemem = __get_free_page(GFP_KERNEL);
	if(!pagemem)
		goto fail3;
	printk(KERN_INFO "pagemem=0x%lx\n", pagemem);
	kmallocmem = kmalloc(100, GFP_KERNEL);
	if(!kmallocmem)
		goto fail2;
	printk(KERN_INFO "kmallocmem=0x%p\n", kmallocmem);
	vmallocmem = vmalloc(1000000);
	if(!vmallocmem)
		goto fail1;
	printk(KERN_INFO "vmallocmem=0x%p\n", vmallocmem);
	return 0;
fail1:
	kfree(kmallocmem);
fail2:
	free_page(pagemem);
fail3:
	return -1;
}

static void __exit cleanup_mmshow(void)
{
	vfree(vmallocmem);
	kfree(kmallocmem);
	free_page(pagemem);
}

module_init(init_mmshow);
module_exit(cleanup_mmshow);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -