reactos/posix/server/misc/main.c
Emanuele Aliberti bb24d01a48 PSX: early code for the PSXSS server program. Currently it is a W32 console application,
therefore it is not a proper subsystem, but it will be converted to native as soon as
it begins working. It probably does NOT work under ROS. I tested it under NT 4.0 SP 6a.
To see what it creates in the system name sapce, run WinObj, and HandleEx. If you
run csrterm.exe, it tries to connect to psxss.exe, but then dies because the API to
tell psxss to create a PSX process it not implemented yet. PSXDLL.DLL will connect
to \POSIX+\ApiPort (initial code in psx/lib/psxdll/misc/init.c is mute).

svn path=/trunk/; revision=2841
2002-04-10 21:30:22 +00:00

89 lines
2.6 KiB
C

/* $Id: main.c,v 1.1 2002/04/10 21:30:22 ea Exp $
*
* PROJECT : ReactOS / POSIX+ Environment Subsystem Server
* FILE : reactos/subsys/psx/server/misc/main.c
* DESCRIPTION: POSIX+ server main.
* DATE : 2001-05-05
* AUTHOR : Emanuele Aliberti <eal@users.sf.net>
*
* --------------------------------------------------------------------
*
* 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
* 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. If not, write
* to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge,
* MA 02139, USA.
*
* --------------------------------------------------------------------
*
* 19990605 (Emanuele Aliberti)
* Compiled successfully with egcs 1.1.2
* 20020323 (Emanuele Aliberti)
* Converted to Win32 for testing it using NT LPC.
*/
#include <windows.h>
#include <reactos/buildno.h>
#include <psxss.h>
/*** EXTERNAL ********************************************************/
NTSTATUS STDCALL
PsxServerInitialization (
IN ULONG ArgumentCount,
IN PWSTR *ArgumentArray
);
/*** ENTRY POINT *****************************************************/
#ifdef __PSXSS_ON_W32__ // W32 PSXSS.EXE
int main (int argc, char * argv[])
{
INT c;
debug_print(L"POSIX+ Subsystem for ReactOS "KERNEL_RELEASE_STR);
if (STATUS_SUCCESS == PsxServerInitialization(0,NULL))
{
debug_print(L"PSXSS: server active");
while (TRUE)
{
c = getch();
if (c == 1) break;
}
}
else
{
debug_print(L"PSXSS: Subsystem initialization failed.\n");
}
return 0;
}
#else /* Native PSXSS.EXE */
VOID NtProcessStartup (PPEB Peb)
{
UNICODE_STRING Banner;
RtlInitUnicodeString (& Banner, L"POSIX+ Subsystem for ReactOS "KERNEL_RELEASE_STR);
NtDisplayString(& Banner);
if (STATUS_SUCCESS == PsxServerInitialization(0,NULL))
{
DbgPrint("PSXSS: server active\n");
/* TODO */
}
else
{
DbgPrint("PSXSS: Subsystem initialization failed.\n");
}
NtTerminateProcess (NtCurrentProcess(), 0);
}
#endif
/* EOF */