revert moving smdll to rosrtl.
Modified: trunk/reactos/Makefile
Modified: trunk/reactos/bootdata/packages/reactos.dff
Deleted: trunk/reactos/include/rosrtl/smapi.h
Deleted: trunk/reactos/include/rosrtl/smhelper.h
Added: trunk/reactos/include/sm/
Added: trunk/reactos/include/sm/api.h
Added: trunk/reactos/include/sm/helper.h
Modified: trunk/reactos/lib/rosrtl/makefile
Deleted: trunk/reactos/lib/rosrtl/sm/
Added: trunk/reactos/lib/smdll/
Added: trunk/reactos/lib/smdll/compses.c
Added: trunk/reactos/lib/smdll/connect.c
Added: trunk/reactos/lib/smdll/dllmain.c
Added: trunk/reactos/lib/smdll/execpgm.c
Added: trunk/reactos/lib/smdll/makefile
Added: trunk/reactos/lib/smdll/readme.txt
Added: trunk/reactos/lib/smdll/smdll.def
Added: trunk/reactos/lib/smdll/smdll.rc
Added: trunk/reactos/lib/smdll/testapi.c

Modified: trunk/reactos/Makefile
--- trunk/reactos/Makefile	2005-02-07 11:35:29 UTC (rev 13459)
+++ trunk/reactos/Makefile	2005-02-07 12:58:08 UTC (rev 13460)
@@ -58,7 +58,7 @@
 DLLS = acledit aclui advapi32 advpack cabinet cards comctl32 crtdll comdlg32 d3d8thk dbghelp expat fmifs freetype \
 	gdi32 gdiplus glu32 hid imagehlp imm32 iphlpapi kernel32 lzexpand mesa32 midimap mmdrv mpr msacm msafd \
 	msgina msi msimg32 msvcrt20 msvideo mswsock netapi32 ntdll ole32 oleaut32 oledlg olepro32 opengl32 \
-	packet psapi riched20 richedit rpcrt4 samlib secur32 setupapi shell32 shlwapi snmpapi syssetup \
+	packet psapi riched20 richedit rpcrt4 samlib secur32 setupapi shell32 shlwapi smdll snmpapi syssetup \
 	twain unicode user32 userenv version wininet winmm winspool ws2help ws2_32 wsock32 wshirda dnsapi \
 	urlmon shdocvw dinput dinput8 dxdiagn devenum dsound $(DLLS_KBD) $(DLLS_CPL) $(DLLS_SHELLEXT)
 

Modified: trunk/reactos/bootdata/packages/reactos.dff
--- trunk/reactos/bootdata/packages/reactos.dff	2005-02-07 11:35:29 UTC (rev 13459)
+++ trunk/reactos/bootdata/packages/reactos.dff	2005-02-07 12:58:08 UTC (rev 13460)
@@ -116,6 +116,7 @@
 lib\shdocvw\shdocvw.dll                 1
 lib\shell32\shell32.dll                 1
 lib\shlwapi\shlwapi.dll                 1
+lib\smdll\smdll.dll                     1
 lib\syssetup\syssetup.dll               1
 lib\twain\twain_32.dll                  1
 lib\urlmon\urlmon.dll                   1

