1*4882a593Smuzhiyun // SPDX-License-Identifier: GPL-2.0 2*4882a593Smuzhiyun #include <linux/lockdep.h> 3*4882a593Smuzhiyun #include <stdlib.h> 4*4882a593Smuzhiyun 5*4882a593Smuzhiyun /* Trivial API wrappers, we don't (yet) have RCU in user-space: */ 6*4882a593Smuzhiyun #define hlist_for_each_entry_rcu hlist_for_each_entry 7*4882a593Smuzhiyun #define hlist_add_head_rcu hlist_add_head 8*4882a593Smuzhiyun #define hlist_del_rcu hlist_del 9*4882a593Smuzhiyun #define list_for_each_entry_rcu list_for_each_entry 10*4882a593Smuzhiyun #define list_add_tail_rcu list_add_tail 11*4882a593Smuzhiyun prandom_u32(void)12*4882a593Smuzhiyunu32 prandom_u32(void) 13*4882a593Smuzhiyun { 14*4882a593Smuzhiyun /* Used only by lock_pin_lock() which is dead code */ 15*4882a593Smuzhiyun abort(); 16*4882a593Smuzhiyun } 17*4882a593Smuzhiyun print_irqtrace_events(struct task_struct * curr)18*4882a593Smuzhiyunvoid print_irqtrace_events(struct task_struct *curr) 19*4882a593Smuzhiyun { 20*4882a593Smuzhiyun abort(); 21*4882a593Smuzhiyun } 22*4882a593Smuzhiyun init_utsname(void)23*4882a593Smuzhiyunstatic struct new_utsname *init_utsname(void) 24*4882a593Smuzhiyun { 25*4882a593Smuzhiyun static struct new_utsname n = (struct new_utsname) { 26*4882a593Smuzhiyun .release = "liblockdep", 27*4882a593Smuzhiyun .version = LIBLOCKDEP_VERSION, 28*4882a593Smuzhiyun }; 29*4882a593Smuzhiyun 30*4882a593Smuzhiyun return &n; 31*4882a593Smuzhiyun } 32*4882a593Smuzhiyun 33*4882a593Smuzhiyun #include "../../../kernel/locking/lockdep.c" 34