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.
|
|
/*****************************************************************************
* * stream.h * *****************************************************************************/
/*****************************************************************************
* * File handles * *****************************************************************************/
#define cbErr ((CB)-1)
/*****************************************************************************
* * Streams * * A STREAM is something that produces characters (not tokens). * * Streams can be (and frequently are) chained. When a stream * runs out of characters, the stream pointed to by pstmNext * becomes the new source of characters. * * For example, when you perform an `include', a new file stream * is created and pushed onto the head of the stream list. When * a macro is expanded, a new string stream is created and pushed * onto the head of the stream list. * *****************************************************************************/
typedef struct STREAM STM, *PSTM; struct STREAM { /* stm */
D(SIG sig;) /* Signature */ PTCH ptchCur; /* Next byte to return from stream */ PTCH ptchMax; /* One past last byte in stream */ PTCH ptchMin; /* Beginning of stream buffer */ HF hf; /* File handle (or hfNil if not a file) */ PTCH ptchName; /* Name of file */ PSTM pstmNext; /* Next stream in the chain */
};
#define sigStm sigABCD('S', 't', 'r', 'm')
#define AssertPstm(pstm) AssertPNm(pstm, Stm)
TCH STDCALL tchPeek(void); TCH STDCALL tchGet(void); void STDCALL UngetTch(TCH tch); PSTM STDCALL pstmPushStringCtch(CTCH ctch); PSTM STDCALL pstmPushHfPtch(HFILE hf, PTCH ptch); void STDCALL PushPtok(PCTOK ptok); void STDCALL PushZPtok(PDIV pdiv, PCTOK ptok); void STDCALL PushTch(TCH tch); void STDCALL PushQuotedPtok(PCTOK ptok);
extern PSTM g_pstmCur; /* Current head of stream chain */
#define ctchMinPush 1024 /* minimum string stream size */
#define ctchFile 4096 /* minimum file stream size */
|