Deleted: trunk/reactos/include/rosrtl/smapi.h
--- trunk/reactos/include/rosrtl/smapi.h	2005-02-07 11:35:29 UTC (rev 13459)
+++ trunk/reactos/include/rosrtl/smapi.h	2005-02-07 12:58:08 UTC (rev 13460)
@@ -1,72 +0,0 @@
-/* $Id$ */
-#ifndef __ROSRTL_SM_API_H
-#define __ROSRTL_SM_API_H
-
-#define SM_API_PORT_NAME   L"\\SmApiPort"
-#define SM_DBGSS_PORT_NAME L"\\DbgSsApiPort"
-#define SM_DBGUI_PORT_NAME L"\\DbgUiApiPort"
-
-#pragma pack(push,4)
-
-/*** 1 ****************************************************************/
-
-#define SM_API_COMPLETE_SESSION	1	/* complete a session initialization */
-
-typedef struct _SM_PORT_MESSAGE_COMPSES
-{
-	HANDLE  hApiPort;
-	HANDLE  hSbApiPort;
-
-} SM_PORT_MESSAGE_COMPSES, *PSM_PORT_MESSAGE_COMPSES;
-
-/*** 2 ****************************************************************/
-
-#define SM_API_2 2
-
-/* obsolete */
-
-/*** 3 ****************************************************************/
-
-#define SM_API_3 3
-
-/* unknown */
-
-/*** 4 ****************************************************************/
-
-#define SM_API_EXECUTE_PROGRAMME	4	/* start a subsystem (server) */
-
-#define SM_EXEXPGM_MAX_LENGTH	32		/* max count of wide string */
-
-typedef struct _SM_PORT_MESSAGE_EXECPGM
-{
-  ULONG  NameLength;
-  WCHAR  Name [SM_EXEXPGM_MAX_LENGTH];
-
-} SM_PORT_MESSAGE_EXECPGM, *PSM_PORT_MESSAGE_EXECPGM;
-
-/*** | ****************************************************************/
-
-typedef struct _SM_PORT_MESSAGE
-{
-  /*** LPC common header ***/
-  LPC_MESSAGE Header;
-  /*** SM common header ***/
-  DWORD       ApiIndex;
-  NTSTATUS    Status;
-  /*** SM per API arguments ***/
-  union {
-    SM_PORT_MESSAGE_COMPSES      CompSes;
-    SM_PORT_MESSAGE_EXECPGM      ExecPgm;
-  };
-
-} SM_PORT_MESSAGE, * PSM_PORT_MESSAGE;
-
-#pragma pack(pop)
-
-/*** MACRO ***********************************************************/
-
-#define SM_PORT_DATA_SIZE(c)  (sizeof(DWORD)+sizeof(NTSTATUS)+sizeof(c))
-#define SM_PORT_MESSAGE_SIZE  (sizeof(SM_PORT_MESSAGE))
-
-
-#endif /* !def __ROSRTL_SM_API_H */

Deleted: trunk/reactos/include/rosrtl/smhelper.h
--- trunk/reactos/include/rosrtl/smhelper.h	2005-02-07 11:35:29 UTC (rev 13459)
+++ trunk/reactos/include/rosrtl/smhelper.h	2005-02-07 12:58:08 UTC (rev 13460)
@@ -1,46 +0,0 @@
-#ifndef _ROSRTL_SM_HELPER_H
-
-/*** DATA TYPES ******************************************************/
-
-#define SM_SB_NAME_MAX_LENGTH 120
-
-#pragma pack(push,4)
-
-/* SmConnectApiPort */
-typedef struct _SM_CONNECT_DATA
-{
-  ULONG  Subsystem;
-  WCHAR  SbName [SM_SB_NAME_MAX_LENGTH];
-
-} SM_CONNECT_DATA, *PSM_CONNECT_DATA;
-
-/* SmpConnectSbApiPort */
-typedef struct _SB_CONNECT_DATA
-{
-  ULONG SmApiMax;
-} SB_CONNECT_DATA, *PSB_CONNECT_DATA;
-
-#pragma pack(pop)
-
-
-/*** PROTOTYPES ******************************************************/
-
-
-/* smdll/connect.c */
-NTSTATUS STDCALL
-SmConnectApiPort (IN      PUNICODE_STRING  pSbApiPortName  OPTIONAL,
-		  IN      HANDLE           hSbApiPort      OPTIONAL,
-		  IN      DWORD            dwSubsystem     OPTIONAL, /* pe.h */
-		  IN OUT  PHANDLE          phSmApiPort);
-/* smdll/compses.c */
-NTSTATUS STDCALL
-SmCompleteSession (IN     HANDLE  hSmApiPort,
-		   IN     HANDLE  hSbApiPort,
-		   IN     HANDLE  hApiPort);
-/* smdll/execpgm.c */
-NTSTATUS STDCALL
-SmExecuteProgram (IN     HANDLE           hSmApiPort,
-		  IN     PUNICODE_STRING  Pgm
-		  );
-
-#endif /* ndef _ROSRTL_SM_HELPER_H */

