函数逻辑报告 |
Source Code:arch\x86\kernel\e820.c |
Create Date:2022-07-27 08:42:55 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称:e820__update_table
函数原型:int __init e820__update_table(struct e820_table *table)
返回类型:int
参数:
类型 | 参数 | 名称 |
---|---|---|
struct e820_table * | table |
311 | max_nr_entries等于ARRAY_SIZE - get the number of elements in array @arr*@arr: array to be sized(entries) |
318 | 如果nr_entries小于2则返回:负1 |
321 | BUG_ON(nr_entries > max_nr_entries) |
324 | 以i小于nr_entries循环 |
330 | 以i小于2乘nr_entries循环change_point[i]等于change_point_list[i] |
337 | chg_idx等于0 |
338 | 以i小于nr_entries循环 |
339 | 如果size不等于0则 |
349 | sort(change_point, chg_nr, change_point的长度, cpcompare, NULL) |
352 | overlap_entries等于0 |
353 | new_nr_entries等于0 |
354 | last_type等于0 |
355 | last_addr等于0 |
360 | 如果Address for this change point: 恒等于addr则 |
363 | 否则 |
365 | 以i小于overlap_entries循环 |
366 | 如果overlap_list[i]恒等于Pointer to the original entry: 则overlap_list[i]等于overlap_list[overlap_entries - 1] |
369 | overlap_entries自减 |
376 | current_type等于0 |
377 | 以i小于overlap_entries循环 |
378 | 如果type大于current_type则current_type等于type |
383 | 如果current_type不等于last_type或current_type恒等于E820_TYPE_PRAM则 |
384 | 如果last_type不等于0则 |
387 | 如果size不等于0则如果new_nr_entries先自加大于等于max_nr_entries则 |
390 | 退出 |
392 | 如果current_type不等于0则 |
394 | type等于current_type |
397 | last_type等于current_type |
402 | memcpy(entries, new_entries, new_nr_entries * entries的长度) |
403 | nr_entries等于new_nr_entries |
405 | 返回:0 |
名称 | 描述 |
---|---|
setup_arch | 平台相关启动 |
e820__update_table_print | |
e820__update_table_kexec | |
e820__memory_setup_extended | Because of the small fixed size of struct boot_params, only the first* 128 E820 memory entries are passed to the kernel via boot_params.e820_table,* the remaining (if any) entries are passed via the SETUP_E820_EXT node of |
e820__reserve_setup_data | Reserve all entries from the bootloader's extensible data nodes list,* because if present we are going to use it later on to fetch e820* entries from it: |
e820__finish_early_params | Called after parse_early_param(), after early parameters (such as mem=)* have been processed, in which case we already have an E820 table filled in* via the parameter callback function(s), but it's not sorted and printed yet: |
e820__memory_setup_default | Pass the firmware (bootloader) E820 map to the kernel and process it: |
intel_graphics_stolen | |
trim_bios_range |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |