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