diff --git a/Software/Development/OperatingSystem/Linux/Kernel/API/Linux_Kernel_内存管理.md b/Software/Development/OperatingSystem/Linux/Kernel/API/Linux_Kernel_内存管理.md index 508543e..fcd5f3d 100644 --- a/Software/Development/OperatingSystem/Linux/Kernel/API/Linux_Kernel_内存管理.md +++ b/Software/Development/OperatingSystem/Linux/Kernel/API/Linux_Kernel_内存管理.md @@ -18,7 +18,7 @@ unsigned long get_zeroed_page(gfp_t gfp_mask); **说明:** -该函数返回一个新内存页的 pfn,并且将该页清零。pfn 是页面标号。 +该函数返回一个指向新页的虚拟地址指针并且将该页清零。 **参数:** @@ -41,7 +41,7 @@ gfp_mask 的参考用法: **返回值:** -申请成功返回有效的 pfn,失败返回 0。 +申请成功返回有效的内核虚拟地址,失败返回 0。 ### 1.2.__get_free_pages @@ -53,7 +53,7 @@ unsigned long __get_free_pages(gfp_t gfp_mask, unsigned int order); **说明:** -该函数可分配多个连续的页并返回首页的 pfn,分配的页数为 2order,分配的页不清零。order 允许的最大值是 10(即 1024 页)或者 11(即 2048 页),依赖于具体的硬件平台。 +该函数可分配多个连续的页并返回首页的指针,分配的页数为 2order,分配的页不清零。order 允许的最大值是 10(即 1024 页)或者 11(即 2048 页),依赖于具体的硬件平台。 **参数:** @@ -63,7 +63,7 @@ order:要分配的页数。 **返回值:** -申请成功返回有效的 pfn,失败返回 0。 +申请成功返回有效的内核虚拟地址,失败返回 0。 ### 1.3.alloc_pages @@ -94,11 +94,12 @@ order:要分配的页数。 ```c void __free_pages(struct page *page, unsigned int order); void free_pages(unsigned long addr, unsigned int order); +void free_page(unsigned long addr); ``` **说明:** -用 get_zeroed_page/__get_free_pages 分配的内存页用 free_pages 释放,用 alloc_pages 分配的页用 free_pages 释放。 +get_zeroed_page 分配的内存页用 free_page 释放;__get_free_pages 分配的内存页用 free_pages 释放;alloc_pages 分配的页用 __free_pages 释放。 **参数:**