函数逻辑报告 |
Source Code:mm\vmalloc.c |
Create Date:2022-07-27 16:29:15 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称:vb_free
函数原型:static void vb_free(const void *addr, unsigned long size)
返回类型:void
参数:
类型 | 参数 | 名称 |
---|---|---|
const void * | addr | |
unsigned long | size |
1666 | BUG_ON(offset_in_page(size)) |
1667 | BUG_ON(size > PAGE_SIZE * 256K with 4K pages ) |
1669 | flush_cache_vunmap((unsignedlong)addr, (unsignedlong)addr + size) |
1671 | order等于get_order - Determine the allocation order of a memory size*@size: The size for which to get the order* Determine the allocation order of a particular sized block of memory |
1673 | offset等于addr按位与VMAP_BLOCK_SIZE减1 |
1674 | offset右移等于PAGE_SHIFT determines the page size 位 |
1682 | vunmap_page_range((unsignedlong)addr, (unsignedlong)addr + size) |
1684 | 如果For use in fast paths after init_debug_pagealloc() has run, or when a* false negative result is not harmful when called too early.则flush_tlb_kernel_range((unsignedlong)addr, (unsignedlong)addr + size) |
1688 | 加自旋锁 |
1692 | < dirty range 等于两数取大(< dirty range , offset + (1UL << order)) |
1695 | 如果dirty恒等于VMAP_BBMAP_BITS则 |
1699 | 否则自旋锁解锁 |
名称 | 描述 |
---|---|
vm_unmap_ram | vm_unmap_ram - unmap linear kernel address space set up by vm_map_ram*@mem: the pointer returned by vm_map_ram*@count: the count passed to that vm_map_ram call (cannot unmap partial) |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |