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