Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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 activityDownload SCCTChinese

Name:e820__update_table

Proto:int __init e820__update_table(struct e820_table *table)

Type:int

Parameter:

TypeParameterName
struct e820_table *table
310  entries = entries
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
325  If addr + size < addr Then Return -1
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
346  chg_nr = chg_idx
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
358  When chg_idx < chg_nr cycle
363  Else
365  When i < overlap_entries cycle
369  overlap_entries--
376  current_type = 0
377  When i < overlap_entries cycle
378  If type > current_type Then current_type = type
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
402  memcpy(entries, new_entries, new_nr_entries * size of entries )
403  nr_entries = new_nr_entries
405  Return 0
Caller
NameDescribe
setup_archsetup_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_extendedBecause 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_dataReserve 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_paramsCalled 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_defaultPass the firmware (bootloader) E820 map to the kernel and process it:
intel_graphics_stolen