Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:kernel\jump_label.c Create Date:2022-07-28 13:48:52
Last Modify:2020-03-17 20:59:06 Copyright©Brick
home page Tree
Annotation kernel can get tool activityDownload SCCTChinese

Name:jump_label_init

Proto:void __init jump_label_init(void)

Type:void

Parameter:Nothing

455  iter_start = __start___jump_table
456  iter_stop = __stop___jump_table
457  struct static_key * key = NULL
466  BUILD_BUG_ON - break compile if a condition is true((int)Atomic operations that C can't guarantee us. Useful for* resource counting etc..(0) != 0)
467  BUILD_BUG_ON - break compile if a condition is true((int)Atomic operations that C can't guarantee us. Useful for* resource counting etc..(1) != 1)
469  If static_key_initialized Then Return
472  cpus_read_lock()
473  jump_label_lock()
474  jump_label_sort_entries(iter_start, iter_stop)
476  When iter < iter_stop cycle
480  If jump_label_type(iter) == JUMP_LABEL_NOP Then Update code which is definitely not currently executing.* Architectures which need heavyweight synchronization to modify* running code can override this to make the non-live update case* cheaper.
483  If _section_contains - checks if an object is contained within the init* section*@virt: virtual address of the memory object*@size: size of the memory object* Returns: true if the object specified by @virt and @size is entirely Then jump_entry_set_init(iter)
486  iterk = jump_entry_key(iter)
487  If iterk == key Then Continue
490  key = iterk
491  A 'struct static_key' uses a union such that it either points directly* to a table of 'struct jump_entry' or to a linked list of modules which in* turn point to 'struct jump_entry' tables
493  static_key_initialized = true
494  jump_label_unlock()
495  cpus_read_unlock()