xtrap.h revision 90792
1297666Ssgalabov/* 2297666Ssgalabov * Copyright (c) 2000-2001 Sendmail, Inc. and its suppliers. 3297666Ssgalabov * All rights reserved. 4297666Ssgalabov * 5297666Ssgalabov * By using this file, you agree to the terms and conditions set 6297666Ssgalabov * forth in the LICENSE file which can be found at the top level of 7297666Ssgalabov * the sendmail distribution. 8297666Ssgalabov * 9297666Ssgalabov * $Id: xtrap.h,v 1.7 2001/04/03 01:53:01 gshapiro Exp $ 10297666Ssgalabov */ 11297666Ssgalabov 12297666Ssgalabov/* 13297666Ssgalabov** scaffolding for testing exception handler code 14297666Ssgalabov*/ 15297666Ssgalabov 16297666Ssgalabov#ifndef SM_XTRAP_H 17297666Ssgalabov# define SM_XTRAP_H 18297666Ssgalabov 19297666Ssgalabov# include <sm/debug.h> 20297666Ssgalabov# include <sm/exc.h> 21297666Ssgalabov 22297666Ssgalabovextern SM_ATOMIC_UINT_T SmXtrapCount; 23297666Ssgalabovextern SM_DEBUG_T SmXtrapDebug; 24297666Ssgalabovextern SM_DEBUG_T SmXtrapReport; 25297666Ssgalabov 26297666Ssgalabov# if SM_DEBUG_CHECK 27297666Ssgalabov# define sm_xtrap_check() (++SmXtrapCount == sm_debug_level(&SmXtrapDebug)) 28297666Ssgalabov# else /* SM_DEBUG_CHECK */ 29297666Ssgalabov# define sm_xtrap_check() (0) 30297666Ssgalabov# endif /* SM_DEBUG_CHECK */ 31297666Ssgalabov 32297666Ssgalabov# define sm_xtrap_raise_x(exc) \ 33297666Ssgalabov if (sm_xtrap_check()) \ 34297666Ssgalabov { \ 35297666Ssgalabov sm_exc_raise_x(exc); \ 36297666Ssgalabov } else 37297666Ssgalabov 38297666Ssgalabov#endif /* ! SM_XTRAP_H */ 39297666Ssgalabov