Added: trunk/reactos/include/sm/api.h
--- trunk/reactos/include/sm/api.h	2005-02-07 11:35:29 UTC (rev 13459)
+++ trunk/reactos/include/sm/api.h	2005-02-07 12:58:08 UTC (rev 13460)
@@ -0,0 +1,72 @@
+/* $Id$ */
+#ifndef __SM_API_H
+#define __SM_API_H
+
+#define SM_API_PORT_NAME   L"\\SmApiPort"
+#define SM_DBGSS_PORT_NAME L"\\DbgSsApiPort"
+#define SM_DBGUI_PORT_NAME L"\\DbgUiApiPort"
+
+#pragma pack(push,4)
+
+/*** 1 ****************************************************************/
+
+#define SM_API_COMPLETE_SESSION	1	/* complete a session initialization */
+
+typedef struct _SM_PORT_MESSAGE_COMPSES
+{
+	HANDLE  hApiPort;
+	HANDLE  hSbApiPort;
+
+} SM_PORT_MESSAGE_COMPSES, *PSM_PORT_MESSAGE_COMPSES;
+
+/*** 2 ****************************************************************/
+
+#define SM_API_2 2
+
+/* obsolete */
+
+/*** 3 ****************************************************************/
+
+#define SM_API_3 3
+
+/* unknown */
+
+/*** 4 ****************************************************************/
+
+#define SM_API_EXECUTE_PROGRAMME	4	/* start a subsystem (server) */
+
+#define SM_EXEXPGM_MAX_LENGTH	32		/* max count of wide string */
+
+typedef struct _SM_PORT_MESSAGE_EXECPGM
+{
+  ULONG  NameLength;
+  WCHAR  Name [SM_EXEXPGM_MAX_LENGTH];
+
+} SM_PORT_MESSAGE_EXECPGM, *PSM_PORT_MESSAGE_EXECPGM;
+
+/*** | ****************************************************************/
+
+typedef struct _SM_PORT_MESSAGE
+{
+  /*** LPC common header ***/
+  LPC_MESSAGE Header;
+  /*** SM common header ***/
+  DWORD       ApiIndex;
+  NTSTATUS    Status;
+  /*** SM per API arguments ***/
+  union {
+    SM_PORT_MESSAGE_COMPSES      CompSes;
+    SM_PORT_MESSAGE_EXECPGM      ExecPgm;
+  };
+
+} SM_PORT_MESSAGE, * PSM_PORT_MESSAGE;
+
+#pragma pack(pop)
+
+/*** MACRO ***********************************************************/
+
+#define SM_PORT_DATA_SIZE(c)  (sizeof(DWORD)+sizeof(NTSTATUS)+sizeof(c))
+#define SM_PORT_MESSAGE_SIZE  (sizeof(SM_PORT_MESSAGE))
+
+
+#endif /* !def __SM_API_H */
Property changes on: trunk/reactos/include/sm/api.h
___________________________________________________________________
Name: svn:keywords
   + author date id revision
Name: svn:eol-style
   + native

Added: trunk/reactos/include/sm/helper.h
--- trunk/reactos/include/sm/helper.h	2005-02-07 11:35:29 UTC (rev 13459)
+++ trunk/reactos/include/sm/helper.h	2005-02-07 12:58:08 UTC (rev 13460)
@@ -0,0 +1,46 @@
+#ifndef _SM_HELPER_H
+
+/*** DATA TYPES ******************************************************/
+
+#define SM_SB_NAME_MAX_LENGTH 120
+
+#pragma pack(push,4)
+
+/* SmConnectApiPort */
+typedef struct _SM_CONNECT_DATA
+{
+  ULONG  Subsystem;
+  WCHAR  SbName [SM_SB_NAME_MAX_LENGTH];
+
+} SM_CONNECT_DATA, *PSM_CONNECT_DATA;
+
+/* SmpConnectSbApiPort */
+typedef struct _SB_CONNECT_DATA
+{
+  ULONG SmApiMax;
+} SB_CONNECT_DATA, *PSB_CONNECT_DATA;
+
+#pragma pack(pop)
+
+
+/*** PROTOTYPES ******************************************************/
+
+
+/* smdll/connect.c */
+NTSTATUS STDCALL
+SmConnectApiPort (IN      PUNICODE_STRING  pSbApiPortName  OPTIONAL,
+		  IN      HANDLE           hSbApiPort      OPTIONAL,
+		  IN      DWORD            dwSubsystem     OPTIONAL, /* pe.h */
+		  IN OUT  PHANDLE          phSmApiPort);
+/* smdll/compses.c */
+NTSTATUS STDCALL
+SmCompleteSession (IN     HANDLE  hSmApiPort,
+		   IN     HANDLE  hSbApiPort,
+		   IN     HANDLE  hApiPort);
+/* smdll/execpgm.c */
+NTSTATUS STDCALL
+SmExecuteProgram (IN     HANDLE           hSmApiPort,
+		  IN     PUNICODE_STRING  Pgm
+		  );
+
+#endif /* ndef _SM_HELPER_H */
Property changes on: trunk/reactos/include/sm/helper.h
___________________________________________________________________
Name: svn:keywords
   + author date id revision
