iBoot/lib/effaceable/common/include/effaceable_debug.h

89 lines
3.7 KiB
C

/*
* Copyright (c) 2011 Apple Inc. All rights reserved.
*
* This document is the property of Apple Inc.
* It is considered confidential and proprietary.
*
* This document may not be reproduced or transmitted in any form,
* in whole or in part, without the express written permission of
* Apple Inc.
*/
#ifndef _EFFACEABLE_DEBUG_H_
#define _EFFACEABLE_DEBUG_H_
// =============================================================================
#define EFFACEABLE_DBGMSK_INIT (1<<0)
#define EFFACEABLE_DBGMSK_ERR (1<<1)
#define EFFACEABLE_DBGMSK_WARN (1<<2)
#define EFFACEABLE_DBGMSK_INFO (1<<3)
#define EFFACEABLE_DBGMSK_SPEW (1<<4)
// -----------------------------------------------------------------------------
#define EFFACEABLE_DBGTAG_INIT "INIT"
#define EFFACEABLE_DBGTAG_ERR "ERR "
#define EFFACEABLE_DBGTAG_WARN "WARN"
#define EFFACEABLE_DBGTAG_INFO "INFO"
#define EFFACEABLE_DBGTAG_SPEW "SPEW"
// -----------------------------------------------------------------------------
#define EFFACEABLE_DEBUG_ALL (EFFACEABLE_DBGMSK_INIT | \
EFFACEABLE_DBGMSK_ERR | \
EFFACEABLE_DBGMSK_WARN | \
EFFACEABLE_DBGMSK_INFO | \
EFFACEABLE_DBGMSK_SPEW)
#define EFFACEABLE_DEBUG_MOST (EFFACEABLE_DBGMSK_INIT | \
EFFACEABLE_DBGMSK_ERR | \
EFFACEABLE_DBGMSK_WARN | \
EFFACEABLE_DBGMSK_INFO)
#define EFFACEABLE_DEBUG_DEFAULT (EFFACEABLE_DBGMSK_INIT | \
EFFACEABLE_DBGMSK_ERR)
// -----------------------------------------------------------------------------
#define EFFACEABLE_DEBUG EFFACEABLE_DEBUG_DEFAULT
// -----------------------------------------------------------------------------
#if defined(EFFACEABLE_DEBUG) && EFFACEABLE_DEBUG
# define dlogf(_api, _fac, _fmt, ...) \
do { \
if (EFFACEABLE_DBGMSK_##_fac & \
EFFACEABLE_DEBUG) { \
logf(_api, "[effaceable:%s] " _fmt "\n", \
EFFACEABLE_DBGTAG_##_fac , \
## __VA_ARGS__ ); \
} \
} while(0)
# define dhexdump(_api, _fac, _buf, _count) \
do { \
if (EFFACEABLE_DBGMSK_##_fac & \
EFFACEABLE_DEBUG) { \
unsigned _i, _j; \
for (_i = 0; _i < _count; _i += 16) { \
logf(_api, "[effaceable:%s] 0x%08x:", \
EFFACEABLE_DBGTAG_##_fac , \
((unsigned) _buf) + _i); \
for (_j = 0; (_j < 16) && ((_i + _j) < _count); _j++) \
logf(_api, " %2.2x", ((uint8_t*)_buf)[_i + _j]); \
logf(_api, "\n"); \
} \
} \
} while(0)
#else
# define dlogf(...) do { /* nothing */ } while(0)
# define dhexdump(...) do { /* nothing */ } while(0)
#endif
// =============================================================================
#endif /* _EFFACEABLE_DEBUG_H_ */