Source code of Windows XP (NT5)
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.
 
 
 
 
 
 

109 lines
4.4 KiB

/***************************************************************************
Name : MYSCHED.H
Comment :
Functions: (see Prototypes just below)
Copyright (c) Microsoft Corp. 1991, 1992, 1993
Revision Log
Date Name Description
-------- ----- ---------------------------------------------------------
***************************************************************************/
///////////////////// Tasking/Sleep/Timing options ///////////////////
//
// There are 4 options available
// (1) Tasking/Sleeping thru DLLSCHED: #defs reqd are !TSK !TMR and !IFK
// (2) Tasking/Sleeping thru an IFKERNEL BGproc: #defs reqd TSK IFK and !TMR
// (3) Tasking thru WIN32: #defs reqd WIN32 !IFK !TMR
//
// In this file we define the macros for each of these options
/////////////////////////////////////// Tasking/Sleep/Timing options ///////
#define ACTIVESLICE 50
// MySetSlice(x) is defined seperately in BGT30.C and FCOM.C
// MySleep() is defined seperately in BGT30.C and FCOM.C
# ifdef NCR
# define FComCriticalNeg(pTG, x) FComCritical(pTG, x)
# else // NCR
# define FComCriticalNeg(pTG, x)
# endif
# ifdef PCR
# define EnterPageCrit() FComCritical(pTG, TRUE)
# define ExitPageCrit() FComCritical(pTG, FALSE)
# else
# define EnterPageCrit(pTG)
# define ExitPageCrit(pTG)
# endif
# define EnterFileT30CritSection() // replaced by Mutex stuff in EFAXRUN.H
# define ExitFileT30CritSection() // replaced by Mutex stuff in EFAXRUN.H
// In WIN32 LibMain is called for all sorts of reasons. WEP is not
// directly called. WIN32 version of these macros calls WEP at the
// right time. Also LibMain or WEP do not need to be fixed
#define MYWEP \
int _export CALLBACK WEP(int type)
#define MYLIBMAIN \
int _export CALLBACK WEP(int type); \
BOOL _export WINAPI LibMain(HINSTANCE hinst, DWORD dwReason, LPVOID lpv)
#define MYLIBSTARTUP(_szName) \
DEBUGMSG(1, (SZMOD "LibMain called reason=%lu.P=0x%lx.T=0x%lx\r\n",\
(unsigned long) dwReason,\
(unsigned long) GetCurrentProcessId(),\
(unsigned long) GetCurrentThreadId()\
)); \
if(dwReason==DLL_THREAD_ATTACH || dwReason==DLL_THREAD_DETACH) \
return TRUE; \
if(dwReason==DLL_PROCESS_DETACH) \
return WEP(0); \
if(dwReason==DLL_PROCESS_ATTACH && (_szName)) \
{ \
HMODULE hM = GetModuleHandle(_szName); \
if (hM) DisableThreadLibraryCalls(hM); \
}
#define MYLIBSHUTDOWN
#ifdef DEBUG
# ifndef WIN32
# define SLIPMULT 2
# define SLIPDIV 2
# else
# define SLIPMULT 1
# define SLIPDIV 4
# endif
# define BEFORESLEEP DWORD t1, t2; t1=GetTickCount();
# define AFTERSLEEP(x) t2=GetTickCount(); \
if((t2-t1) > (((x)*SLIPMULT)+((x)/SLIPDIV))) \
DEBUGMSG(1, ("!!!SLEPT %ld. Wanted only %d!!!\r\n", (t2-t1), (x)));
#else
# define BEFORESLEEP
# define AFTERSLEEP(x)
#endif
// Note: timeBeginPeriod,timeEndPeriod require mmsystem.h
// which is not included in windows.h if WIN32_LEAN_AND_MEAN is defined.
# define MY_TWIDDLETHUMBS(ulTime) \
{ \
BEFORESLEEP \
Sleep(ulTime); \
AFTERSLEEP(ulTime) \
}