]> sourceware.org Git - newlib-cygwin.git/blobdiff - winsup/cygwin/ntdll.h
* cygwin.din (pthread_attr_getstack): Export.
[newlib-cygwin.git] / winsup / cygwin / ntdll.h
index 757291439a568788e860981e48bdee84ed606afd..75ba1a5e89189570ae51e11686278e51f9094e37 100644 (file)
@@ -1,7 +1,7 @@
 /* ntdll.h.  Contains ntdll specific stuff not defined elsewhere.
 
    Copyright 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
-   2009, 2010 Red Hat, Inc.
+   2009, 2010, 2011 Red Hat, Inc.
 
    This file is part of Cygwin.
 
@@ -40,6 +40,7 @@
 #define STATUS_NO_EAS_ON_FILE         ((NTSTATUS) 0xc0000052)
 #define STATUS_LOCK_NOT_GRANTED       ((NTSTATUS) 0xc0000055)
 #define STATUS_DELETE_PENDING         ((NTSTATUS) 0xc0000056)
+#define STATUS_PROCEDURE_NOT_FOUND    ((NTSTATUS) 0xc000007a)
 #define STATUS_DISK_FULL              ((NTSTATUS) 0xc000007f)
 #define STATUS_WORKING_SET_QUOTA      ((NTSTATUS) 0xc00000a1)
 #define STATUS_INSTANCE_NOT_AVAILABLE ((NTSTATUS) 0xc00000ab)
@@ -897,9 +898,19 @@ typedef enum _EVENT_INFORMATION_CLASS
 
 typedef enum _THREAD_INFORMATION_CLASS
 {
+  ThreadBasicInformation = 0,
   ThreadImpersonationToken = 5
 } THREAD_INFORMATION_CLASS, *PTHREAD_INFORMATION_CLASS;
 
+typedef struct _THREAD_BASIC_INFORMATION {
+    NTSTATUS  ExitStatus;
+    PNT_TIB  TebBaseAddress;
+    CLIENT_ID  ClientId;
+    KAFFINITY  AffinityMask;
+    KPRIORITY  Priority;
+    KPRIORITY  BasePriority;
+} THREAD_BASIC_INFORMATION, *PTHREAD_BASIC_INFORMATION;
+
 #define RTL_QUERY_REGISTRY_SUBKEY 0x01
 #define RTL_QUERY_REGISTRY_TOPKEY 0x02
 #define RTL_QUERY_REGISTRY_REQUIRED 0x04
@@ -947,6 +958,14 @@ typedef struct _KEY_VALUE_PARTIAL_INFORMATION
   UCHAR Data[1];
 } KEY_VALUE_PARTIAL_INFORMATION, *PKEY_VALUE_PARTIAL_INFORMATION;
 
+typedef enum _TIMER_TYPE
+{
+  NotificationTimer,
+  SynchronisationTimer
+} TIMER_TYPE, *PTIMER_TYPE;
+
+typedef VOID (APIENTRY *PTIMER_APC_ROUTINE)(PVOID, ULONG, ULONG);
+
 /* Function declarations for ntdll.dll.  These don't appear in any
    standard Win32 header.  */
 
@@ -969,6 +988,7 @@ extern "C"
                                          ULONG, PTOKEN_PRIVILEGES, PULONG);
   NTSTATUS NTAPI NtAllocateLocallyUniqueId (PLUID);
   NTSTATUS NTAPI NtAllocateUuids (PLARGE_INTEGER, PULONG, PULONG, PUCHAR);
+  NTSTATUS NTAPI NtCancelTimer (HANDLE, PBOOLEAN);
   NTSTATUS NTAPI NtClose (HANDLE);
   NTSTATUS NTAPI NtCommitTransaction (HANDLE, BOOLEAN);
   NTSTATUS NTAPI NtCreateDirectoryObject (PHANDLE, ACCESS_MASK,
@@ -989,6 +1009,8 @@ extern "C"
                                  PLARGE_INTEGER, ULONG, ULONG, HANDLE);
   NTSTATUS NTAPI NtCreateSemaphore (PHANDLE, ACCESS_MASK, POBJECT_ATTRIBUTES,
                                    LONG, LONG);
