1*df114daeSRuslan Bukin /*- 2*df114daeSRuslan Bukin * Copyright (c) 2023-2025 Ruslan Bukin <br@bsdpad.com> 3*df114daeSRuslan Bukin * 4*df114daeSRuslan Bukin * This work was supported by Innovate UK project 105694, "Digital Security 5*df114daeSRuslan Bukin * by Design (DSbD) Technology Platform Prototype". 6*df114daeSRuslan Bukin * 7*df114daeSRuslan Bukin * Redistribution and use in source and binary forms, with or without 8*df114daeSRuslan Bukin * modification, are permitted provided that the following conditions 9*df114daeSRuslan Bukin * are met: 10*df114daeSRuslan Bukin * 1. Redistributions of source code must retain the above copyright 11*df114daeSRuslan Bukin * notice, this list of conditions and the following disclaimer. 12*df114daeSRuslan Bukin * 2. Redistributions in binary form must reproduce the above copyright 13*df114daeSRuslan Bukin * notice, this list of conditions and the following disclaimer in the 14*df114daeSRuslan Bukin * documentation and/or other materials provided with the distribution. 15*df114daeSRuslan Bukin * 16*df114daeSRuslan Bukin * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 17*df114daeSRuslan Bukin * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18*df114daeSRuslan Bukin * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19*df114daeSRuslan Bukin * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 20*df114daeSRuslan Bukin * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 21*df114daeSRuslan Bukin * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 22*df114daeSRuslan Bukin * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 23*df114daeSRuslan Bukin * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 24*df114daeSRuslan Bukin * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 25*df114daeSRuslan Bukin * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 26*df114daeSRuslan Bukin * SUCH DAMAGE. 27*df114daeSRuslan Bukin */ 28*df114daeSRuslan Bukin 29*df114daeSRuslan Bukin #ifndef _DEV_HWT_HWT_OWNERHASH_H_ 30*df114daeSRuslan Bukin #define _DEV_HWT_HWT_OWNERHASH_H_ 31*df114daeSRuslan Bukin 32*df114daeSRuslan Bukin struct hwt_owner * hwt_ownerhash_lookup(struct proc *p); 33*df114daeSRuslan Bukin void hwt_ownerhash_insert(struct hwt_owner *ho); 34*df114daeSRuslan Bukin void hwt_ownerhash_remove(struct hwt_owner *ho); 35*df114daeSRuslan Bukin 36*df114daeSRuslan Bukin void hwt_ownerhash_load(void); 37*df114daeSRuslan Bukin void hwt_ownerhash_unload(void); 38*df114daeSRuslan Bukin 39*df114daeSRuslan Bukin #define HWT_OWNERHASH_LOCK() mtx_lock(&hwt_ownerhash_mtx) 40*df114daeSRuslan Bukin #define HWT_OWNERHASH_UNLOCK() mtx_unlock(&hwt_ownerhash_mtx) 41*df114daeSRuslan Bukin 42*df114daeSRuslan Bukin #endif /* !_DEV_HWT_HWT_OWNERHASH_H_ */ 43