函数逻辑报告 |
Source Code:mm\z3fold.c |
Create Date:2022-07-27 18:05:26 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称:z3fold_free() - frees the allocation associated with the given handle*@pool: pool in which the allocation resided*@handle: handle associated with the allocation returned by z3fold_alloc()* In the case that the z3fold page in which the allocation resides
函数原型:static void z3fold_free(struct z3fold_pool *pool, unsigned long handle)
返回类型:void
参数:
类型 | 参数 | 名称 |
---|---|---|
struct z3fold_pool * | pool | |
unsigned long | handle |
1229 | page等于virt_to_page(kaddr) returns a valid pointer if and only if* virt_addr_valid(kaddr) returns true.(zhdr) |
1230 | page_claimed等于st_and_set_bit - Set a bit and return its old value*@nr: Bit to set*@addr: Address to count from* This is an atomic fully-ordered operation (implied full memory barrier). |
1238 | 如果非page_claimed则 |
1246 | 返回 |
1250 | bud等于(handle & BUDDY_MASK) < zhdr->first_num is possible in encode_handle* but that doesn't matter. because the masking will result in the* correct buddy number. |
1254 | first_chunks等于0 |
1255 | 退出 |
1257 | middle_chunks等于0 |
1258 | 退出 |
1260 | last_chunks等于0 |
1261 | 退出 |
1262 | 默认 |
1270 | 如果非page_claimed则free_handle(handle) |
1273 | atomic64_dec( & pages_nr) |
1274 | 返回 |
1276 | 如果page_claimed则 |
1278 | Unlock a z3fold page |
1279 | 返回 |
1283 | put_z3fold_header(zhdr) |
1285 | 返回 |
1287 | 如果cpu小于0或非cpu_online(cpu)则 |
1288 | 加自旋锁 |
1289 | 删除链表项并重新初始化 |
1290 | 自旋锁解锁 |
1291 | cpu等于负1 |
1292 | 对象增加引用 |
1294 | do_compact_page(zhdr, true) |
1295 | 返回 |
1297 | 对象增加引用 |
1300 | put_z3fold_header(zhdr) |
名称 | 描述 |
---|---|
z3fold_zpool_free |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |