18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0 28c2ecf20Sopenharmony_ci#include <linux/lockdep.h> 38c2ecf20Sopenharmony_ci#include <stdlib.h> 48c2ecf20Sopenharmony_ci 58c2ecf20Sopenharmony_ci/* Trivial API wrappers, we don't (yet) have RCU in user-space: */ 68c2ecf20Sopenharmony_ci#define hlist_for_each_entry_rcu hlist_for_each_entry 78c2ecf20Sopenharmony_ci#define hlist_add_head_rcu hlist_add_head 88c2ecf20Sopenharmony_ci#define hlist_del_rcu hlist_del 98c2ecf20Sopenharmony_ci#define list_for_each_entry_rcu list_for_each_entry 108c2ecf20Sopenharmony_ci#define list_add_tail_rcu list_add_tail 118c2ecf20Sopenharmony_ci 128c2ecf20Sopenharmony_ciu32 prandom_u32(void) 138c2ecf20Sopenharmony_ci{ 148c2ecf20Sopenharmony_ci /* Used only by lock_pin_lock() which is dead code */ 158c2ecf20Sopenharmony_ci abort(); 168c2ecf20Sopenharmony_ci} 178c2ecf20Sopenharmony_ci 188c2ecf20Sopenharmony_civoid print_irqtrace_events(struct task_struct *curr) 198c2ecf20Sopenharmony_ci{ 208c2ecf20Sopenharmony_ci abort(); 218c2ecf20Sopenharmony_ci} 228c2ecf20Sopenharmony_ci 238c2ecf20Sopenharmony_cistatic struct new_utsname *init_utsname(void) 248c2ecf20Sopenharmony_ci{ 258c2ecf20Sopenharmony_ci static struct new_utsname n = (struct new_utsname) { 268c2ecf20Sopenharmony_ci .release = "liblockdep", 278c2ecf20Sopenharmony_ci .version = LIBLOCKDEP_VERSION, 288c2ecf20Sopenharmony_ci }; 298c2ecf20Sopenharmony_ci 308c2ecf20Sopenharmony_ci return &n; 318c2ecf20Sopenharmony_ci} 328c2ecf20Sopenharmony_ci 338c2ecf20Sopenharmony_ci#include "../../../kernel/locking/lockdep.c" 34