28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
TCL_DECLARE_MUTEX(pipeMutex)
/*
* The following defines identify the various types of applications that run
* under windows. There is special case code for the various types.
*/
#define APPL_NONE 0
#define APPL_DOS 1
#define APPL_WIN3X 2
#define APPL_WIN32 3
/*
* The following constants and structures are used to encapsulate the state of
* various types of files used in a pipeline. This used to have a 1 && 2 that
* supported Win32s.
*/
|
>
|
|
|
|
>
|
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
TCL_DECLARE_MUTEX(pipeMutex)
/*
* The following defines identify the various types of applications that run
* under windows. There is special case code for the various types.
*/
enum ApplicationTypes {
APPL_NONE = 0,
APPL_DOS = 1,
APPL_WIN3X = 2,
APPL_WIN32 = 3
};
/*
* The following constants and structures are used to encapsulate the state of
* various types of files used in a pipeline. This used to have a 1 && 2 that
* supported Win32s.
*/
|
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
|
HANDLE hProcess;
DWORD dwProcessId;
struct ProcInfo *nextPtr;
} ProcInfo;
static ProcInfo *procList;
/*
* Bit masks used in the flags field of the PipeInfo structure below.
*/
#define PIPE_PENDING (1<<0) /* Message is pending in the queue. */
#define PIPE_ASYNC (1<<1) /* Channel is non-blocking. */
/*
* Bit masks used in the sharedFlags field of the PipeInfo structure below.
*/
#define PIPE_EOF (1<<2) /* Pipe has reached EOF. */
#define PIPE_EXTRABYTE (1<<3) /* The reader thread has consumed one byte. */
/*
* TODO: It appears the whole EXTRABYTE machinery is in place to support
* outdated Win 95 systems. If this can be confirmed, much code can be
* deleted.
*/
|
>
|
|
|
|
|
|
|
|
|
|
>
|
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
|
HANDLE hProcess;
DWORD dwProcessId;
struct ProcInfo *nextPtr;
} ProcInfo;
static ProcInfo *procList;
enum PipeInfoFlags {
/*
* Bit masks used in the flags field of the PipeInfo structure below.
*/
PIPE_PENDING = (1<<0), /* Message is pending in the queue. */
PIPE_ASYNC = (1<<1), /* Channel is non-blocking. */
/*
* Bit masks used in the sharedFlags field of the PipeInfo structure below.
*/
PIPE_EOF = (1<<2), /* Pipe has reached EOF. */
PIPE_EXTRABYTE = (1<<3) /* The reader thread has consumed one byte. */
};
/*
* TODO: It appears the whole EXTRABYTE machinery is in place to support
* outdated Win 95 systems. If this can be confirmed, much code can be
* deleted.
*/
|