Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:arch\x86\kernel\unwind_orc.c Create Date:2022-07-28 08:50:56
Last Modify:2020-03-12 14:18:49 Copyright©Brick
home page Tree
Annotation kernel can get tool activityDownload SCCTChinese

Name:unwind_init

Proto:void __init unwind_init(void)

Type:void

Parameter:Nothing

263  orc_ip_size = __stop_orc_unwind_ip - __start_orc_unwind_ip
264  orc_size = __stop_orc_unwind - __start_orc_unwind
265  num_entries = orc_ip_size / sizeof(int)
269  If Not num_entries || orc_ip_size % sizeof(int) != 0 || orc_size % sizeof(structorc_entry) != 0 || num_entries != orc_size / sizeof(structorc_entry) Then
272  orc_warn("WARNING: Bad or missing .orc_unwind table. Disabling unwinder.\n")
273  Return
277  sort(__start_orc_unwind_ip, num_entries, sizeof(int), orc_sort_cmp, orc_sort_swap)
281  lookup_num_blocks = orc_lookup_end - orc_lookup
282  When i < lookup_num_blocks - 1 cycle
283  orc = __orc_find(__start_orc_unwind_ip, __start_orc_unwind, num_entries, LOOKUP_START_IP + (LOOKUP_BLOCK_SIZE * i))
286  If Not orc Then
287  orc_warn("WARNING: Corrupt .orc_unwind table. Disabling unwinder.\n")
288  Return
291  orc_lookup[i] = orc - __start_orc_unwind
295  orc = __orc_find(__start_orc_unwind_ip, __start_orc_unwind, num_entries, LOOKUP_STOP_IP)
297  If Not orc Then
298  orc_warn("WARNING: Corrupt .orc_unwind table. Disabling unwinder.\n")
299  Return
301  orc_lookup[lookup_num_blocks - 1] = orc - __start_orc_unwind
303  orc_init = true