函数逻辑报告 |
Source Code:mm\slob.c |
Create Date:2022-07-27 17:09:22 |
| Last Modify:2022-05-20 09:26:42 | Copyright©Brick |
| 首页 | 函数Tree |
| 注解内核,赢得工具 | 下载SCCT | English |
函数名称:slob_page_alloc() - Allocate a slob block within a given slob_page sp.*@sp: Page to look in.*@size: Size of the allocation.*@align: Allocation alignment.*@align_offset: Offset in the allocated block that will be aligned.
函数原型:static void *slob_page_alloc(struct page *sp, size_t size, int align, int align_offset, bool *page_removed_from_list)
返回类型:void
参数:
| 类型 | 参数 | 名称 |
|---|---|---|
| struct page * | sp | |
| size_t | size | |
| int | align | |
| int | align_offset | |
| bool * | page_removed_from_list |
| 241 | delta等于0, units等于SLOB_UNITS(size) |
| 243 | * page_removed_from_list = false |
| 244 | 循环 |
| 254 | 如果align则 |
| 255 | aligned等于@a is a power of 2 value ((unsignedlong)cur + align_offset, align)减align_offset |
| 263 | 如果delta则 |
| 276 | 否则 first free object 等于next |
| 278 | 否则 |
| 281 | 否则 first free object 等于cur加units |
| 287 | 如果非 SLOB 则 |
| 288 | clear_slob_page_free(sp) |
| 289 | * page_removed_from_list = true |
| 291 | 返回:cur |
| 293 | 如果Returns true if s is the last free block in its page.则返回:NULL |
| 名称 | 描述 |
|---|---|
| slob_alloc | slob_alloc: entry point into the slob allocator. |
| 源代码转换工具 开放的插件接口 | X |
|---|---|
| 支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |