1 /* $NetBSD: openpam_debug.h,v 1.2 2014/10/24 18:17:56 christos Exp $ */ 2 3 /*- 4 * Copyright (c) 2001-2003 Networks Associates Technology, Inc. 5 * Copyright (c) 2004-2011 Dag-Erling Smørgrav 6 * All rights reserved. 7 * 8 * This software was developed for the FreeBSD Project by ThinkSec AS and 9 * Network Associates Laboratories, the Security Research Division of 10 * Network Associates, Inc. under DARPA/SPAWAR contract N66001-01-C-8035 11 * ("CBOSS"), as part of the DARPA CHATS research program. 12 * 13 * Redistribution and use in source and binary forms, with or without 14 * modification, are permitted provided that the following conditions 15 * are met: 16 * 1. Redistributions of source code must retain the above copyright 17 * notice, this list of conditions and the following disclaimer. 18 * 2. Redistributions in binary form must reproduce the above copyright 19 * notice, this list of conditions and the following disclaimer in the 20 * documentation and/or other materials provided with the distribution. 21 * 3. The name of the author may not be used to endorse or promote 22 * products derived from this software without specific prior written 23 * permission. 24 * 25 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 26 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 27 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 28 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 29 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 30 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 31 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 32 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 33 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 34 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 35 * SUCH DAMAGE. 36 * 37 * Id: openpam_debug.h 648 2013-03-05 17:54:27Z des 38 */ 39 40 #ifndef OPENPAM_DEBUG_H_INCLUDED 41 #define OPENPAM_DEBUG_H_INCLUDED 42 43 #ifdef OPENPAM_DEBUG 44 #define ENTER() openpam_log(PAM_LOG_LIBDEBUG, "entering") 45 #define ENTERI(i) do { \ 46 int i_ = (i); \ 47 if (i_ > 0 && i_ < PAM_NUM_ITEMS) \ 48 openpam_log(PAM_LOG_LIBDEBUG, "entering: %s", pam_item_name[i_]); \ 49 else \ 50 openpam_log(PAM_LOG_LIBDEBUG, "entering: %d", i_); \ 51 } while (/*CONSTCOND*/0) 52 #define ENTERN(n) do { \ 53 int n_ = (n); \ 54 openpam_log(PAM_LOG_LIBDEBUG, "entering: %d", n_); \ 55 } while (/*CONSTCOND*/0) 56 #define ENTERS(s) do { \ 57 const char *s_ = (s); \ 58 if (s_ == NULL) \ 59 openpam_log(PAM_LOG_LIBDEBUG, "entering: NULL"); \ 60 else \ 61 openpam_log(PAM_LOG_LIBDEBUG, "entering: '%s'", s_); \ 62 } while (/*CONSTCOND*/0) 63 #define ENTERF(f) do { \ 64 int f_ = (f); \ 65 if (f_ >= 0 && f_ <= OPENPAM_NUM_FEATURES) \ 66 openpam_log(PAM_LOG_LIBDEBUG, "entering: %s", \ 67 openpam_features[f_].name); \ 68 else \ 69 openpam_log(PAM_LOG_LIBDEBUG, "entering: %d", f_); \ 70 } while (/*CONSTCOND*/0) 71 #define RETURNV() openpam_log(PAM_LOG_LIBDEBUG, "returning") 72 #define RETURNC(c) do { \ 73 int c_ = (c); \ 74 if (c_ >= 0 && c_ < PAM_NUM_ERRORS) \ 75 openpam_log(PAM_LOG_LIBDEBUG, "returning %s", pam_err_name[c_]); \ 76 else \ 77 openpam_log(PAM_LOG_LIBDEBUG, "returning %d!", c_); \ 78 return (c_); \ 79 } while (/*CONSTCOND*/0)/*NOTREACHED*/ 80 #define RETURNN(n) do { \ 81 int n_ = (n); \ 82 openpam_log(PAM_LOG_LIBDEBUG, "returning %d", n_); \ 83 return (n_); \ 84 } while (/*CONSTCOND*/0)/*NOTREACHED*/ 85 #define RETURNP(p) do { \ 86 void *p_ = (p); \ 87 if (p_ == NULL) \ 88 openpam_log(PAM_LOG_LIBDEBUG, "returning NULL"); \ 89 else \ 90 openpam_log(PAM_LOG_LIBDEBUG, "returning %p", p_); \ 91 return (p_); \ 92 } while (/*CONSTCOND*/0)/*NOTREACHED*/ 93 #define RETURNS(s) do { \ 94 const char *s_ = (s); \ 95 if (s_ == NULL) \ 96 openpam_log(PAM_LOG_LIBDEBUG, "returning NULL"); \ 97 else \ 98 openpam_log(PAM_LOG_LIBDEBUG, "returning '%s'", s_); \ 99 return (s_); \ 100 } while (/*CONSTCOND*/0)/*NOTREACHED*/ 101 #else 102 #define ENTER() 103 #define ENTERI(i) 104 #define ENTERN(n) 105 #define ENTERS(s) 106 #define ENTERF(f) 107 #define RETURNV() return 108 #define RETURNC(c) return (c) 109 #define RETURNN(n) return (n) 110 #define RETURNP(p) return (p) 111 #define RETURNS(s) return (s) 112 #endif 113 114 #endif 115