1 /* $Id: lpcproto.h,v 1.7 2004/01/18 21:27:32 ea Exp $
3 * ReactOS POSIX+ Environment Subsystem
4 * LPC protocol spoken by PSXSS.EXE, PSXDLL.DLL, CSRTERM.EXE.
6 #ifndef _PSX_LPCPROTO_H
7 #define _PSX_LPCPROTO_H
13 #define PRIVATE static
16 /* Protocol version */
17 #define PSX_LPC_PROTOCOL_VERSION 1
19 /* POSIX+ system name space */
20 #define PSX_NS_SUBSYSTEM_DIRECTORY_NAME L"POSIX+"
21 #define PSX_NS_SESSION_DIRECTORY_NAME L"Sessions"
22 #define PSX_NS_SYSTEM_DIRECTORY_NAME L"System"
23 #define PSX_NS_API_PORT_NAME L"ApiPort"
24 #define PSX_NS_SBAPI_PORT_NAME L"SbApiPort"
25 #define PSX_NS_SESSIONAPI_PORT_NAME L"SessionPort"
26 #define PSX_NS_API_PORT_TEMPLATE L"\\%s\\%s"
27 #define PSX_NS_SESSION_PORT_TEMPLATE L"\\%s\\%s\\P%d"
28 #define PSX_NS_SESSION_DATA_TEMPLATE L"\\%s\\%s\\D%d"
30 /* ConnectData protocol */
33 PSX_CONNECTION_TYPE_PROCESS
,
34 PSX_CONNECTION_TYPE_TERMINAL
,
35 PSX_CONNECTION_TYPE_SERVER
36 } PSX_CONNECTION_TYPE
;
38 typedef struct _PSX_CONNECT_PORT_DATA
40 PSX_CONNECTION_TYPE ConnectionType
; /* IN OUT */
41 ULONG Version
; /* IN OUT */
42 ULONG PortIdentifier
; /* OUT */
43 } PSX_CONNECT_PORT_DATA
, * PPSX_CONNECT_PORT_DATA
;
45 /* LPC message subsystem-specific header */
47 typedef struct _PSX_MESSAGE_HEADER
52 } PSX_MESSAGE_HEADER
, * PPSX_MESSAGE_HEADER
;
54 typedef PSX_MESSAGE_HEADER PSX_MESSAGE
, * PPSX_MESSAGE
;
56 #define PSX_MAX_LPC_DATA_SIZE 128 /* compute it*/
58 typedef struct _PSX_MAX_MESSAGE
60 //LPC_MESSAGE_HEADER Header;
62 PSX_MESSAGE_HEADER PsxHeader
;
63 BYTE Data
[PSX_MAX_LPC_DATA_SIZE
];
64 } PSX_MAX_MESSAGE
, * PPSX_MAX_MESSAGE
;
68 /* \POSIX+\SessionPort API */
70 #define PSX_TERMINAL_SECTION_SIZE 65536L
71 #define PSX_TERMINAL_SECTION_OFFSET 8192L
74 PSX_TERMINAL_INTERRUPT
,
75 PSX_TERMINAL_SESSION_STATUS_REQUEST
78 typedef struct _PSX_TERMINAL_IO
80 //LPC_MESSAGE_HEADER Header;
82 PSX_MESSAGE_HEADER PsxHeader
;
85 } PSX_TERMINAL_READ
, * PPSX_TERMINAL_READ
;
87 /* System I/O (system calls) */
89 #include <psx/syscall.h>
91 #endif /* ndef _PSX_LPCPROTO_H */