merge ROS Shell without integrated explorer part into trunk
[reactos.git] / posix / apps / posixw32 / posixw32.h
1 #ifndef _CSRTERM_H
2 #define _CSRTERM_H
3
4 /* PSX session: CSR terminal emulator side */
5
6 #define NAME_BUFFER_SIZE 64
7
8 typedef struct _PSXSS_PORT
9 {
10 UNICODE_STRING Name;
11 WCHAR NameBuffer [NAME_BUFFER_SIZE];
12 HANDLE Handle;
13
14 } PSXSS_PORT, * PPSXSS_PORT;
15
16 typedef struct _CSRTERM_SESSION_PORT
17 {
18 UNICODE_STRING Name;
19 WCHAR NameBuffer [NAME_BUFFER_SIZE];
20 HANDLE Handle;
21 struct {
22 HANDLE Handle;
23 DWORD Id;
24 } Thread;
25
26 } CSRTERM_SESSION_PORT;
27
28 typedef struct _CSRTERM_SESSION_SECTION
29 {
30 UNICODE_STRING Name;
31 WCHAR NameBuffer [NAME_BUFFER_SIZE];
32 HANDLE Handle;
33 ULONG Size;
34 PVOID BaseAddress;
35 ULONG ViewSize;
36
37 } CSRTERM_SESSION_SECTION;
38
39 typedef struct _CSRTERM_SESSION
40 {
41 ULONG Identifier; /* PortID for ServerPort in PSXSS */
42 PSXSS_PORT ServerPort; /* \POSIX+\SessionPort */
43 CSRTERM_SESSION_PORT Port; /* \POSIX+\Sessions\P<pid> */
44 CSRTERM_SESSION_SECTION Section; /* \POSIX+\Sessions\D<pid> */
45 CLIENT_ID Client;
46 CRITICAL_SECTION Lock;
47 BOOL SsLinkIsActive;
48
49 } CSRTERM_SESSION, * PCSRTERM_SESSION;
50
51 #define LOCK_SESSION RtlEnterCriticalSection(& Session.Lock)
52 #define UNLOCK_SESSION RtlLeaveCriticalSection(& Session.Lock)
53 #endif /* ndef _CSRTERM_H */