lockdep.h revision 361193
1169695Skan/*- 2169695Skan * Copyright (c) 2010 Isilon Systems, Inc. 3169695Skan * Copyright (c) 2010 iX Systems, Inc. 4169695Skan * Copyright (c) 2010 Panasas, Inc. 5169695Skan * Copyright (c) 2013, 2014 Mellanox Technologies, Ltd. 6169695Skan * All rights reserved. 7169695Skan * 8169695Skan * Redistribution and use in source and binary forms, with or without 9169695Skan * modification, are permitted provided that the following conditions 10169695Skan * are met: 11169695Skan * 1. Redistributions of source code must retain the above copyright 12169695Skan * notice unmodified, this list of conditions, and the following 13169695Skan * disclaimer. 14169695Skan * 2. Redistributions in binary form must reproduce the above copyright 15169695Skan * notice, this list of conditions and the following disclaimer in the 16169695Skan * documentation and/or other materials provided with the distribution. 17169695Skan * 18169695Skan * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 19169695Skan * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 20169695Skan * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 21169695Skan * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 22169695Skan * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 23169695Skan * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 24169695Skan * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 25169695Skan * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26169695Skan * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 27169695Skan * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28169695Skan * 29169695Skan * $FreeBSD: stable/11/sys/compat/linuxkpi/common/include/linux/lockdep.h 361193 2020-05-18 09:23:18Z hselasky $ 30169695Skan */ 31169695Skan 32169695Skan#ifndef _LINUX_LOCKDEP_H_ 33169695Skan#define _LINUX_LOCKDEP_H_ 34169695Skan 35169695Skanstruct lock_class_key { 36169695Skan}; 37169695Skan 38169695Skan#define lockdep_set_class(lock, key) 39169695Skan#define lockdep_set_subclass(lock, sub) 40169695Skan#define lockdep_set_class_and_name(lock, key, name) 41169695Skan#define lockdep_set_current_reclaim_state(g) do { } while (0) 42169695Skan#define lockdep_clear_current_reclaim_state() do { } while (0) 43169695Skan 44169695Skan#ifdef INVARIANTS 45169695Skan#define lockdep_assert_held(m) do { \ 46169695Skan struct lock_object *__lock = (struct lock_object *)(m); \ 47169695Skan LOCK_CLASS(__lock)->lc_assert(__lock, LA_LOCKED); \ 48169695Skan} while (0) 49169695Skan 50169695Skan#define lockdep_assert_held_once(m) do { \ 51169695Skan struct lock_object *__lock = (struct lock_object *)(m); \ 52169695Skan LOCK_CLASS(__lock)->lc_assert(__lock, LA_LOCKED | LA_NOTRECURSED); \ 53169695Skan} while (0) 54169695Skan 55169695Skanstatic __inline bool 56169695Skanlockdep_is_held(void *__m) 57169695Skan{ 58169695Skan struct lock_object *__lock; 59169695Skan struct thread *__td; 60169695Skan 61169695Skan __lock = __m; 62169695Skan return (LOCK_CLASS(__lock)->lc_owner(__lock, &__td) != 0); 63169695Skan} 64169695Skan#define lockdep_is_held_type(_m, _t) lockdep_is_held(_m) 65169695Skan 66169695Skan#else 67169695Skan#define lockdep_assert_held(m) do { } while (0) 68169695Skan 69169695Skan#define lockdep_assert_held_once(m) do { } while (0) 70169695Skan 71169695Skan#define lockdep_is_held(m) 1 72169695Skan#define lockdep_is_held_type(_m, _t) 1 73169695Skan#endif 74169695Skan 75169695Skan#define might_lock(m) do { } while (0) 76169695Skan#define might_lock_read(m) do { } while (0) 77169695Skan 78169695Skan#define lock_acquire(...) do { } while (0) 79169695Skan#define lock_release(...) do { } while (0) 80169695Skan#define lock_acquire_shared_recursive(...) do { } while (0) 81169695Skan 82169695Skan#define mutex_acquire(...) do { } while (0) 83169695Skan#define mutex_release(...) do { } while (0) 84169695Skan 85169695Skan#endif /* _LINUX_LOCKDEP_H_ */ 86169695Skan