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 |