Name: svn:eol-style
   + native

Modified: trunk/reactos/lib/rosrtl/makefile
--- trunk/reactos/lib/rosrtl/makefile	2005-02-07 11:35:29 UTC (rev 13459)
+++ trunk/reactos/lib/rosrtl/makefile	2005-02-07 12:58:08 UTC (rev 13460)
@@ -33,12 +33,6 @@
  file/sparse.o \
  file/path.o
 
-SM_OBJECTS = \
- sm/compses.o \
- sm/connect.o \
- sm/execpgm.o \
- sm/testapi.o
-
 RECMUTEX_OBJECTS = recmutex/recmutex.o
 
 include $(PATH_TO_TOP)/config
@@ -52,8 +46,7 @@
 TARGET_CFLAGS = -D__USE_W32API -Wall -Werror
 
 TARGET_OBJECTS = $(THREAD_OBJECTS) $(MISC_OBJECTS) $(STRING_OBJECTS) \
-		 $(REGISTRY_OBJECTS) $(FILE_OBJECTS) $(RECMUTEX_OBJECTS) \
-		 $(SM_OBJECTS)
+		 $(REGISTRY_OBJECTS) $(FILE_OBJECTS) $(RECMUTEX_OBJECTS)
 
 DEP_OBJECTS = $(TARGET_OBJECTS)
 

Added: trunk/reactos/lib/smdll/compses.c
--- trunk/reactos/lib/smdll/compses.c	2005-02-07 11:35:29 UTC (rev 13459)
+++ trunk/reactos/lib/smdll/compses.c	2005-02-07 12:58:08 UTC (rev 13460)
@@ -0,0 +1,39 @@
+/* $Id$
+ *
+ * COPYRIGHT:       See COPYING in the top level directory
+ * PROJECT:         ReactOS system libraries
+ * FILE:            lib/smlib/compses.c
+ * PURPOSE:         Call SM API SM_API_COMPLETE_SESSION
+ */
+#define NTOS_MODE_USER
+#include <ntos.h>
+#include <sm/api.h>
+#include <sm/helper.h>
+
+NTSTATUS STDCALL
+SmCompleteSession (HANDLE hSmApiPort, HANDLE hSbApiPort, HANDLE hApiPort)
+{
+  NTSTATUS         Status;
+  SM_PORT_MESSAGE  SmReqMsg;
+    
+  /* Marshal Ses in the LPC message */
+  SmReqMsg.CompSes.hApiPort   = hApiPort;
+  SmReqMsg.CompSes.hSbApiPort = hSbApiPort;
+
+  /* SM API to invoke */
+  SmReqMsg.ApiIndex = SM_API_COMPLETE_SESSION;
+
+  /* Port message */
+  SmReqMsg.Header.MessageType = LPC_NEW_MESSAGE;
+  SmReqMsg.Header.DataSize    = SM_PORT_DATA_SIZE(SmReqMsg.CompSes);
+  SmReqMsg.Header.MessageSize = SM_PORT_MESSAGE_SIZE;
+  Status = NtRequestWaitReplyPort (hSmApiPort, (PLPC_MESSAGE) & SmReqMsg, (PLPC_MESSAGE) & SmReqMsg);
+  if (NT_SUCCESS(Status))
+  {
+    return SmReqMsg.Status;
+  }
+  DbgPrint ("%s failed (Status=0x%08lx)\n", __FUNCTION__, Status);
+  return Status;
+}
+
+/* EOF */
Property changes on: trunk/reactos/lib/smdll/compses.c
___________________________________________________________________
Name: svn:keywords
   + author date id revision
Name: svn:eol-style
   + native

