--- /dev/null
+#include <internal/lpc.h>
+
+LPC_RETURN_CODE
+CSR_CreateProcess (
+ PLPC_REQUEST_REPLY pLpcRequestReply
+ );
+
+LPC_RETURN_CODE
+CSR_TerminateProcess(
+ PLPC_REQUEST_REPLY pLpcRequestReply
+ );
+
+
+/* EOF */
--- /dev/null
+/* $Id: process.c,v 1.1 1999/06/08 22:50:59 ea Exp $
+ *
+ * reactos/subsys/csrss/api/process.c
+ *
+ * "\windows\ApiPort" port process management functions
+ *
+ * ReactOS Operating System
+ */
+#include <internal/lpc.h>
+
+LPC_RETURN_CODE
+CSR_CreateProcess (
+ PLPC_REQUEST_REPLY pLpcRequestReply
+ )
+{
+ return LPC_ERROR_CALL_NOT_IMPLEMENTED;
+}
+
+
+LPC_RETURN_CODE
+CSR_TerminateProcess(
+ PLPC_REQUEST_REPLY pLpcRequestReply
+ )
+{
+ return LPC_ERROR_CALL_NOT_IMPLEMENTED;
+}
+
+/* EOF */
--- /dev/null
+/* $Id: csrss.c,v 1.1 1999/06/08 22:50:59 ea Exp $
+ *
+ * csrss.c - Client/Server Runtime subsystem
+ *
+ * ReactOS Operating System
+ *
+ * --------------------------------------------------------------------
+ *
+ * This software is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this software; see the file COPYING.LIB. If not, write
+ * to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge,
+ * MA 02139, USA.
+ *
+ * --------------------------------------------------------------------
+ *
+ * 19990417 (Emanuele Aliberti)
+ * Do nothing native application skeleton
+ * 19990528 (Emanuele Aliberti)
+ * Compiled successfully with egcs 1.1.2
+ * 19990605 (Emanuele Aliberti)
+ * First standalone run under ReactOS (it
+ * actually does nothing but running).
+ */
+#include <ddk/ntddk.h>
+//#include <internal/lpc.h>
+
+BOOL TerminationRequestPending = FALSE;
+
+BOOL InitializeServer(void);
+
+
+void
+DisplayString(
+ LPCWSTR Message
+ )
+{
+ UNICODE_STRING title;
+
+ title.Buffer = (LPWSTR) Message;
+ title.Length = wcslen(title.Buffer) * sizeof (WCHAR);
+ title.MaximumLength = title.Length + sizeof (WCHAR);
+ NtDisplayString( & title );
+}
+
+
+/* Native process' entry point */
+
+void
+NtProcessStartup( PSTARTUP_ARGUMENT StartupArgument )
+{
+ DisplayString( L"Client/Server Runtime Subsystem\n" );
+
+ if (TRUE == InitializeServer())
+ {
+ while (FALSE == TerminationRequestPending)
+ {
+ /* Do nothing! Should it
+ * be the SbApi port's
+ * thread instead?
+ */
+ NtYieldExecution();
+ }
+ }
+ else
+ {
+ DisplayString( L"CSR: Subsystem initialization failed.\n" );
+ /*
+ * Tell SM we failed.
+ */
+ }
+ NtTerminateProcess( NtCurrentProcess(), 0 );
+}
+
+/* EOF */
--- /dev/null
+#include "../../include/defines.h"
+#include "../../include/reactos/resource.h"
+
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION RES_UINT_FV_MAJOR,RES_UINT_FV_MINOR,RES_UINT_FV_REVISION,RES_UINT_FV_BUILD
+ PRODUCTVERSION RES_UINT_PV_MAJOR,RES_UINT_PV_MINOR,RES_UINT_PV_REVISION,RES_UINT_PV_BUILD
+ FILEFLAGSMASK 0x3fL
+#ifdef _DEBUG
+ FILEFLAGS 0x1L
+#else
+ FILEFLAGS 0x0L
+#endif
+ FILEOS 0x40004L
+ FILETYPE 0x2L
+ FILESUBTYPE 0x0L
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "040904b0"
+ BEGIN
+ VALUE "CompanyName", RES_STR_COMPANY_NAME
+ VALUE "FileDescription", "Client/Server Runtime Process\0"
+ VALUE "FileVersion", RES_STR_FILE_VERSION
+ VALUE "InternalName", "CSRSs and CSRSrv\0"
+ VALUE "LegalCopyright", RES_STR_LEGAL_COPYRIGHT
+ VALUE "OriginalFilename", "CSRSs.exe and CSRSrv.dll\0"
+ VALUE "ProductName", RES_STR_PRODUCT_NAME
+ VALUE "ProductVersion", RES_STR_PRODUCT_VERSION
+ END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 0x409, 1200
+ END
+END
+
--- /dev/null
+/* $Id: init.c,v 1.1 1999/06/08 22:50:59 ea Exp $
+ *
+ * reactos/subsys/csrss/init.c
+ *
+ * Initialize the CSRSS subsystem server process.
+ *
+ * ReactOS Operating System
+ *
+ */
+#include <ddk/ntddk.h>
+#include <internal/lpc.h>
+
+#if 0
+struct _SERVER_PORT
+{
+ HANDLE Port;
+ THREAD Thread;
+};
+
+struct _SERVER_PORTS
+{
+ struct _SERVER_PORT Api;
+ struct _SERVER_PORT SbApi;
+
+}
+
+void Thread_Api(void*);
+void Thread_SbApi(void*);
+
+struct _SERVER_PORTS
+Server =
+{
+ {INVALID_HANDLE_VALUE,Thread_Api},
+ {INVALID_HANDLE_VALUE,Thread_SbApi}
+};
+
+
+static
+void
+Thread_Api(void * pPort)
+{
+ HANDLE port;
+
+ port = * (HANDLE*) pPort;
+
+ NtListenPort(port);
+ while (TRUE)
+ {
+ NtAcceptConnectPort(
+ port
+ );
+ if (NT_SUCCESS(NtCompleteConnectPort(port)))
+ {
+ /* dispatch call */
+ }
+ }
+}
+
+
+static
+void
+Thread_SbApi(void * pPort)
+{
+ HANDLE port;
+
+ port = * (HANDLE*) pPort;
+
+ NtListenPort(port);
+ while (TRUE)
+ {
+ NtAcceptConnectPort(
+ port
+ );
+ if (NT_SUCCESS(NtCompleteConnectPort(port)))
+ {
+ /* dispatch call */
+ continue;
+ }
+ /* error */
+ }
+}
+#endif
+
+
+BOOL
+InitializeServer(void)
+{
+ OBJECT_ATTRIBUTES ObAttributes;
+ HANDLE MySelf;
+#if 0
+ MySelf = NtCurrentProcess();
+ /* \ApiPort */
+ Server.Api.Port =
+ NtCreatePort(
+ LPC_CSR_PORT_NAME_APIPORT,
+ ...
+ );
+ NtCreateThread(
+ & Server.Api.Thread,
+ 0, /* desired access */
+ & ObAttributes, /* object attributes */
+ MySelf, /* process' handle */
+ 0, /* client id */
+ Thread_ApiPort,
+ (void*) & Server.Api.Port
+ );
+ /* \SbApiPort */
+ Server.SbApi.Port =
+ NtCreatePort(
+ LPC_CSR_PORT_NAME_SBAPIPORT,
+ ...
+ );
+ NtCreateThread(
+ & Server.SbApi.Thread,
+ Thread_SbApi,
+ (void*) & Server.SbApi.Port
+ );
+#endif
+ return TRUE;
+}
+
+
+/* EOF */
--- /dev/null
+/* $Id: lpcstub.c,v 1.1 1999/06/08 22:50:59 ea Exp $
+ *
+ * lpcstub.c
+ *
+ * ReactOS Operating System
+ *
+ *
+ */
+#include <ddk/ntddk.h>
+#include <internal/lpc.h>
+#include "api.h"
+
+
+/* CUI & GUI Win32(tm) API port */
+
+LPC_RETURN_CODE
+PortDispatcher_Api(
+ PLPC_REQUEST_REPLY pLpcRequestReply
+ )
+{
+ switch (pLpcRequestReply->Function)
+ {
+ case CSRSS_API_PROCESS_CREATE:
+ return CSRSS_CreateProcess(pLpcRequestReply);
+ case CSRSS_API_PROCESS_TERMINATE:
+ return CSRSS_TerminateProcess(pLpcRequestReply);
+ }
+ return LPC_ERROR_INVALID_FUNCTION;
+}
+
+
+/* The \SbApi dispatcher: what is this port for? */
+
+LPC_RETURN_CODE
+PortDispatcher_SbApi(
+ PLPC_REQUEST_REPLY pLpcRequestReply
+ )
+{
+ return LPC_ERROR_INVALID_FUNCTION;
+}
+
+
+/* EOF */
--- /dev/null
+# $Id: makefile,v 1.1 1999/06/08 22:50:59 ea Exp $
+#
+# CSRSS: Client/server runtime subsystem
+#
+# ReactOS Operating System
+#
+TARGET=csrss
+
+OBJECTS_API = api/process.o
+
+OBJECTS_SBAPI =
+
+OBJECTS_MISC = $(TARGET).o init.o lpcstub.o $(TARGET).coff
+
+OBJECTS = $(OBJECTS_API) $(OBJECTS_SBAPI) $(OBJECTS_MISC)
+
+LIBS = ../../lib/ntdll/ntdll.a
+
+all: $(TARGET).exe
+
+.phony: all
+
+clean:
+ - $(RM) api/*.o
+ - $(RM) sbapi/*.o
+ - $(RM) *.o
+ - $(RM) $(TARGET).exe
+ - $(RM) $(TARGET).sym
+ - $(RM) $(TARGET).coff
+
+.phony: clean
+
+$(TARGET).coff: $(TARGET).rc
+ $(RC) $(TARGET).rc $(TARGET).coff
+
+$(TARGET).exe: $(OBJECTS) $(LIBS)
+ $(LD) \
+ $(OBJECTS) \
+ $(LIBS) \
+ -o $(TARGET).exe \
+ --subsystem native
+ $(NM) --numeric-sort $(TARGET).exe > $(TARGET).sym
+
+include ../../rules.mak
+
+# EOF