Function report | 
Source Code:arch\x86\kernel\e820.c | 
Create Date:2022-07-28 07:43:09 | 
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick | 
| home page | Tree | 
| Annotation kernel can get tool activity | Download SCCT | Chinese | 
Name:e820__update_table
Proto:int __init e820__update_table(struct e820_table *table)
Type:int
Parameter:
| Type | Parameter | Name | 
|---|---|---|
| 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 | If nr_entries < 2 Then Return -1 | 
| 321 | BUG_ON(nr_entries > max_nr_entries) | 
| 324 | When i < nr_entries cycle | 
| 330 | When i < 2 * nr_entries cycle change_point[i] = change_point_list[i] | 
| 337 | chg_idx = 0 | 
| 338 | When i < nr_entries cycle | 
| 339 | If size != 0 Then | 
| 342 | Address for this change point: = addr + size | 
| 349 | sort(change_point, chg_nr, size of change_point , cpcompare, NULL) | 
| 352 | overlap_entries = 0 | 
| 353 | new_nr_entries = 0 | 
| 354 | last_type = 0 | 
| 355 | last_addr = 0 | 
| 360 | If Address for this change point: == addr Then | 
| 363 | Else | 
| 365 | When i < overlap_entries cycle | 
| 366 | If overlap_list[i] == Pointer to the original entry: Then overlap_list[i] = overlap_list[overlap_entries - 1] | 
| 369 | overlap_entries-- | 
| 376 | current_type = 0 | 
| 377 | When i < overlap_entries cycle | 
| 378 | If type > current_type Then current_type = type | 
| 383 | If current_type != last_type || current_type == E820_TYPE_PRAM Then | 
| 384 | If last_type != 0 Then | 
| 387 | If size != 0 Then If ++new_nr_entries >= max_nr_entries Then | 
| 390 | Break | 
| 392 | If current_type != 0 Then | 
| 394 | type = current_type | 
| 397 | last_type = current_type | 
| 402 | memcpy(entries, new_entries, new_nr_entries * size of entries ) | 
| 403 | nr_entries = new_nr_entries | 
| 405 | Return 0 | 
| Name | Describe | 
|---|---|
| setup_arch | setup_arch - architecture-specific boot-time initializations* Note: On x86_64, fixmaps are ready for use even before this is called. | 
| 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 | 
| Source code conversion tool public plug-in interface  | X | 
|---|---|
| Support c/c++/esqlc/java Oracle/Informix/Mysql Plug-in can realize: logical Report Code generation and batch code conversion  |