函数逻辑报告 |
Source Code:lib\stackdepot.c |
Create Date:2022-07-27 08:19:44 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称:stack_depot_save - Save a stack trace from an array*@entries: Pointer to storage array*@nr_entries: Size of the storage array*@alloc_flags: Allocation gfp flags* Return: The handle of the stack struct stored in depot
函数原型:depot_stack_handle_t stack_depot_save(unsigned long *entries, unsigned int nr_entries, gfp_t alloc_flags)
返回类型:depot_stack_handle_t
参数:
类型 | 参数 | 名称 |
---|---|---|
unsigned long * | entries | |
unsigned int | nr_entries | |
gfp_t | alloc_flags |
228 | retval等于0 |
230 | void * prealloc = NULL |
234 | 如果此条件成立可能性小(为编译器优化)(nr_entries == 0)则转到:fast_exit |
238 | bucket等于stack_table[hash & STACK_HASH_MASK] |
245 | found等于find_stack(smp_load_acquire(bucket), entries, nr_entries, hash) |
258 | 如果此条件成立可能性小(为编译器优化)(!smp_load_acquire( & next_slab_inited))则 |
264 | alloc_flags与等于GFP_ZONEMASK的反 |
268 | 如果page则prealloc等于page_address(page) |
272 | spin_lock_irqsave( & depot_lock, flags) |
274 | found等于find_stack( * bucket, entries, nr_entries, hash) |
275 | 如果非found则 |
276 | new等于depot_alloc_stack(entries, nr_entries, hash, & prealloc, alloc_flags) |
279 | 如果new则 |
288 | 否则如果prealloc则 |
293 | WARN_ON(!init_stack_slab( & prealloc)) |
296 | spin_unlock_irqrestore( & depot_lock, flags) |
297 | exit : |
298 | 如果prealloc则 |
300 | free_pages((unsignedlong)prealloc, 'Slab' size order for stack depot, 4 pages ) |
304 | fast_exit : |
305 | 返回:retval |
名称 | 描述 |
---|---|
create_dummy_stack | |
save_stack | |
save_stack |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |