]> sourceware.org Git - newlib-cygwin.git/commitdiff
* cygerrno.h (__seterrno_from_nt_status): Define. Always set Win32
authorCorinna Vinschen <corinna@vinschen.de>
Wed, 13 Apr 2005 16:41:33 +0000 (16:41 +0000)
committerCorinna Vinschen <corinna@vinschen.de>
Wed, 13 Apr 2005 16:41:33 +0000 (16:41 +0000)
error code as well as errno. Use throughout where errno is set from
NT status.
(set_errno): Evaluate val only once.
* fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Fix typo in
debug output.
* fhandler_mem.cc (fhandler_dev_mem::open): Rely on
__seterrno_from_nt_status setting Win32 error code in debug output.
* fhandler_proc.cc (format_proc_uptime): Ditto.
(format_proc_stat): Ditto.
* fhandler_process.cc (format_process_stat): Ditto.
* sysconf.cc (sysconf): Ditto.

winsup/cygwin/ChangeLog
winsup/cygwin/cygerrno.h
winsup/cygwin/fhandler.cc
winsup/cygwin/fhandler_disk_file.cc
winsup/cygwin/fhandler_mem.cc
winsup/cygwin/fhandler_proc.cc
winsup/cygwin/fhandler_process.cc
winsup/cygwin/mmap.cc
winsup/cygwin/security.cc
winsup/cygwin/sysconf.cc

index c1d3bda5ac6023b4add1c2dd4a66fc34b0a37484..6923a0c6bff2fe05d2dcdaa851f0aae965d48df8 100644 (file)
@@ -1,3 +1,18 @@
+2005-04-13  Corinna Vinschen  <corinna@vinschen.de>
+
+       * cygerrno.h (__seterrno_from_nt_status): Define. Always set Win32
+       error code as well as errno. Use throughout where errno is set from
+       NT status.
+       (set_errno): Evaluate val only once.
+       * fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Fix typo in
+       debug output.
+       * fhandler_mem.cc (fhandler_dev_mem::open): Rely on
+       __seterrno_from_nt_status setting Win32 error code in debug output.
+       * fhandler_proc.cc (format_proc_uptime): Ditto.
+       (format_proc_stat): Ditto.
+       * fhandler_process.cc (format_process_stat): Ditto.
+       * sysconf.cc (sysconf): Ditto.
+
 2005-04-13  Christopher Faylor  <cgf@timesys.com>
 
        * fhandler.h (fhandler_base::utimes_fs): New method.
index c1a0fd821f3b670c299209054354dc23c2e59fe2..f3be0ce1b64ab945dbf2d9e27f2d683828803e01 100644 (file)
@@ -16,9 +16,15 @@ int __stdcall geterrno_from_win_error (DWORD code, int deferrno) __attribute__ (
 
 #define __seterrno() seterrno (__FILE__, __LINE__)
 #define __seterrno_from_win_error(val) seterrno_from_win_error (__FILE__, __LINE__, val)
+#define __seterrno_from_nt_status(status) \
+       ({ \
+         DWORD winerr = RtlNtStatusToDosError (status); \
+         SetLastError (winerr); \
+         __seterrno_from_win_error (winerr); \
+       })
 
 #ifndef DEBUGGING
-#define set_errno(val) (errno = (val), _impure_ptr->_errno = (val))
+#define set_errno(val) (errno = _impure_ptr->_errno = (val))
 #else
 int __stdcall __set_errno (const char *ln, int ln, int val) __attribute ((regparm(3)));
 #define set_errno(val) __set_errno (__PRETTY_FUNCTION__, __LINE__, (val))
index c64dcb1c9e57a0d9dd5c83e1c41ec27389bae6ba..b21b973a40a1f7e8be4c9a980d423faadcae91f8 100644 (file)
@@ -665,7 +665,7 @@ fhandler_base::open (int flags, mode_t mode)
                         create_disposition, create_options, NULL, 0);
   if (!NT_SUCCESS (status))
     {
-      __seterrno_from_win_error (RtlNtStatusToDosError (status));
+      __seterrno_from_nt_status (status);
       if (!nohandle ())
        goto done;
    }
