Function report | 
Source Code:kernel\jump_label.c | 
Create Date:2022-07-28 13:49:04 | 
| Last Modify:2020-03-17 20:59:06 | Copyright©Brick | 
| home page | Tree | 
| Annotation kernel can get tool activity | Download SCCT | Chinese | 
Name:jump_label_add_module
Proto:static int jump_label_add_module(struct module *mod)
Type:int
Parameter:
| Type | Parameter | Name | 
|---|---|---|
| struct module * | mod | 
| 609 | iter_start = jump_entries | 
| 610 | iter_stop = iter_start + num_jump_entries | 
| 612 | struct static_key * key = NULL | 
| 616 | If iter_start == iter_stop Then Return 0 | 
| 624 | If within_module_init(jump_entry_code(iter), mod) Then jump_entry_set_init(iter) | 
| 627 | iterk = jump_entry_key(iter) | 
| 632 | If within_module((unsignedlong)key, mod) Then | 
| 636 | jlm = kzalloc - allocate memory. The memory is set to zero.*@size: how many bytes of memory are required.*@flags: the type of memory to allocate (see kmalloc). | 
| 639 | If Not static_key_linked(key) Then | 
| 640 | jlm2 = kzalloc - allocate memory. The memory is set to zero.*@size: how many bytes of memory are required.*@flags: the type of memory to allocate (see kmalloc). | 
| 642 | If Not jlm2 Then | 
| 647 | mod = __module_address - get the module which contains an address.*@addr: the address.* Must be called with preempt disabled or module mutex held so that* module doesn't get freed during this. | 
| 648 | preempt_enable() | 
| 649 | entries = static_key_entries(key) | 
| 650 | next = NULL | 
| 652 | static_key_set_linked(key) | 
| 656 | next = static_key_mod(key) | 
| 658 | static_key_set_linked(key) | 
| 661 | If jump_label_type(iter) != jump_label_init_type(iter) Then __jump_label_update(key, iter, iter_stop, true) | 
| 665 | Return 0 | 
| Name | Describe | 
|---|---|
| jump_label_module_notify | 
| 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  |