summaryrefslogblamecommitdiffstats
path: root/private/os2/inc/os2dbg.h
blob: 12e4e18ca98e1023c273d440b78b40a45fe75f9e (plain) (tree)
































































































































                                                                                                   
/*++

Copyright (c) 1989  Microsoft Corporation

Module Name:

    os2dbg.h

Abstract:

    Debug constants

Author:

    Steve Wood (stevewo) 22-Aug-1989

Revision History:

    Yaron Shamir 4-Apr-91 Add profile for ComputeValidDrives.
    Beni Lavi    4-Oct-91 Moved debug constants from os2srv.h and os2dll.h
                          to this file.
    Michael Jaruys 3-Jan-93 Move all Debug macro to this file and
                        make sure be don't have DbgPrint in retail code.
--*/


//
// Define debugging flag as false if not defined already.
//

#ifndef DBG
#define DBG 0
#endif

#if DBG

#define OS2_DEBUG_TASKING           0x00000001
#define OS2_DEBUG_FILESYS           0x00000002
#define OS2_DEBUG_FSD               0x00000004
#define OS2_DEBUG_MEMORY            0x00000008
#define OS2_DEBUG_SEMAPHORES        0x00000010
#define OS2_DEBUG_TIMERS            0x00000020
#define OS2_DEBUG_LOADER            0x00000040
#define OS2_DEBUG_NLS               0x00000080
#define OS2_DEBUG_EXCEPTIONS        0x00000100
#define OS2_DEBUG_ERRORMSG          0x00000200
#define OS2_DEBUG_SESSIONMGR        0x00000400
#define OS2_DEBUG_DEVICE_SUPPORT    0x00000800
#define OS2_DEBUG_PIPES             0x00001000
#define OS2_DEBUG_QUEUES            0x00002000
#define OS2_DEBUG_INIT              0x00004000
#define OS2_DEBUG_LPC               0x00008000
#define OS2_DEBUG_CLEANUP           0x00010000
#define OS2_DEBUG_FILESYSLOCK       0x00020000
#define OS2_DEBUG_APIS              0x00040000
#define OS2_DEBUG_BRK               0x00080000
#define OS2_DEBUG_SIG               0x00100000
#define OS2_DEBUG_VIO               0x00200000
#define OS2_DEBUG_KBD               0x00400000
#define OS2_DEBUG_MOU               0x00800000
#define OS2_DEBUG_MON               0x01000000
#define OS2_DEBUG_ALL_VIO           0x02000000
/* For temporary messages, i.e used for a few debug
   sessions. Such printings may be removed by anyone
   who sees them. */
#define OS2_DEBUG_TEMP              0x04000000
#define OS2_DEBUG_OS2_EXE           0x08000000
#define OS2_DEBUG_NET               0x10000000
#define OS2_DEBUG_WIN               0x20000000
#define OS2_DEBUG_MISC              0x80000000
#define OS2_DEBUG_ANY               0xFFFFFFFF

//#define OS2_DEBUG_ALL_VIO       ( OS2_DEBUG_VIO | OS2_DEBUG_KBD | OS2_DEBUG_MOU | OS2_DEBUG_MON )
#define OS2_DEBUG_VIO_FILE      ( OS2_DEBUG_VIO | OS2_DEBUG_FILESYS )
#define OS2_DEBUG_VIO_KBD_FILE  ( OS2_DEBUG_VIO | OS2_DEBUG_KBD | OS2_DEBUG_FILESYS )
#define OS2_DEBUG_KBD_FILE      ( OS2_DEBUG_KBD | OS2_DEBUG_FILESYS )
#define OS2_DEBUG_MOU_FILE      ( OS2_DEBUG_MOU | OS2_DEBUG_FILESYS )

//
// Define IF_DEBUG macro that can be used to enable debugging code that is
// optimized out if the debugging flag is false.
//

#define IF_OD2_DEBUG( ComponentFlag ) \
    if (Os2Debug & (OS2_DEBUG_ ## ComponentFlag))

#define IF_OD2_DEBUG2( Component1Flag, Component2Flag ) \
    if (Os2Debug & ((OS2_DEBUG_ ## Component1Flag) | (OS2_DEBUG_ ## Component2Flag)))

#define IF_OD2_DEBUG3( Component1Flag, Component2Flag, Component3Flag ) \
    if (Os2Debug & ((OS2_DEBUG_ ## Component1Flag) | (OS2_DEBUG_ ## Component2Flag) | \
            (OS2_DEBUG_ ## Component3Flag)))

#define IF_OS2_DEBUG( ComponentFlag ) \
    if (Os2Debug & (OS2_DEBUG_ ## ComponentFlag))

#define IF_OS2_DEBUG2( Component1Flag, Component2Flag ) \
    if (Os2Debug & ((OS2_DEBUG_ ## Component1Flag) | (OS2_DEBUG_ ## Component2Flag)))

#define IF_OS2_DEBUG3( Component1Flag, Component2Flag, Component3Flag ) \
    if (Os2Debug & ((OS2_DEBUG_ ## Component1Flag) | (OS2_DEBUG_ ## Component2Flag) | \
            (OS2_DEBUG_ ## Component3Flag)))

#else


    /*
     *  Make sure be don't have DbgPrint in retail code
     */

#ifndef PMNT
#ifdef DbgPrint
#undef DbgPrint
#endif  // ifdef DbgPrint

#define DbgPrint(_x_) \
    Or2DbgPrintFunctionNeverExisted(_x_)
#endif // PMNT

//Dbg_Print_must_be_within_if_DBG_and_cannot_included_in_retail_code

#define IF_OD2_DEBUG( ComponentFlag ) if (FALSE)
#define IF_OD2_DEBUG2( Component1Flag, Component2Flag ) if (FALSE)
#define IF_OD2_DEBUG3( Component1Flag, Component2Flag, Component3Flag ) if (FALSE)
#define IF_OS2_DEBUG( ComponentFlag ) if (FALSE)
#define IF_OS2_DEBUG2( Component1Flag, Component2Flag ) if (FALSE)
#define IF_OS2_DEBUG3( Component1Flag, Component2Flag, Component3Flag ) if (FALSE)

#endif  // DBG