update for HEAD-2003091401
[reactos.git] / include / rosrtl / thread.h
index 7dc9deb..4aa774a 100644 (file)
@@ -6,7 +6,7 @@ extern "C"
 {
 #endif
 
-NTSTATUS STDCALL RtlRosCreateUserThreadEx
+NTSTATUS NTAPI RtlRosCreateUserThread
 (
  IN HANDLE ProcessHandle,
  IN POBJECT_ATTRIBUTES ObjectAttributes,
@@ -14,7 +14,7 @@ NTSTATUS STDCALL RtlRosCreateUserThreadEx
  IN LONG StackZeroBits,
  IN OUT PULONG StackReserve OPTIONAL,
  IN OUT PULONG StackCommit OPTIONAL,
- IN PTHREAD_START_ROUTINE StartAddress,
+ IN PVOID StartAddress,
  OUT PHANDLE ThreadHandle OPTIONAL,
  OUT PCLIENT_ID ClientId OPTIONAL,
  IN ULONG ParameterCount,
@@ -29,23 +29,59 @@ NTSTATUS CDECL RtlRosCreateUserThreadVa
  IN LONG StackZeroBits,
  IN OUT PULONG StackReserve OPTIONAL,
  IN OUT PULONG StackCommit OPTIONAL,
- IN PTHREAD_START_ROUTINE StartAddress,
+ IN PVOID StartAddress,
  OUT PHANDLE ThreadHandle OPTIONAL,
  OUT PCLIENT_ID ClientId OPTIONAL,
  IN ULONG ParameterCount,
  ...
 );
 
-NTSTATUS NTAPI RtlRosInitializeContextEx
+NTSTATUS NTAPI RtlRosInitializeContext
 (
  IN HANDLE ProcessHandle,
IN PCONTEXT Context,
- IN PTHREAD_START_ROUTINE StartAddress,
OUT PCONTEXT Context,
+ IN PVOID StartAddress,
  IN PUSER_STACK UserStack,
  IN ULONG ParameterCount,
  IN ULONG_PTR * Parameters
 );
 
+NTSTATUS NTAPI RtlRosCreateStack
+(
+ IN HANDLE ProcessHandle,
+ OUT PUSER_STACK UserStack,
+ IN LONG StackZeroBits,
+ IN OUT PULONG StackReserve OPTIONAL,
+ IN OUT PULONG StackCommit OPTIONAL
+);
+
+NTSTATUS NTAPI RtlRosDeleteStack
+(
+ IN HANDLE ProcessHandle,
+ IN PUSER_STACK UserStack
+);
+
+/* Private functions - for ROSRTL internal use only */
+NTSTATUS NTAPI RtlpRosGetStackLimits
+(
+ IN PUSER_STACK UserStack,
+ OUT PVOID * StackBase,
+ OUT PVOID * StackLimit
+);
+
+NTSTATUS NTAPI RtlpRosValidateLinearUserStack
+(
+ IN PVOID StackBase,
+ IN PVOID StackLimit,
+ IN BOOLEAN Direction
+);
+
+#define RtlpRosValidateTopDownUserStack(__B__, __L__) \
+ (RtlpRosValidateLinearUserStack((__B__), (__L__), FALSE))
+
+#define RtlpRosValidateDownTopUserStack(__B__, __L__) \
+ (RtlpRosValidateLinearUserStack((__B__), (__L__), TRUE))
+
 #ifdef __cplusplus
 }
 #endif