Minor change.
[reactos.git] / posix / include / psx / lpcproto.h
1 /* $Id: lpcproto.h,v 1.2 2002/04/07 13:56:16 ea Exp $
2 *
3 * ReactOS POSIX+ Environment Subsystem
4 * LPC protocol spoken by PSXSS.EXE, PSXDLL.DLL, CSRTERM.EXE.
5 */
6 #ifndef _PSX_LPCPROTO_H
7 #define _PSX_LPCPROTO_H
8
9 #include <napi/lpc.h>
10
11 #ifndef PRIVATE
12 #define PRIVATE static
13 #endif
14
15 /* Protocol version */
16 #define PSX_LPC_PROTOCOL_VERSION 1
17
18 /* POSIX+ system name space */
19 #define PSX_NS_SUBSYSTEM_DIRECTORY_NAME L"POSIX+"
20 #define PSX_NS_SESSION_DIRECTORY_NAME L"Sessions"
21 #define PSX_NS_SYSTEM_DIRECTORY_NAME L"System"
22 #define PSX_NS_API_PORT_NAME L"ApiPort"
23 #define PSX_NS_SBAPI_PORT_NAME L"SbApiPort"
24 #define PSX_NS_SESSIONAPI_PORT_NAME L"SessionPort"
25 #define PSX_NS_API_PORT_TEMPLATE L"\\%s\\%s"
26 #define PSX_NS_SESSION_PORT_TEMPLATE L"\\%s\\%s\\P%d"
27 #define PSX_NS_SESSION_DATA_TEMPLATE L"\\%s\\%s\\D%d"
28
29 /* ConnectData protocol */
30
31 typedef enum {
32 PSX_CONNECTION_TYPE_PROCESS,
33 PSX_CONNECTION_TYPE_TERMINAL
34 } PSX_CONNECTION_TYPE;
35
36 typedef struct _PSX_CONNECT_PORT_DATA
37 {
38 PSX_CONNECTION_TYPE ConnectionType; /* IN OUT */
39 ULONG Version; /* IN OUT */
40 ULONG PortIdentifier; /* OUT */
41 } PSX_CONNECT_PORT_DATA;
42
43 /* LPC message subsystem-specific header */
44
45 typedef struct _PSX_MESSAGE_HEADER
46 {
47 WORD Context;
48 WORD Procedure;
49 NTSTATUS Status;
50 } PSX_MESSAGE_HEADER, * PPSX_MESSAGE_HEADER;
51
52 typedef PSX_MESSAGE_HEADER PSX_MESSAGE, * PPSX_MESSAGE;
53
54 #define PSX_MAX_LPC_DATA_SIZE 128 /* compute it*/
55
56 typedef struct _PSX_MAX_MESSAGE
57 {
58 LPC_MESSAGE_HEADER Header;
59 PSX_MESSAGE_HEADER PsxHeader;
60 BYTE Data [PSX_MAX_LPC_DATA_SIZE];
61 } PSX_MAX_MESSAGE, * PPSX_MAX_MESSAGE;
62
63 /* Terminal I/O */
64
65 /* \POSIX+\SessionPort API */
66
67 typedef enum {
68 PSX_TERMINAL_INTERRUPT,
69 PSX_TERMINAL_SESSION_STATUS_REQUEST
70 } PSX_TERMINAL_API;
71
72 typedef struct _PSX_TERMINAL_READ
73 {
74 LPC_MESSAGE_HEADER Header;
75 PSX_MESSAGE_HEADER PsxHeader;
76 ULONG Size;
77 CHAR Buffer [80]; /* FIXME! */
78 } PSX_TERMINAL_READ, * PPSX_TERMINAL_READ;
79
80 /* System I/O (system calls) */
81
82 #include <psx/syscall.h>
83
84 #endif /* ndef _PSX_LPCPROTO_H */