#ifndef _SSL_DEBUG_H_
#define _SSL_DEBUG_H_
#ifdef KERNEL
#define secinfo(x...)
#else
#include <utilities/debugging.h>
#endif
#ifndef NDEBUG
#include <AssertMacros.h>
#endif
#define ssl_secinfo secinfo
#ifndef NDEBUG
#define sslHdskStateDebug(args...) ssl_secinfo("sslHdskState", ## args)
#define sslHdskMsgDebug(args...) ssl_secinfo("sslHdskMsg", ## args)
#define sslLogNegotiateDebug(args...) ssl_secinfo("sslLogNegotiate", ## args)
#define sslLogRxProtocolDebug(msgType) ssl_secinfo("sslLogRxProtocol", \
"---received protoMsg %s", msgType)
#define sslLogResumSessDebug(args...) ssl_secinfo("sslResumSession", ## args)
#define sslLogSessCacheDebug(args...) ssl_secinfo("sslSessionCache", ## args)
#define sslLogRecordIo(args...) ssl_secinfo("sslRecordIo", ## args)
#define sslCertDebug(args...) ssl_secinfo("sslCert", ## args)
#define sslDhDebug(args...) ssl_secinfo("sslDh", ## args)
#define sslEapDebug(args...) ssl_secinfo("sslEap", ## args)
#define sslEcdsaDebug(args...) ssl_secinfo("sslEcdsa", ## args)
#else
#define sslHdskStateDebug(args...)
#define sslHdskMsgDebug(args...)
#define sslLogNegotiateDebug(args...)
#define sslLogRxProtocolDebug(msgType)
#define sslLogResumSessDebug(args...)
#define sslLogSessCacheDebug(args...)
#define sslLogRecordIo(args...)
#define sslCertDebug(args...)
#define sslDhDebug(args...)
#define sslEapDebug(args...)
#define sslEcdsaDebug(args...)
#endif NDEBUG */
#ifdef NDEBUG
#define sslErrorLog(args...)
#define sslDebugLog(args...)
#define sslDump(d, l)
#else
extern void SSLDump(const unsigned char *data, unsigned long len);
#if SSL_DEBUG
#define sslDebugLog(args...) ssl_secinfo("sslDebug", ## args)
#else
#define sslDebugLog(args...)
#endif
#define sslErrorLog(args...) ssl_secinfo("sslError", ## args)
#define sslDump(d, l) SSLDump((d), (l))
#endif
#ifdef NDEBUG
#define ASSERT(s)
#else
#define ASSERT(s) check(s)
#endif
#endif