Added: trunk/reactos/lib/smdll/connect.c
--- trunk/reactos/lib/smdll/connect.c	2005-02-07 11:35:29 UTC (rev 13459)
+++ trunk/reactos/lib/smdll/connect.c	2005-02-07 12:58:08 UTC (rev 13460)
@@ -0,0 +1,83 @@
+/* $Id$
+ *
+ * COPYRIGHT:  See COPYING in the top level directory
+ * PROJECT:    ReactOS system libraries
+ * FILE:       reactos/lib/smdll/connect.c
+ * PURPOSE:    Connect to the API LPC port exposed by the SM
+ */
+#define NTOS_MODE_USER
+#include <ntos.h>
+#include <sm/api.h>
+#include <sm/helper.h>
+#include <pe.h>
+
+/**********************************************************************
+ * NAME							EXPORTED
+ *	SmConnectApiPort/4
+ *
+ * DESCRIPTION
+ *	Connect to SM API port and register a session "begin" port (Sb)
+ *	or to issue API requests to SmApiPort.
+ *
+ * ARGUMENTS
+ *	pSbApiPortName: name of the Sb port the calling subsystem
+ *		server already created in the system name space;
+ *	hSbApiPort: LPC port handle (checked, but not used);
+ *	dwSubsystem: a valid IMAGE_SUBSYSTEM_xxx value;
+ *	phSmApiPort: a pointer to a HANDLE, which will be
+ *		filled with a valid client-side LPC comm port.
+ *	
+ * RETURN VALUE
+ * 	If all three optional values are omitted, an LPC status.
+ * 	STATUS_INVALID_PARAMETER_MIX if PortName is defined and
+ * 	both hSbApiPort and dwSubsystem are 0.
+ */
+NTSTATUS STDCALL
+SmConnectApiPort (IN      PUNICODE_STRING  pSbApiPortName  OPTIONAL,
+		  IN      HANDLE           hSbApiPort      OPTIONAL,
+		  IN      DWORD            dwSubsystem     OPTIONAL,
+		  IN OUT  PHANDLE          phSmApiPort)
+{
+  UNICODE_STRING              SmApiPortName;
+  SECURITY_QUALITY_OF_SERVICE SecurityQos;
+  NTSTATUS                    Status = STATUS_SUCCESS;
+  SM_CONNECT_DATA             ConnectData = {0,{0}};
+  ULONG                       ConnectDataLength = 0;
+
+  if (pSbApiPortName)
+  {
+    if (NULL == hSbApiPort || IMAGE_SUBSYSTEM_UNKNOWN == dwSubsystem)
+    {
+      return STATUS_INVALID_PARAMETER_MIX;
+    }
+    ConnectData.Subsystem = dwSubsystem;
+    memmove (& ConnectData.SbName, pSbApiPortName->Buffer, pSbApiPortName->Length);
+  }
+  ConnectDataLength = sizeof (ConnectData);
+
+  SecurityQos.Length              = sizeof (SecurityQos);
+  SecurityQos.ImpersonationLevel  = SecurityIdentification;
+  SecurityQos.ContextTrackingMode = TRUE;
+  SecurityQos.EffectiveOnly       = TRUE;
+
+  RtlInitUnicodeString (& SmApiPortName, SM_API_PORT_NAME);
+
+  Status = NtConnectPort (
+             phSmApiPort,
+             & SmApiPortName,
+             & SecurityQos,
+             NULL,
+             NULL,
+             NULL,
+             & ConnectData,
+             & ConnectDataLength
+             );
+  if (NT_SUCCESS(Status))
+  {
+    return STATUS_SUCCESS;
+  }
+  DbgPrint ("%s failed (Status=0x%08lx)\n", __FUNCTION__, Status);
+  return Status;
+}
+
+/* EOF */
Property changes on: trunk/reactos/lib/smdll/connect.c
___________________________________________________________________
Name: svn:keywords
   + author date id revision
Name: svn:eol-style
   + native

Added: trunk/reactos/lib/smdll/dllmain.c
--- trunk/reactos/lib/smdll/dllmain.c	2005-02-07 11:35:29 UTC (rev 13459)
+++ trunk/reactos/lib/smdll/dllmain.c	2005-02-07 12:58:08 UTC (rev 13460)
@@ -0,0 +1,17 @@
+/* $Id$
+ *
+ * COPYRIGHT:       See COPYING in the top level directory
+ * PROJECT:         ReactOS
+ * FILE:            lib/smdll/dllmain.c
+ * PURPOSE:         SM Helper Library
+ */
+
+#define NTOS_MODE_USER
+#include <ntos.h>
+
+BOOL STDCALL DllMain(HANDLE hinstDll, DWORD fdwReason, LPVOID fImpLoad)
+{
+  return TRUE;
+}
+
+/* EOF */
Property changes on: trunk/reactos/lib/smdll/dllmain.c
___________________________________________________________________
Name: svn:keywords
   + author date id revision