index 1fe3713416e580265d217c50178da250e2cfc553..80d762ddc3607ae7c7c9db9ca3008b27d16b509e 100644 (file)
@@ -141,7 +141,7 @@ fhandler_base::fstat_by_handle (struct __stat64 *buf)
                         pfai->InternalInformation.IndexNumber.LowPart,
                         pfai->StandardInformation.NumberOfLinks);
 
-      debug_printf ("%u = NtQuerynformationFile)",
+      debug_printf ("%u = NtQueryInformationFile)",
                    RtlNtStatusToDosError (status));
     }
 
index 431ecb85d4c146d419ea9735f4a00208a4e527ad..ff1798caecddfa13e2fa161abb1556dd4777a5ed 100644 (file)
@@ -48,9 +48,8 @@ fhandler_dev_mem::open (int flags, mode_t)
       if ((ret = NtQuerySystemInformation (SystemBasicInformation, (PVOID) &sbi,
                                           sizeof sbi, NULL)) != STATUS_SUCCESS)
        {
-         __seterrno_from_win_error (RtlNtStatusToDosError (ret));
-         debug_printf("NtQuerySystemInformation: ret %d, Dos(ret) %d",
-                      ret, RtlNtStatusToDosError (ret));
+         __seterrno_from_nt_status (ret);
+         debug_printf("NtQuerySystemInformation: ret %d, Dos(ret) %E", ret);
          mem_size = 0;
        }
       else
@@ -109,7 +108,7 @@ fhandler_dev_mem::open (int flags, mode_t)
   NTSTATUS ret = NtOpenSection (&mem, section_access, &attr);
   if (!NT_SUCCESS (ret))
     {
-      __seterrno_from_win_error (RtlNtStatusToDosError (ret));
+      __seterrno_from_nt_status (ret);
       set_io_handle (NULL);
       return 0;
     }
@@ -151,7 +150,7 @@ fhandler_dev_mem::write (const void *ptr, size_t ulen)
                                 0,
                                 PAGE_READONLY)) != STATUS_SUCCESS)
     {
-      __seterrno_from_win_error (RtlNtStatusToDosError (ret));
+      __seterrno_from_nt_status (ret);
       return -1;
     }
 
@@ -159,7 +158,7 @@ fhandler_dev_mem::write (const void *ptr, size_t ulen)
 
   if (!NT_SUCCESS (ret = NtUnmapViewOfSection (INVALID_HANDLE_VALUE, viewmem)))
     {
-      __seterrno_from_win_error (RtlNtStatusToDosError (ret));
+      __seterrno_from_nt_status (ret);
       return -1;
     }
 
@@ -203,7 +202,7 @@ fhandler_dev_mem::read (void *ptr, size_t& ulen)
                                 0,
                                 PAGE_READONLY)) != STATUS_SUCCESS)
     {
-      __seterrno_from_win_error (RtlNtStatusToDosError (ret));
+      __seterrno_from_nt_status (ret);
       ulen = (size_t) -1;
       return;
     }
@@ -212,7 +211,7 @@ fhandler_dev_mem::read (void *ptr, size_t& ulen)
 
   if (!NT_SUCCESS (ret = NtUnmapViewOfSection (INVALID_HANDLE_VALUE, viewmem)))
     {
-      __seterrno_from_win_error (RtlNtStatusToDosError (ret));
+      __seterrno_from_nt_status (ret);
       ulen = (size_t) -1;
       return;
     }
@@ -303,7 +302,7 @@ fhandler_dev_mem::mmap (caddr_t *addr, size_t len, DWORD access,
   NTSTATUS ret = NtOpenSection (&h, section_access, &attr);
   if (!NT_SUCCESS (ret))
     {
-      __seterrno_from_win_error (RtlNtStatusToDosError (ret));
+      __seterrno_from_nt_status (ret);
       syscall_printf ("-1 = mmap(): NtOpenSection failed with %E");
       return INVALID_HANDLE_VALUE;
     }
@@ -325,7 +324,7 @@ fhandler_dev_mem::mmap (caddr_t *addr, size_t len, DWORD access,
                                 0,
                                 protect)) != STATUS_SUCCESS)
     {
-      __seterrno_from_win_error (RtlNtStatusToDosError (ret));
+      __seterrno_from_nt_status (ret);
       syscall_printf ("-1 = mmap(): NtMapViewOfSection failed with %E");
       return INVALID_HANDLE_VALUE;
     }