+  NTSTATUS NTAPI NtCreateTimer (PHANDLE, ACCESS_MASK, POBJECT_ATTRIBUTES,
+                               TIMER_TYPE);
   NTSTATUS NTAPI NtCreateToken (PHANDLE, ACCESS_MASK, POBJECT_ATTRIBUTES,
                                TOKEN_TYPE, PLUID, PLARGE_INTEGER, PTOKEN_USER,
                                PTOKEN_GROUPS, PTOKEN_PRIVILEGES, PTOKEN_OWNER,
@@ -1002,6 +1024,7 @@ extern "C"
   NTSTATUS NTAPI NtFsControlFile (HANDLE, HANDLE, PIO_APC_ROUTINE, PVOID,
                                  PIO_STATUS_BLOCK, ULONG, PVOID, ULONG,
                                  PVOID, ULONG);
+  NTSTATUS NTAPI NtFlushBuffersFile (HANDLE, PIO_STATUS_BLOCK);
   NTSTATUS NTAPI NtLoadKey (POBJECT_ATTRIBUTES, POBJECT_ATTRIBUTES);
   NTSTATUS NTAPI NtLockVirtualMemory (HANDLE, PVOID *, ULONG *, ULONG);
   NTSTATUS NTAPI NtMapViewOfSection (HANDLE, HANDLE, PVOID *, ULONG, ULONG,
@@ -1045,6 +1068,8 @@ extern "C"
                                         ULONG, FILE_INFORMATION_CLASS);
   NTSTATUS NTAPI NtQueryInformationProcess (HANDLE, PROCESSINFOCLASS,
                                            PVOID, ULONG, PULONG);
+  NTSTATUS NTAPI NtQueryInformationThread (HANDLE, THREAD_INFORMATION_CLASS,
+                                           PVOID, ULONG, PULONG);
   NTSTATUS NTAPI NtQueryInformationToken (HANDLE, TOKEN_INFORMATION_CLASS,
                                          PVOID, ULONG, PULONG);
   NTSTATUS NTAPI NtQueryObject (HANDLE, OBJECT_INFORMATION_CLASS, VOID *,
@@ -1079,6 +1104,8 @@ extern "C"
                                        ULONG);
   NTSTATUS NTAPI NtSetSecurityObject (HANDLE, SECURITY_INFORMATION,
                                      PSECURITY_DESCRIPTOR);
+  NTSTATUS NTAPI NtSetTimer (HANDLE, PLARGE_INTEGER, PTIMER_APC_ROUTINE, PVOID,
+                            BOOLEAN, LONG, PBOOLEAN);
   NTSTATUS NTAPI NtSetTimerResolution (ULONG, BOOLEAN, PULONG);
   NTSTATUS NTAPI NtSetValueKey (HANDLE, PUNICODE_STRING, ULONG, ULONG, PVOID,
                                ULONG);
@@ -1103,12 +1130,18 @@ extern "C"
   LONG NTAPI RtlCompareUnicodeString (PUNICODE_STRING, PUNICODE_STRING,
                                      BOOLEAN);
   NTSTATUS NTAPI RtlConvertSidToUnicodeString (PUNICODE_STRING, PSID, BOOLEAN);
-  VOID NTAPI RtlCopyUnicodeString (PUNICODE_STRING, PUNICODE_STRING);
+  NTSTATUS NTAPI RtlConvertToAutoInheritSecurityObject (PSECURITY_DESCRIPTOR,
+                                                       PSECURITY_DESCRIPTOR,
+                                                       PSECURITY_DESCRIPTOR *,
+                                                       GUID *, BOOLEAN,
+                                                       PGENERIC_MAPPING);
   NTSTATUS NTAPI RtlCopySid (ULONG, PSID, PSID);
+  VOID NTAPI RtlCopyUnicodeString (PUNICODE_STRING, PUNICODE_STRING);
   NTSTATUS NTAPI RtlCreateAcl (PACL, ULONG, ULONG);
   NTSTATUS NTAPI RtlCreateRegistryKey (ULONG, PCWSTR);
   NTSTATUS NTAPI RtlCreateSecurityDescriptor (PSECURITY_DESCRIPTOR, ULONG);
   BOOLEAN NTAPI RtlCreateUnicodeStringFromAsciiz (PUNICODE_STRING, PCSTR);
+  NTSTATUS NTAPI RtlDeleteSecurityObject (PSECURITY_DESCRIPTOR *);
   NTSTATUS NTAPI RtlDowncaseUnicodeString (PUNICODE_STRING, PUNICODE_STRING,
                                           BOOLEAN);
   NTSTATUS NTAPI RtlEnterCriticalSection (PRTL_CRITICAL_SECTION);
@@ -1122,6 +1155,9 @@ extern "C"
   VOID NTAPI RtlFreeUnicodeString (PUNICODE_STRING);
   BOOLEAN NTAPI RtlFirstFreeAce (PACL, PVOID *);
   NTSTATUS NTAPI RtlGetAce (PACL, ULONG, PVOID);
+  NTSTATUS NTAPI RtlGetControlSecurityDescriptor (PSECURITY_DESCRIPTOR,
+                                                 PSECURITY_DESCRIPTOR_CONTROL,
+                                                 PULONG);
   HANDLE NTAPI RtlGetCurrentTransaction ();
   NTSTATUS NTAPI RtlGetDaclSecurityDescriptor (PSECURITY_DESCRIPTOR, PBOOLEAN,
                                               PACL *, PBOOLEAN);
@@ -1136,6 +1172,7 @@ extern "C"
   NTSTATUS NTAPI RtlIntegerToUnicodeString (ULONG, ULONG, PUNICODE_STRING);
   ULONG NTAPI RtlIsDosDeviceName_U (PCWSTR);
   NTSTATUS NTAPI RtlLeaveCriticalSection (PRTL_CRITICAL_SECTION);
+  ULONG NTAPI RtlLengthSecurityDescriptor (PSECURITY_DESCRIPTOR);
   ULONG NTAPI RtlLengthSid (PSID);
   ULONG NTAPI RtlNtStatusToDosError (NTSTATUS);
   NTSTATUS NTAPI RtlOemStringToUnicodeString (PUNICODE_STRING, POEM_STRING,
@@ -1267,6 +1304,18 @@ extern "C"
     fbi.FileAttributes = attr ?: FILE_ATTRIBUTE_NORMAL;
     return NtSetInformationFile(h, &io, &fbi, sizeof fbi, FileBasicInformation);
   }
+
+  /* This test for a signalled event is twice as fast as calling
+     WaitForSingleObject (event, 0). */
+  inline
+  BOOL NTAPI IsEventSignalled (HANDLE event)
+  {
+    EVENT_BASIC_INFORMATION ebi;
+    return NT_SUCCESS (NtQueryEvent (event, EventBasicInformation,
+                                    &ebi, sizeof ebi, NULL))
+          && ebi.SignalState != 0;
+
+  }
 }
 #endif
 #endif /*_NTDLL_H*/
This page took 0.027101 seconds and 5 git commands to generate.