Name: svn:eol-style
   + native

Added: trunk/reactos/lib/smdll/execpgm.c
--- trunk/reactos/lib/smdll/execpgm.c	2005-02-07 11:35:29 UTC (rev 13459)
+++ trunk/reactos/lib/smdll/execpgm.c	2005-02-07 12:58:08 UTC (rev 13460)
@@ -0,0 +1,49 @@
+/* $Id$
+ *
+ * COPYRIGHT:       See COPYING in the top level directory
+ * PROJECT:         ReactOS system libraries
+ * FILE:            lib/smdll/execpgm.c
+ * PURPOSE:         Call SM API SM_API_EXECPGM
+ */
+#define NTOS_MODE_USER
+#include <ntos.h>
+#include <sm/api.h>
+#include <sm/helper.h>
+#include <string.h>
+
+NTSTATUS STDCALL
+SmExecPgm (HANDLE hSmApiPort, PUNICODE_STRING Pgm)
+{
+  NTSTATUS         Status;
+  SM_PORT_MESSAGE  SmReqMsg;
+
+
+  /* Check Pgm's length */
+  if (Pgm->Length > (sizeof (Pgm->Buffer[0]) * SM_EXEXPGM_MAX_LENGTH))
+  {
+    return STATUS_INVALID_PARAMETER;
+  }
+  /* Marshal Pgm in the LPC message */
+  RtlZeroMemory (& SmReqMsg, sizeof SmReqMsg);
+  SmReqMsg.ExecPgm.NameLength = Pgm->Length;
+  RtlCopyMemory (SmReqMsg.ExecPgm.Name, Pgm->Buffer, Pgm->Length);
+		
+  /* SM API to invoke */
+  SmReqMsg.ApiIndex = SM_API_EXECUTE_PROGRAMME;
+
+  /* LPC message */
+  SmReqMsg.Header.MessageType = LPC_NEW_MESSAGE;
+  SmReqMsg.Header.DataSize    = SM_PORT_DATA_SIZE(SmReqMsg.ExecPgm);
+  SmReqMsg.Header.MessageSize = SM_PORT_MESSAGE_SIZE;
+
+  /* Call SM and wait for a reply */
+  Status = NtRequestWaitReplyPort (hSmApiPort, (PLPC_MESSAGE) & SmReqMsg, (PLPC_MESSAGE) & SmReqMsg);
+  if (NT_SUCCESS(Status))
+  {
+    return SmReqMsg.Status;
+  }
+  DbgPrint ("%s failed (Status=0x%08lx)\n", __FUNCTION__, Status);
+  return Status;
+}
+
+/* EOF */
Property changes on: trunk/reactos/lib/smdll/execpgm.c
___________________________________________________________________
Name: svn:keywords
   + author date id revision
Name: svn:eol-style
   + native

Added: trunk/reactos/lib/smdll/makefile
--- trunk/reactos/lib/smdll/makefile	2005-02-07 11:35:29 UTC (rev 13459)
+++ trunk/reactos/lib/smdll/makefile	2005-02-07 12:58:08 UTC (rev 13460)
@@ -0,0 +1,34 @@
+# $Id$
+
+PATH_TO_TOP = ../..
+
+TARGET_TYPE = dynlink
+
+TARGET_NAME = smdll
+
+TARGET_SDKLIBS = ntdll.a
+
+TARGET_CFLAGS = -I./include -Wall -Werror
+
+# require os code to explicitly request A/W version of structs/functions
+TARGET_CFLAGS += -D_DISABLE_TIDENTS
+
+TARGET_LFLAGS = -nostartfiles -nostdlib
+
+#TARGET_BASE =
+
+TARGET_OBJECTS = \
+	dllmain.o \
+	connect.o \
+	execpgm.o \
+	compses.o
+	
+DEP_OBJECTS = $(TARGET_OBJECTS)
+
+include $(PATH_TO_TOP)/rules.mak
+
+include $(TOOLS_PATH)/helper.mk
+
+include $(TOOLS_PATH)/depend.mk
+
+# EOF
Property changes on: trunk/reactos/lib/smdll/makefile
___________________________________________________________________
Name: svn:keywords
   + author date id revision