@@ -347,7 +346,7 @@ fhandler_dev_mem::munmap (HANDLE h, caddr_t addr, size_t len)
   NTSTATUS ret;
   if (!NT_SUCCESS (ret = NtUnmapViewOfSection (INVALID_HANDLE_VALUE, addr)))
     {
-      __seterrno_from_win_error (RtlNtStatusToDosError (ret));
+      __seterrno_from_nt_status (ret);
       return -1;
     }
   CloseHandle (h);
@@ -391,7 +390,7 @@ fhandler_dev_mem::fixup_mmap_after_fork (HANDLE h, DWORD access, int flags,
                                 0,
                                 protect)) != STATUS_SUCCESS)
     {
-      __seterrno_from_win_error (RtlNtStatusToDosError (ret));
+      __seterrno_from_nt_status (ret);
       syscall_printf ("-1 = fixup_mmap_after_fork(): NtMapViewOfSection failed with %E");
       return false;
     }
index e4fc918e9373255823b3105ebe9dd9f1433f8a77..2086939ee8edcab31bfd29fb86753f5b5a7aee00 100644 (file)
@@ -477,9 +477,8 @@ format_proc_uptime (char *destbuf, size_t maxsize)
        }
       else if (ret != STATUS_SUCCESS)
        {
-         __seterrno_from_win_error (RtlNtStatusToDosError (ret));
-         debug_printf("NtQuerySystemInformation: ret %d, Dos(ret) %d",
-                      ret, RtlNtStatusToDosError (ret));
+         __seterrno_from_nt_status (ret);
+         debug_printf("NtQuerySystemInformation: ret %d, Dos(ret) %E", ret);
          return 0;
        }
     }
@@ -514,9 +513,8 @@ format_proc_stat (char *destbuf, size_t maxsize)
                                           (PVOID) &sbi, sizeof sbi, NULL))
          != STATUS_SUCCESS)
        {
-         __seterrno_from_win_error (RtlNtStatusToDosError (ret));
-         debug_printf ("NtQuerySystemInformation: ret %d, Dos(ret) %d",
-                       ret, RtlNtStatusToDosError (ret));
+         __seterrno_from_nt_status (ret);
+         debug_printf ("NtQuerySystemInformation: ret %d, Dos(ret) %E", ret);
          sbi.NumberProcessors = 1;
        }
 
@@ -556,9 +554,8 @@ format_proc_stat (char *destbuf, size_t maxsize)
                                        sizeof stodi, NULL);
       if (ret != STATUS_SUCCESS)
        {
-         __seterrno_from_win_error (RtlNtStatusToDosError (ret));
-         debug_printf("NtQuerySystemInformation: ret %d, Dos(ret) %d",
-                      ret, RtlNtStatusToDosError (ret));
+         __seterrno_from_nt_status (ret);
+         debug_printf("NtQuerySystemInformation: ret %d, Dos(ret) %E", ret);
          return 0;
        }
       pages_in = spi.PagesRead;
index 0454e64b0b3d0aff786cd77f3a40f4bbbf6bd0b9..180155f32db542f2c7f40976271a65e570fc026b 100644 (file)
@@ -683,9 +683,8 @@ format_process_stat (_pinfo *p, char *destbuf, size_t maxsize)
                                        sizeof spt, NULL);
       if (ret != STATUS_SUCCESS)
        {
-         __seterrno_from_win_error (RtlNtStatusToDosError (ret));
-         debug_printf ("NtQueryInformationProcess: ret %d, Dos(ret) %d",
-                      ret, RtlNtStatusToDosError (ret));
+         __seterrno_from_nt_status (ret);
+         debug_printf ("NtQueryInformationProcess: ret %d, Dos(ret) %E", ret);
          return 0;
        }
       fault_count = vmc.PageFaultCount;
