#ifndef _E1000G_DEBUG_H
#define _E1000G_DEBUG_H
#ifdef __cplusplus
extern "C" {
#endif
#include <sys/types.h>
#ifdef DEBUG
#define E1000G_DEBUG
#endif
#define E1000G_LOG_DISPLAY 0x1
#define E1000G_LOG_PRINT 0x2
#define E1000G_LOG_ALL 0x3
#ifdef E1000G_DEBUG
#define E1000G_ERRS_LEVEL 0x001
#define E1000G_WARN_LEVEL 0x002
#define E1000G_INFO_LEVEL 0x004
#define E1000G_TRACE_LEVEL 0x008
#define E1000G_VERBOSE_LEVEL 0x010
#define E1000G_DEBUGLOG_0(Adapter, Level, fmt) \
if (e1000g_debug) e1000g_log((Adapter), (Level), (fmt))
#define E1000G_DEBUGLOG_1(Adapter, Level, fmt, d1) \
if (e1000g_debug) e1000g_log((Adapter), (Level), (fmt), (d1))
#define E1000G_DEBUGLOG_2(Adapter, Level, fmt, d1, d2) \
if (e1000g_debug) e1000g_log((Adapter), (Level), (fmt), (d1), (d2))
#define E1000G_DEBUGLOG_3(Adapter, Level, fmt, d1, d2, d3) \
if (e1000g_debug) e1000g_log((Adapter), (Level), (fmt), (d1),\
(d2), (d3))
#define E1000G_DEBUGLOG_4(Adapter, Level, fmt, d1, d2, d3, d4) \
if (e1000g_debug) e1000g_log((Adapter), (Level), (fmt), (d1),\
(d2), (d3), (d4))
#define E1000G_DEBUGLOG_5(Adapter, Level, fmt, d1, d2, d3, d4, d5) \
if (e1000g_debug) e1000g_log((Adapter), (Level), (fmt), (d1),\
(d2), (d3), (d4), (d5))
#define E1000G_DEBUG_STAT_COND(val, cond) if (cond) (val)++;
#define E1000G_DEBUG_STAT(val) (val)++;
#else
#define E1000G_DEBUGLOG_0(Adapter, Level, fmt)
#define E1000G_DEBUGLOG_1(Adapter, Level, fmt, d1)
#define E1000G_DEBUGLOG_2(Adapter, Level, fmt, d1, d2)
#define E1000G_DEBUGLOG_3(Adapter, Level, fmt, d1, d2, d3)
#define E1000G_DEBUGLOG_4(Adapter, Level, fmt, d1, d2, d3, d4)
#define E1000G_DEBUGLOG_5(Adapter, Level, fmt, d1, d2, d3, d4, d5)
#define E1000G_DEBUG_STAT_COND(val, cond)
#define E1000G_DEBUG_STAT(val)
#endif
#define NAMELEN 31
#define BUFSZ 256
#define E1000G_STAT(val) (val)++;
void e1000g_log(void *, int, char *, ...);
#ifdef E1000G_DEBUG
void eeprom_dump(void *);
void phy_dump(void *);
void mac_dump(void *);
void pciconfig_dump(void *);
void pciconfig_bar(void *, uint32_t, char *);
#endif
#ifdef E1000G_DEBUG
extern int e1000g_debug;
#endif
extern int e1000g_log_mode;
#ifdef __cplusplus
}
#endif
#endif