Function report |
Source Code:kernel\locking\lockdep.c |
Create Date:2022-07-28 09:49:37 |
| Last Modify:2020-03-17 14:16:01 | Copyright©Brick |
| home page | Tree |
| Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:Static locks do not have their class-keys yet - for them the key is* the lock object itself. If the lock is in the per cpu area, the* canonical address of the lock (per cpu offset removed) is used.
Proto:static bool assign_lock_key(struct lockdep_map *lock)
Type:bool
Parameter:
| Type | Parameter | Name |
|---|---|---|
| struct lockdep_map * | lock |
| 865 | BUILD_BUG_ON - break compile if a condition is true(sizeof(structlock_class_key) > sizeof(raw_spinlock_t)) |
| 868 | If __is_kernel_percpu_address(addr, & can_addr) Then key = can_addr |
| 870 | Else if __is_module_percpu_address(addr, & can_addr) Then key = can_addr |
| 872 | Else if Is this the address of a static object: Then key = lock |
| 874 | Else |
| 877 | pr_err("INFO: trying to register non-static key.\n") |
| 878 | pr_err("the code is fine but needs lockdep annotation.\n") |
| 879 | pr_err("turning off the locking correctness validator.\n") |
| 880 | dump_stack() |
| 881 | Return false |
| 884 | Return true |
| Name | Describe |
|---|---|
| register_lock_class | Register a lock's class in the hash-table, if the class is not present* yet. Otherwise we look it up. We cache the result in the lock object* itself, so actual lookup of the hash should be once per lock object. |
| 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 |