xref: /freebsd-src/contrib/sendmail/include/sm/xtrap.h (revision e2c0e292e8a7ca00ba99bcfccc9e637f45c3e8b1)
140266059SGregory Neil Shapiro /*
25dd76dd0SGregory Neil Shapiro  * Copyright (c) 2000-2001 Proofpoint, Inc. and its suppliers.
340266059SGregory Neil Shapiro  *	All rights reserved.
440266059SGregory Neil Shapiro  *
540266059SGregory Neil Shapiro  * By using this file, you agree to the terms and conditions set
640266059SGregory Neil Shapiro  * forth in the LICENSE file which can be found at the top level of
740266059SGregory Neil Shapiro  * the sendmail distribution.
840266059SGregory Neil Shapiro  *
94313cc83SGregory Neil Shapiro  *	$Id: xtrap.h,v 1.8 2013-11-22 20:51:32 ca Exp $
1040266059SGregory Neil Shapiro  */
1140266059SGregory Neil Shapiro 
1240266059SGregory Neil Shapiro /*
1340266059SGregory Neil Shapiro **  scaffolding for testing exception handler code
1440266059SGregory Neil Shapiro */
1540266059SGregory Neil Shapiro 
1640266059SGregory Neil Shapiro #ifndef SM_XTRAP_H
1740266059SGregory Neil Shapiro # define SM_XTRAP_H
1840266059SGregory Neil Shapiro 
1940266059SGregory Neil Shapiro # include <sm/debug.h>
2040266059SGregory Neil Shapiro # include <sm/exc.h>
2140266059SGregory Neil Shapiro 
2240266059SGregory Neil Shapiro extern SM_ATOMIC_UINT_T SmXtrapCount;
2340266059SGregory Neil Shapiro extern SM_DEBUG_T SmXtrapDebug;
2440266059SGregory Neil Shapiro extern SM_DEBUG_T SmXtrapReport;
2540266059SGregory Neil Shapiro 
2640266059SGregory Neil Shapiro # if SM_DEBUG_CHECK
2740266059SGregory Neil Shapiro #  define sm_xtrap_check() (++SmXtrapCount == sm_debug_level(&SmXtrapDebug))
28*5b0945b5SGregory Neil Shapiro # else
2940266059SGregory Neil Shapiro #  define sm_xtrap_check() (0)
30*5b0945b5SGregory Neil Shapiro # endif
3140266059SGregory Neil Shapiro 
3240266059SGregory Neil Shapiro # define sm_xtrap_raise_x(exc) \
3340266059SGregory Neil Shapiro 		if (sm_xtrap_check()) \
3440266059SGregory Neil Shapiro 		{ \
3540266059SGregory Neil Shapiro 			sm_exc_raise_x(exc); \
3640266059SGregory Neil Shapiro 		} else
3740266059SGregory Neil Shapiro 
3840266059SGregory Neil Shapiro #endif /* ! SM_XTRAP_H */
39