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.
 
 
 
 
 
 

104 lines
4.0 KiB

/***************************************************************************
Name : FCOMINt.H
Comment : Interface between FaxComm driver (entirely different for
Windows and DOS) and everything else.
Copyright (c) Microsoft Corp. 1991, 1992, 1993
Num Date Name Description
--- -------- ---------- -----------------------------------------------
***************************************************************************/
#define WRITEQUANTUM (pTG->Comm.cbOutSize / 8) // totally arbitrary
#define CR 0x0d
#define LF 0x0a
#define DLE 0x10 // DLE = ^P = 16d = 10h
#define ETX 0x03
#define FComGetError(pTG) \
{ GetCommErrorNT ( pTG, (HANDLE) pTG->Comm.nCid, &pTG->Comm.CommErr, &(pTG->Comm.comstat)); \
if(pTG->Comm.CommErr) D_GotError(pTG, pTG->Comm.nCid, pTG->Comm.CommErr, &(pTG->Comm.comstat));\
iModemSetError(pTG, MODEMERR_COMPORT, 0, 0); }
#ifdef WIN32 // WIN32 Overlapped I/O internal routines...
BOOL ov_init(PThrdGlbl pTG);
BOOL ov_deinit(PThrdGlbl pTG);
OVREC * ov_get(PThrdGlbl pTG);
BOOL ov_write(PThrdGlbl pTG, OVREC *lpovr, LPDWORD lpdwcbWrote);
BOOL ov_drain(PThrdGlbl pTG, BOOL fLongTO);
BOOL ov_unget(PThrdGlbl pTG, OVREC *lpovr);
BOOL iov_flush(PThrdGlbl pTG, OVREC *lpovr, BOOL fLongTO);
#endif // WIN32
BOOL FComGetSettings(PThrdGlbl pTG, LPFCOMSETTINGS);
BOOL FComSetSettings(PThrdGlbl pTG, LPFCOMSETTINGS);
// nothing
#define iModemSetError(pTG, a,b,c)
#ifdef WIN32
# define MONINBASE
# define MONOUTBASE
# define MONINOUTBASE
#else
# define MONINBASE __based(__segname("_MONIN"))
# define MONOUTBASE __based(__segname("_MONOUT"))
# define MONINOUTBASE __based(__segname("_MONINOUT"))
#endif
/****************** begin prototypes from filter.c *****************/
/****************** end of prototypes from filter.c *****************/
/****************** begin prototypes from ncuparms.c *****************/
void iNCUParamsReset(PThrdGlbl pTG);
void FComInitGlobals(PThrdGlbl pTG);
/***************** end of prototypes from ncuparms.c *****************/
#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(arg)
#endif
////////// Variables controlling Sleep ///////////
//
// Comm.fBG -- used only in WFW, because can't call DllSleep in FG!
// Comm.bDontYield -- enabled during T30 "critical" sections. In non-premptive
// systems this should disable sleeping completely
//
//////////////////////////////////////////////////
// ACTIVESLICE defined in mysched.h
#define IDLESLICE 500
#if defined(WIN32) && defined(THREAD)
# define MySleep(x) \
{BG_CHK(x); \
{ BEFORESLEEP; Sleep(pTG->Comm.bDontYield?0:(x)); AFTERSLEEP(x); }}
// Note. Until 12/9/94, we used to call Sleep(1) if bDontYield as in :
// if (Comm.bDontYield) { BEFORESLEEP; Sleep(1); AFTERSLEEP(x); }
#endif //WIN32 && THREAD