Name: svn:eol-style
   + native

Added: trunk/reactos/lib/smdll/readme.txt
--- trunk/reactos/lib/smdll/readme.txt	2005-02-07 11:35:29 UTC (rev 13459)
+++ trunk/reactos/lib/smdll/readme.txt	2005-02-07 12:58:08 UTC (rev 13460)
@@ -0,0 +1,18 @@
+$Id$
+
+This is SMDLL: a helper library to talk to the ReactOS session manager (SM).
+
+It should be linked in the following components:
+
+a) the SM itself, because iy registers for managing native processes
+   IMAGE_SUBSYSTEM_NATIVE;
+
+b) environment subsystem servers, because each one should register in
+   the SM its own subsystem (willing to manageg those processes);
+
+c) terminal emulators for optional subsystems, like posixw32 and os2w32,
+   to ask the SM to start the optional subsystem server they need connect to;
+
+d) system and development utilites to debug/query the SM.
+
+2004-02-15 ea
\ No newline at end of file
Property changes on: trunk/reactos/lib/smdll/readme.txt
___________________________________________________________________
Name: svn:keywords
   + author date id revision
Name: svn:eol-style
   + native

Added: trunk/reactos/lib/smdll/smdll.def
--- trunk/reactos/lib/smdll/smdll.def	2005-02-07 11:35:29 UTC (rev 13459)
+++ trunk/reactos/lib/smdll/smdll.def	2005-02-07 12:58:08 UTC (rev 13460)
@@ -0,0 +1,5 @@
+LIBRARY SMDLL.DLL
+EXPORTS
+SmCompleteSession@12
+SmConnectApiPort@16
+SmExecPgm@8
\ No newline at end of file
Property changes on: trunk/reactos/lib/smdll/smdll.def
___________________________________________________________________
Name: svn:keywords
   + author date id revision
Name: svn:eol-style
   + native

Added: trunk/reactos/lib/smdll/smdll.rc
--- trunk/reactos/lib/smdll/smdll.rc	2005-02-07 11:35:29 UTC (rev 13459)
+++ trunk/reactos/lib/smdll/smdll.rc	2005-02-07 12:58:08 UTC (rev 13460)
@@ -0,0 +1,4 @@
+#define REACTOS_STR_FILE_DESCRIPTION	"ReactOS SM Helper\0"
+#define REACTOS_STR_INTERNAL_NAME	"smdll.dll\0"
+#define REACTOS_STR_ORIGINAL_FILENAME	"smdll.dll\0"
+#include <reactos/version.rc>
Property changes on: trunk/reactos/lib/smdll/smdll.rc
___________________________________________________________________
Name: svn:keywords
   + author date id revision
Name: svn:eol-style
   + native

Added: trunk/reactos/lib/smdll/testapi.c
--- trunk/reactos/lib/smdll/testapi.c	2005-02-07 11:35:29 UTC (rev 13459)
+++ trunk/reactos/lib/smdll/testapi.c	2005-02-07 12:58:08 UTC (rev 13460)
@@ -0,0 +1,20 @@
+/* $Id$ */
+#define NTOS_MODE_USER
+#include <ntos.h>
+#include <sm/api.h>
+
+VOID STDCALL SmPrintPortMessage (PSM_PORT_MESSAGE SmMessage)
+{
+	DbgPrint ("SM_PORT_MESSAGE %08lx:\n", (ULONG) SmMessage);
+	DbgPrint ("  Header:\n");
+	DbgPrint ("    MessageType = %u\n", SmMessage->Header.MessageType);
+	DbgPrint ("    DataSize    = %d\n", SmMessage->Header.DataSize);
+	DbgPrint ("    MessageSize = %d\n", SmMessage->Header.MessageSize);
+	DbgPrint ("  ApiIndex      = %ld\n", SmMessage->ApiIndex);
+	DbgPrint ("  Status        = %08lx\n", SmMessage->Status);
+	DbgPrint ("  ExecPgm:\n");
+	DbgPrint ("    NameLength  = %ld\n", SmMessage->ExecPgm.NameLength);
+	DbgPrint ("    Name        = %ls\n", (LPWSTR) & SmMessage->ExecPgm.Name);
+}
+/* EOF */
+
Property changes on: trunk/reactos/lib/smdll/testapi.c
___________________________________________________________________
Name: svn:keywords
   + author date id revision
Name: svn:eol-style
   + native