12345678910111213141516171819202122232425262728 |
- #include "mm.h"
- #include "slab.h"
- /**
- * @brief 获取一块新的vma结构体,并将其与指定的mm进行绑定
- *
- * @param mm 与VMA绑定的内存空间分布结构体
- * @return struct vm_area_struct* 新的VMA
- */
- struct vm_area_struct * vm_area_alloc(struct mm_struct *mm)
- {
- struct vm_area_struct * vma = (struct vm_area_struct *)kmalloc(sizeof(struct vm_area_struct),0);
- if(vma)
- vma_init(vma, mm);
- return vma;
- }
- /**
- * @brief 释放vma结构体
- *
- * @param vma 待释放的vma结构体
- */
- void vm_area_free(struct vm_area_struct *vma)
- {
- if(list_empty(&vma->list)) // 如果当前是剩余的最后一个vma
- vma->vm_mm->vmas = NULL;
- kfree(vma);
- }
|