函数逻辑报告 |
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 插件可实现:逻辑报告 代码生成和批量转换代码 |