Leaked source code of windows server 2003
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
#ifndef UTIL_H /* Allow this file to be included at will */
#define UTIL_H
#ifndef _FILE_DEFINED
#include <stdio.h> /* Needed for FPrintF2 prototype */
#endif /* !_FILE_DEFINED */
/* system node keys
/**/ extern const KEY rgkeySTATIC[7]; #define pkeyNull ((KEY *)(rgkeySTATIC+0))
#define pkeyOwnExt ((KEY *)(rgkeySTATIC+1))
#define pkeyAvailExt ((KEY *)(rgkeySTATIC+2))
#define pkeyData ((KEY *)(rgkeySTATIC+3))
#define pkeyLong ((KEY *)(rgkeySTATIC+4))
#define pkeyAutoInc ((KEY *)(rgkeySTATIC+5))
#define pkeyDatabases ((KEY *)(rgkeySTATIC+6))
extern RES rgres[];
/* NOTE: whenever this is changed, also update the rgres[] in sysinit.c */
#define iresCSR 0
#define iresFCB 1
#define iresFUCB 2
#define iresIDB 3
#define iresPIB 4
#define iresSCB 5
#define iresDAB 6
#define iresLinkedMax 7 // the last linked ires + 1
#define iresVER 7
#define iresBF 8
#define iresMax 9 // max all category
/**************** function prototypes *********************
/**********************************************************
/**/ ERR ErrMEMInit( VOID ); BYTE *PbMEMAlloc( int ires); VOID MEMRelease( int ires, BYTE *pb ); VOID MEMTerm( VOID ); #define PbMEMPreferredThreshold( ires ) ( rgres[ires].pbPreferredThreshold )
#define PbMEMMax( ires ) ( rgres[ires].pbAlloc + ( rgres[ires].cblockAlloc * rgres[ires].cbSize ) )
#ifdef MEM_CHECK
VOID MEMCheck( VOID ); #else
#define MEMCheck()
#endif
#ifdef DEBUG
void VARARG PrintF2(const char * fmt, ...); void VARARG FPrintF2(const char * fmt, ...); VOID MEMPrintStat( VOID ); #define PrintF PrintF2
#else
#define PrintF()
#endif
STATIC INLINE INT CmpStKey( BYTE *stKey, const KEY *pkey ) { INT s; INT sDiff;
sDiff = *stKey - pkey->cb; s = memcmp( stKey + 1, pkey->pb, sDiff < 0 ? (INT)*stKey : pkey->cb ); return s ? s : sDiff; }
INT CmpPartialKeyKey( KEY *pkey1, KEY *pkey2 );
#endif /* !UTIL_H */
|