1240c84b1SEugeniy Paltsev /* SPDX-License-Identifier: GPL-2.0-only */ 2240c84b1SEugeniy Paltsev /* 3240c84b1SEugeniy Paltsev * Copyright (C) 2020 Synopsys, Inc. (www.synopsys.com) 4240c84b1SEugeniy Paltsev * 5240c84b1SEugeniy Paltsev * Author: Eugeniy Paltsev <Eugeniy.Paltsev@synopsys.com> 6240c84b1SEugeniy Paltsev */ 7240c84b1SEugeniy Paltsev #ifndef __ASM_ARC_ASSERTS_H 8240c84b1SEugeniy Paltsev #define __ASM_ARC_ASSERTS_H 9240c84b1SEugeniy Paltsev 10240c84b1SEugeniy Paltsev /* Helpers to sanitize config options. */ 11240c84b1SEugeniy Paltsev 12240c84b1SEugeniy Paltsev void chk_opt_strict(char *opt_name, bool hw_exists, bool opt_ena); 13*f09d3174SEugeniy Paltsev void chk_opt_weak(char *opt_name, bool hw_exists, bool opt_ena); 14240c84b1SEugeniy Paltsev 15240c84b1SEugeniy Paltsev /* 16240c84b1SEugeniy Paltsev * Check required config option: 17240c84b1SEugeniy Paltsev * - panic in case of OPT enabled but corresponding HW absent. 18240c84b1SEugeniy Paltsev * - warn in case of OPT disabled but corresponding HW exists. 19240c84b1SEugeniy Paltsev */ 20240c84b1SEugeniy Paltsev #define CHK_OPT_STRICT(opt_name, hw_exists) \ 21240c84b1SEugeniy Paltsev ({ \ 22240c84b1SEugeniy Paltsev chk_opt_strict(#opt_name, hw_exists, IS_ENABLED(opt_name)); \ 23240c84b1SEugeniy Paltsev }) 24240c84b1SEugeniy Paltsev 25*f09d3174SEugeniy Paltsev /* 26*f09d3174SEugeniy Paltsev * Check optional config option: 27*f09d3174SEugeniy Paltsev * - panic in case of OPT enabled but corresponding HW absent. 28*f09d3174SEugeniy Paltsev */ 29*f09d3174SEugeniy Paltsev #define CHK_OPT_WEAK(opt_name, hw_exists) \ 30*f09d3174SEugeniy Paltsev ({ \ 31*f09d3174SEugeniy Paltsev chk_opt_weak(#opt_name, hw_exists, IS_ENABLED(opt_name)); \ 32*f09d3174SEugeniy Paltsev }) 33*f09d3174SEugeniy Paltsev 34240c84b1SEugeniy Paltsev #endif /* __ASM_ARC_ASSERTS_H */ 35