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 |