index e1cda7b443cd6b9388256e0a9c75011b40e9b34d..3c2a1187b6d75728d2cdf23b23ca36e907590a6a 100644 (file)
@@ -1115,7 +1115,7 @@ fhandler_disk_file::mmap (caddr_t *addr, size_t len, DWORD access,
                                         base ? AT_ROUND_TO_PAGE : 0, protect);
       if (ret != STATUS_SUCCESS)
         {
-         __seterrno_from_win_error (RtlNtStatusToDosError (ret));
+         __seterrno_from_nt_status (ret);
          base = NULL;
        }
       else
@@ -1196,7 +1196,7 @@ fhandler_disk_file::fixup_mmap_after_fork (HANDLE h, DWORD access, int flags,
                                         ulen, &phys, &ulen, ViewShare,
                                         AT_ROUND_TO_PAGE, protect);
       if (ret != STATUS_SUCCESS)
-        __seterrno_from_win_error (RtlNtStatusToDosError (ret));
+        __seterrno_from_nt_status (ret);
     }
   else
     base = MapViewOfFileEx (h, access, 0, offset, size, address);
index 44ae8b477ea5853b40ac1ccd9c39cd0acfa0acd2..e74fd8df8822d9918d3e376312aa1e8a80e42429 100644 (file)
@@ -931,7 +931,7 @@ create_token (cygsid &usersid, user_groups &new_groups, struct passwd *pw)
                       &auth_luid, &exp, &user, new_tok_gsids, privs, &owner,
                       &pgrp, &dacl, &source);
   if (ret)
-    __seterrno_from_win_error (RtlNtStatusToDosError (ret));
+    __seterrno_from_nt_status (ret);
   else if (GetLastError () == ERROR_PROC_NOT_FOUND)
     {
       __seterrno ();
@@ -1153,7 +1153,7 @@ write_sd (HANDLE fh, const char *file, security_descriptor &sd)
   if (fh == INVALID_HANDLE_VALUE)      /* CreateFile failed */
     __seterrno ();
   else if (ret != STATUS_SUCCESS)      /* NtSetSecurityObject failed */
-    __seterrno_from_win_error (RtlNtStatusToDosError (ret));
+    __seterrno_from_nt_status (ret);
   else                                 /* Everything's fine. */
     res = 0;
   return res;
@@ -1348,7 +1348,7 @@ get_nt_object_security (HANDLE handle, SE_OBJECT_TYPE object_type,
     }
   if (ret != STATUS_SUCCESS)
     {
-      __seterrno_from_win_error (RtlNtStatusToDosError (ret));
+      __seterrno_from_nt_status (ret);
       return -1;
     }
   return 0;
index 54346f692fdc9ddcbe7d9c1eeebc6aafa1a45fdb..b50688fd46d28b85b2b63d212e4957ab9dd27b5b 100644 (file)
@@ -79,9 +79,9 @@ sysconf (int in)
                                                 sizeof sbi, NULL))
                  != STATUS_SUCCESS)
              {
-               __seterrno_from_win_error (RtlNtStatusToDosError (ret));
-               debug_printf ("NtQuerySystemInformation: ret %d, Dos(ret) %d",
-                             ret, RtlNtStatusToDosError (ret));
+               __seterrno_from_nt_status (ret);
+               debug_printf ("NtQuerySystemInformation: ret %d, Dos(ret) %E",
+                             ret);
                return -1;
              }
            switch (in)
@@ -112,9 +112,9 @@ sysconf (int in)
                                                 sizeof spi, NULL))
                  != STATUS_SUCCESS)
              {
-               __seterrno_from_win_error (RtlNtStatusToDosError (ret));
-               debug_printf ("NtQuerySystemInformation: ret %d, Dos(ret) %d",
-                             ret, RtlNtStatusToDosError (ret));
+               __seterrno_from_nt_status (ret);
+               debug_printf ("NtQuerySystemInformation: ret %d, Dos(ret) %E",
+                             ret);
                return -1;
              }
            return spi.AvailablePages;
This page took 0.048427 seconds and 5 git commands to generate.