/*

Copyright (c)   Stratus Computer. 

Module Name:

    sradbg.h

Abstract:

    Stratus specific debug trace definitions for hardened enet driver

*/

#ifndef _SRADBG_H_
#define _SRADBG_H_

#include "sraddk.h"


// Stratus Debug level definitions

#define SRA_LOW_LEVEL   DBGLVL_SUMMARY
#define SRA_MED_LEVEL   DBGLVL_DETAILED
#define SRA_HIGH_LEVEL  DBGLVL_EXTRA
#define SRA_XTRA_LEVEL  DBGLVL_EXTRA


//----------------------------------------------------------------------------------------
//
// TRACE ((ULONG level, PCCHAR format, ...));
//    Output the printf-style format string to the debugger if the 
//    LVL_XXX bit is set. 
//
// NOTE that Sra tracing has numeric level as well - all Dxb trace
//      is output at level SRA_LOW_LEVEL, hence the initial inline
//      check for the level - it would be nice to inline the whole
//      Trace() routine but you can't inline functions with variable
//      args ;-(
//
//----------------------------------------------------------------------------------------
#define TRACE(x) \
do { \
    if (SRACHECKLEVELONLY(SRA_LOW_LEVEL)) { \
        SraTrace x; \
    } \
} while (0)

extern VOID SraTrace(ULONG type, PCCHAR format, ...);

#endif _SRADBG_H_
