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 |