1 /* $Id: lpcproto.h,v 1.3 2002/04/10 21:30:20 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
12 #define PRIVATE static
15 /* Protocol version */
16 #define PSX_LPC_PROTOCOL_VERSION 1
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"
29 /* ConnectData protocol */
32 PSX_CONNECTION_TYPE_PROCESS
,
33 PSX_CONNECTION_TYPE_TERMINAL
,
34 PSX_CONNECTION_TYPE_SERVER
35 } PSX_CONNECTION_TYPE
;
37 typedef struct _PSX_CONNECT_PORT_DATA
39 PSX_CONNECTION_TYPE ConnectionType
; /* IN OUT */
40 ULONG Version
; /* IN OUT */
41 ULONG PortIdentifier
; /* OUT */
42 } PSX_CONNECT_PORT_DATA
, * PPSX_CONNECT_PORT_DATA
;
44 /* LPC message subsystem-specific header */
46 typedef struct _PSX_MESSAGE_HEADER
51 } PSX_MESSAGE_HEADER
, * PPSX_MESSAGE_HEADER
;
53 typedef PSX_MESSAGE_HEADER PSX_MESSAGE
, * PPSX_MESSAGE
;
55 #define PSX_MAX_LPC_DATA_SIZE 128 /* compute it*/
57 typedef struct _PSX_MAX_MESSAGE
59 LPC_MESSAGE_HEADER Header
;
60 PSX_MESSAGE_HEADER PsxHeader
;
61 BYTE Data
[PSX_MAX_LPC_DATA_SIZE
];
62 } PSX_MAX_MESSAGE
, * PPSX_MAX_MESSAGE
;
66 /* \POSIX+\SessionPort API */
68 #define PSX_TERMINAL_SECTION_SIZE 65536L
69 #define PSX_TERMINAL_SECTION_OFFSET 8192L
72 PSX_TERMINAL_INTERRUPT
,
73 PSX_TERMINAL_SESSION_STATUS_REQUEST
76 typedef struct _PSX_TERMINAL_IO
78 LPC_MESSAGE_HEADER Header
;
79 PSX_MESSAGE_HEADER PsxHeader
;
82 } PSX_TERMINAL_READ
, * PPSX_TERMINAL_READ
;
84 /* System I/O (system calls) */
86 #include <psx/syscall.h>
88 #endif /* ndef _PSX_LPCPROTO_H */