Changeset 7158 for trunk/src


Ignore:
Timestamp:
Oct 23, 2001, 4:12:14 AM (24 years ago)
Author:
bird
Message:

Added lots macros for logging. Printf fix working. Mostly working it seems.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/win32k/kKrnlLib/include/kLog.h

    r7124 r7158  
    1 /* $Id: kLog.h,v 1.4 2001-10-19 01:48:36 bird Exp $
     1/* $Id: kLog.h,v 1.5 2001-10-23 02:12:14 bird Exp $
    22 *
    33 * kLog - Generic Logging and Trace Routines.
     
    5353
    5454/*
    55  * Define default file and function names.
    56  */
     55 * Define defaults.
     56 */
     57#ifndef KLOGFILEDEF
     58    #define KLOGFILEDEF     __FILE__
     59#endif
     60#ifndef KLOGFUNCTIONDEF
     61    #define KLOGFUNCTIONDEF __FUNCTION__
     62#endif
     63
    5764#ifndef KLOGFILE
    58 #   define KLOGFILE         __FILE__
     65    #ifndef NOFILEID
     66        #define KLOGFILE    szFileId
     67    #else
     68        #define KLOGFILE    KLOGFUNCTIONDEF
     69    #endif
    5970#endif
    6071#ifndef KLOGFUNCTION
    61 #   define KLOGFUNCTION     __FUNCTION__
    62 #endif
     72    #define KLOGFUNCTION    szkLogFunctionName
     73#endif
     74#ifndef KLOGRETURNTYPE
     75    #define KLOGRETURNTYPE  szkLogReturnType
     76#endif
     77#ifndef KLOGMODHANDLE
     78    #define KLOGMODHANDLE   hkLogMod
     79#endif
     80#ifndef KLOGSEQHANDLE
     81    #define KLOGSEQHANDLE   kLogSeqHandle
     82#endif
     83
     84/*
     85 * Position parameters.
     86 */
    6387#define KLOGPOS_EXT         KLOGFILE, __LINE__, KLOGFUNCTION    /* external call */
    6488#define KLOGPOS_INT         pszFile, iLine, pszFunction         /* Internal call */
     
    206230HKLOGMOD    KLIBCALL kLogInitMod(PKLOGMODDATA pMod, KLOGPOS_DECL);
    207231#endif
    208 void        KLIBCALL kLogEntry(HKLOGMOD hLogMod, KLOGPOS_DECL, const char *pszFuncProto, KBOOL fOptlink, ...);
    209 void        KLIBCALL kLogExit(HKLOGMOD hLogMod, KLOGPOS_DECL, const char *pszReturnType, unsigned uReturn);
     232void        KLIBCALL kLogTermMod(HKLOGMOD hLogMod, KLOGPOS_DECL);
     233
     234int         KLIBCALL kLogStart(HKLOGMOD hLogMod, KLOGPOS_DECL, PHKLOGSEQ phSeq, const char *pszFuncProto, KBOOL fOptlink, ...);
     235int         KLIBCALL kLogEntry(HKLOGMOD hLogMod, KLOGPOS_DECL, const char *pszFuncProto, KBOOL fOptlink, ...);
     236void        KLIBCALL kLogExit(HKLOGMOD hLogMod, KLOGPOS_DECL, const char *pszReturnType, ...);
     237void        KLIBCALL kLogStop(HKLOGMOD hLogMod, KLOGPOS_DECL, PHKLOGSEQ phSeq, const char *pszReturnType, ...);
     238
    210239void        KLIBCALL kLog(HKLOGMOD hLogMod, KLOGPOS_DECL, int iType, ...);
    211240#if defined(va_arg) || defined(va_list) || defined(va_start) || defined(va_end)
    212241void        KLIBCALL kLogv(HKLOGMOD hLogMod, KLOGPOS_DECL, int iType, va_list args);
    213 va_list     KLIBCALL kLogFixPrintf(const char *pszFormat, ...); /* a hack! */
    214 #endif
    215 
    216 #define KLOGINITMOD(pMod)                   kLogInitMod(pMod, KLOGPOS_EXT)
    217 #define KLOGENTRY(hLogMod, pszProto, parg0) kLogEntry(hLogMod, KLOGPOS_EXT, pszFuncProto, FALSE, parg0)
    218 #define KLOGEXIT(hLogMod, pszType, uValue)  kLogExit(hLogMod, KLOGPOS_EXT, pszType, uValue)
     242#endif
     243
     244int         KLIBCALL kLogFixPrintf1(const char *pszFormat, ...);
     245void        KLIBCALL kLogFixPrintf2(HKLOGMOD hLogMod, KLOGPOS_DECL, int iType, int iBuffer);
     246
     247
     248
     249/*******************************************************************************
     250*   Macros                                                                     *
     251*******************************************************************************/
     252#if defined(DEBUG) || defined(LOGGING_ENABLED)
     253    #define KLOGINITMOD(pMod)                                           KLOGMODHANDLE = kLogInitMod(pMod, KLOGPOS_EXT)
     254    #define KLOGTERMMOD()                                               kLogTermMod(KLOGMODHANDLE, KLOGPOS_EXT)
     255
     256    #define KLOGSTARTPARMS                                              KLOGMODHANDLE, KLOGPOS_EXT, &KLOGSEQHANDLE
     257    #define KLOGENTRYPARMS                                              KLOGMODHANDLE, KLOGPOS_EXT
     258    #define KLOGSTARTVARS(pszRetType)                                   static const char   KLOGFUNCTION[] = KLOGFUNCTIONDEF; \
     259                                                                        static const char   KLOGRETURNTYPE[] = pszRetType; \
     260                                                                        HLOGSEQ             KLOGSEQHANDLE; \
     261                                                                        int                 kLogDummyVariable
     262    #define KLOGENTRYVARS(pszRetType)                                   static const char   KLOGFUNCTION[] = KLOGFUNCTIONDEF; \
     263                                                                        static const char   KLOGRETURNTYPE[] = pszRetType; \
     264                                                                        int                 kLogDummyVariable
     265
     266    #define KLOGSTART( pszRetType, pszProto, arg0)                      KLOGSTARTVARS(pszRetType) = kLogStart(KLOGSTARTPARMS, pszProto, FALSE, &(arg0))
     267    #define KLOGSTART0(pszRetType)                                      KLOGSTARTVARS(pszRetType) = kLogStart(KLOGSTARTPARMS, NULL, TRUE)
     268    #define KLOGSTART1(pszRetType, pszProto, a0)                        KLOGSTARTVARS(pszRetType) = kLogStart(KLOGSTARTPARMS, pszProto, TRUE,a0)
     269    #define KLOGSTART2(pszRetType, pszProto, a0,a1)                     KLOGSTARTVARS(pszRetType) = kLogStart(KLOGSTARTPARMS, pszProto, TRUE,a0,a1)
     270    #define KLOGSTART3(pszRetType, pszProto, a0,a1,a2)                  KLOGSTARTVARS(pszRetType) = kLogStart(KLOGSTARTPARMS, pszProto, TRUE,a0,a1,a2)
     271    #define KLOGSTART4(pszRetType, pszProto, a0,a1,a2,a3)               KLOGSTARTVARS(pszRetType) = kLogStart(KLOGSTARTPARMS, pszProto, TRUE,a0,a1,a2,a3)
     272    #define KLOGSTART5(pszRetType, pszProto, a0,a1,a2,a3,a4)            KLOGSTARTVARS(pszRetType) = kLogStart(KLOGSTARTPARMS, pszProto, TRUE,a0,a1,a2,a2,a4)
     273    #define KLOGSTART6(pszRetType, pszProto, a0,a1,a2,a3,a4,a5)         KLOGSTARTVARS(pszRetType) = kLogStart(KLOGSTARTPARMS, pszProto, TRUE,a0,a1,a2,a2,a4,a5)
     274    #define KLOGSTART7(pszRetType, pszProto, a0,a1,a2,a3,a4,a5,a6)      KLOGSTARTVARS(pszRetType) = kLogStart(KLOGSTARTPARMS, pszProto, TRUE,a0,a1,a2,a2,a4,a5,a6)
     275    #define KLOGSTART8(pszRetType, pszProto, a0,a1,a2,a3,a4,a5,a6,a7)   KLOGSTARTVARS(pszRetType) = kLogStart(KLOGSTARTPARMS, pszProto, TRUE,a0,a1,a2,a2,a4,a5,a6,a7)
     276
     277    #define KLOGENTRY( pszRetType, pszProto, arg0)                      KLOGENTRYVARS(pszRetType) = kLogEntry(KLOGENTRYPARMS, pszProto, FALSE, &(arg0))
     278    #define KLOGENTRY0(pszRetType)                                      KLOGENTRYVARS(pszRetType) = kLogEntry(KLOGENTRYPARMS, NULL, TRUE)
     279    #define KLOGENTRY1(pszRetType, pszProto, a0)                        KLOGENTRYVARS(pszRetType) = kLogEntry(KLOGENTRYPARMS, pszProto, TRUE,a0)
     280    #define KLOGENTRY2(pszRetType, pszProto, a0,a1)                     KLOGENTRYVARS(pszRetType) = kLogEntry(KLOGENTRYPARMS, pszProto, TRUE,a0,a1)
     281    #define KLOGENTRY3(pszRetType, pszProto, a0,a1,a2)                  KLOGENTRYVARS(pszRetType) = kLogEntry(KLOGENTRYPARMS, pszProto, TRUE,a0,a1,a2)
     282    #define KLOGENTRY4(pszRetType, pszProto, a0,a1,a2,a3)               KLOGENTRYVARS(pszRetType) = kLogEntry(KLOGENTRYPARMS, pszProto, TRUE,a0,a1,a2,a3)
     283    #define KLOGENTRY5(pszRetType, pszProto, a0,a1,a2,a3,a4)            KLOGENTRYVARS(pszRetType) = kLogEntry(KLOGENTRYPARMS, pszProto, TRUE,a0,a1,a2,a2,a4)
     284    #define KLOGENTRY6(pszRetType, pszProto, a0,a1,a2,a3,a4,a5)         KLOGENTRYVARS(pszRetType) = kLogEntry(KLOGENTRYPARMS, pszProto, TRUE,a0,a1,a2,a2,a4,a5)
     285    #define KLOGENTRY7(pszRetType, pszProto, a0,a1,a2,a3,a4,a5,a6)      KLOGENTRYVARS(pszRetType) = kLogEntry(KLOGENTRYPARMS, pszProto, TRUE,a0,a1,a2,a2,a4,a5,a6)
     286    #define KLOGENTRY8(pszRetType, pszProto, a0,a1,a2,a3,a4,a5,a6,a7)   KLOGENTRYVARS(pszRetType) = kLogEntry(KLOGENTRYPARMS, pszProto, TRUE,a0,a1,a2,a2,a4,a5,a6,a7)
     287
     288    #define KLOGEXIT(uValue)                                            kLogExit( KLOGMODHANDLE, KLOGPOS_EXT,                 KLOGRETURNTYPE, uValue)
     289    #define KLOGEXITVOID()                                              kLogExit( KLOGMODHANDLE, KLOGPOS_EXT,                 NULL,         NULL)
     290
     291    #define KLOGSTOP(uValue)                                            kLogStop( KLOGMODHANDLE, KLOGPOS_EXT, &KLOGSEQHANDLE, KLOGRETURNTYPE, uValue)
     292    #define KLOGSTOPVOID(uValue)                                        kLogStop( KLOGMODHANDLE, KLOGPOS_EXT, &KLOGSEQHANDLE, NULL,         NULL)
     293
     294    #ifdef KLOG_USE_RETURN
     295        #if KLOG_USE_RETURN
     296            #define return(value)                                       KLOGEXIT(value); return (value)
     297        #else
     298            #define return(value)                                       KLOGSTOP(value); return (value)
     299        #endif
     300    #endif
     301
     302    #define dprintf(a)                                                  kLogFixPrintf2(KLOGMODHANDLE, KLOGPOS_EXT, KLOG_TYPE_PRINTF, kLogFixPrintf1 a)
     303    #define kprintf(a)                                                  dprintf(a)
     304
     305#else
     306
     307    #define KLOGINITMOD(pMod)                                           ((HKLOGMOD)-1)
     308    #define KLOGTERMMOD()                                               ((void)0)
     309
     310    #define KLOGSTART( pszRetType, pszProto, arg0)                      ((void)0)
     311    #define KLOGSTART0(pszRetType)                                      ((void)0)
     312    #define KLOGSTART1(pszRetType, pszProto, a0)                        ((void)0)
     313    #define KLOGSTART2(pszRetType, pszProto, a0,a1)                     ((void)0)
     314    #define KLOGSTART3(pszRetType, pszProto, a0,a1,a2)                  ((void)0)
     315    #define KLOGSTART4(pszRetType, pszProto, a0,a1,a2,a3)               ((void)0)
     316    #define KLOGSTART5(pszRetType, pszProto, a0,a1,a2,a3,a4)            ((void)0)
     317    #define KLOGSTART6(pszRetType, pszProto, a0,a1,a2,a3,a4,a5)         ((void)0)
     318    #define KLOGSTART7(pszRetType, pszProto, a0,a1,a2,a3,a4,a5,a6)      ((void)0)
     319    #define KLOGSTART8(pszRetType, pszProto, a0,a1,a2,a3,a4,a5,a6,a7)   ((void)0)
     320
     321    #define KLOGENTRY( pszRetType, pszProto, arg0)                      ((void)0)
     322    #define KLOGENTRY0(pszRetType)                                      ((void)0)
     323    #define KLOGENTRY1(pszRetType, pszProto, a0)                        ((void)0)
     324    #define KLOGENTRY2(pszRetType, pszProto, a0,a1)                     ((void)0)
     325    #define KLOGENTRY3(pszRetType, pszProto, a0,a1,a2)                  ((void)0)
     326    #define KLOGENTRY4(pszRetType, pszProto, a0,a1,a2,a3)               ((void)0)
     327    #define KLOGENTRY5(pszRetType, pszProto, a0,a1,a2,a3,a4)            ((void)0)
     328    #define KLOGENTRY6(pszRetType, pszProto, a0,a1,a2,a3,a4,a5)         ((void)0)
     329    #define KLOGENTRY7(pszRetType, pszProto, a0,a1,a2,a3,a4,a5,a6)      ((void)0)
     330    #define KLOGENTRY8(pszRetType, pszProto, a0,a1,a2,a3,a4,a5,a6,a7)   ((void)0)
     331
     332    #define KLOGEXIT(uValue)                                            ((void)0)
     333    #define KLOGEXITVOID()                                              ((void)0)
     334
     335    #define KLOGSTOP(uValue)                                            ((void)0)
     336    #define KLOGSTOPVOID()                                              ((void)0)
     337
     338    #define kprintf(a)                                                  ((void)0)
     339    #define dprintf(a)                                                  ((void)0)
     340#endif
     341
     342
     343/*******************************************************************************
     344*   Global Variables                                                           *
     345*******************************************************************************/
     346extern HKLOGMOD KLOGMODHANDLE;   /* Define this on the behalf of the kKL user. */
    219347
    220348#ifdef __cplusplus
Note: See TracChangeset for help on using the changeset viewer.