169d94f4cSDag-Erling Smørgrav /*- 269d94f4cSDag-Erling Smørgrav * SPDX-License-Identifier: BSD-2-Clause 369d94f4cSDag-Erling Smørgrav * 469d94f4cSDag-Erling Smørgrav * Copyright (c) 2013 Juniper Networks, Inc. 569d94f4cSDag-Erling Smørgrav * Copyright (c) 2022 Klara, Inc. 669d94f4cSDag-Erling Smørgrav * 769d94f4cSDag-Erling Smørgrav * Redistribution and use in source and binary forms, with or without 869d94f4cSDag-Erling Smørgrav * modification, are permitted provided that the following conditions 969d94f4cSDag-Erling Smørgrav * are met: 1069d94f4cSDag-Erling Smørgrav * 1. Redistributions of source code must retain the above copyright 1169d94f4cSDag-Erling Smørgrav * notice, this list of conditions and the following disclaimer. 1269d94f4cSDag-Erling Smørgrav * 2. Redistributions in binary form must reproduce the above copyright 1369d94f4cSDag-Erling Smørgrav * notice, this list of conditions and the following disclaimer in the 1469d94f4cSDag-Erling Smørgrav * documentation and/or other materials provided with the distribution. 1569d94f4cSDag-Erling Smørgrav * 1669d94f4cSDag-Erling Smørgrav * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 1769d94f4cSDag-Erling Smørgrav * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 1869d94f4cSDag-Erling Smørgrav * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 1969d94f4cSDag-Erling Smørgrav * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 2069d94f4cSDag-Erling Smørgrav * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 2169d94f4cSDag-Erling Smørgrav * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 2269d94f4cSDag-Erling Smørgrav * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 2369d94f4cSDag-Erling Smørgrav * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 2469d94f4cSDag-Erling Smørgrav * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 2569d94f4cSDag-Erling Smørgrav * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 2669d94f4cSDag-Erling Smørgrav * SUCH DAMAGE. 2769d94f4cSDag-Erling Smørgrav */ 2869d94f4cSDag-Erling Smørgrav 2969d94f4cSDag-Erling Smørgrav #ifndef _FS_TARFS_TARFS_DBG_H_ 3069d94f4cSDag-Erling Smørgrav #define _FS_TARFS_TARFS_DBG_H_ 3169d94f4cSDag-Erling Smørgrav 3269d94f4cSDag-Erling Smørgrav #ifndef _KERNEL 3369d94f4cSDag-Erling Smørgrav #error Should only be included by kernel 3469d94f4cSDag-Erling Smørgrav #endif 3569d94f4cSDag-Erling Smørgrav 3669d94f4cSDag-Erling Smørgrav #ifdef TARFS_DEBUG 3769d94f4cSDag-Erling Smørgrav extern int tarfs_debug; 3869d94f4cSDag-Erling Smørgrav 3969d94f4cSDag-Erling Smørgrav #define TARFS_DEBUG_ALLOC 0x01 4069d94f4cSDag-Erling Smørgrav #define TARFS_DEBUG_CHECKSUM 0x02 4169d94f4cSDag-Erling Smørgrav #define TARFS_DEBUG_FS 0x04 4269d94f4cSDag-Erling Smørgrav #define TARFS_DEBUG_LOOKUP 0x08 4369d94f4cSDag-Erling Smørgrav #define TARFS_DEBUG_VNODE 0x10 4469d94f4cSDag-Erling Smørgrav #define TARFS_DEBUG_IO 0x20 4569d94f4cSDag-Erling Smørgrav #define TARFS_DEBUG_ZIO 0x40 4669d94f4cSDag-Erling Smørgrav #define TARFS_DEBUG_ZIDX 0x80 4769d94f4cSDag-Erling Smørgrav #define TARFS_DEBUG_MAP 0x100 48*bf84156bSDag-Erling Smørgrav #define TARFS_DEBUG_BOUNCE 0x200 4969d94f4cSDag-Erling Smørgrav 5069d94f4cSDag-Erling Smørgrav #define TARFS_DPF(category, fmt, ...) \ 5169d94f4cSDag-Erling Smørgrav do { \ 5269d94f4cSDag-Erling Smørgrav if ((tarfs_debug & TARFS_DEBUG_##category) != 0) \ 5369d94f4cSDag-Erling Smørgrav printf(fmt, ## __VA_ARGS__); \ 5469d94f4cSDag-Erling Smørgrav } while (0) 5569d94f4cSDag-Erling Smørgrav #define TARFS_DPF_IFF(category, cond, fmt, ...) \ 5669d94f4cSDag-Erling Smørgrav do { \ 5769d94f4cSDag-Erling Smørgrav if ((cond) \ 5869d94f4cSDag-Erling Smørgrav && (tarfs_debug & TARFS_DEBUG_##category) != 0) \ 5969d94f4cSDag-Erling Smørgrav printf(fmt, ## __VA_ARGS__); \ 6069d94f4cSDag-Erling Smørgrav } while (0) 6169d94f4cSDag-Erling Smørgrav #else 6269d94f4cSDag-Erling Smørgrav #define TARFS_DPF(category, fmt, ...) 6369d94f4cSDag-Erling Smørgrav #define TARFS_DPF_IFF(category, cond, fmt, ...) 6469d94f4cSDag-Erling Smørgrav #endif 6569d94f4cSDag-Erling Smørgrav 6669d94f4cSDag-Erling Smørgrav #endif /* _FS_TARFS_TARFS_DBG_H_ */ 67