From 25dab6dc60abf8e526d47ea9770de2e655868d60 Mon Sep 17 00:00:00 2001 From: Eric Blake Date: Sat, 12 Jul 2008 18:09:17 +0000 Subject: [PATCH] Fix usage of recently fixed Interlocked* functions. * winbase.h (ilockincr, ilockdecr, ilockexch, ilockcmpexch): Add volatile qualifier, to match Interlocked* functions. --- winsup/cygwin/ChangeLog | 15 ++++++++++----- winsup/cygwin/winbase.h | 10 +++++----- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 2bb73d0e8..31a865758 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,9 @@ +2008-07-12 Eric Blake + + Fix usage of recently fixed Interlocked* functions. + * winbase.h (ilockincr, ilockdecr, ilockexch, ilockcmpexch): Add + volatile qualifier, to match Interlocked* functions. + 2008-07-11 Corinna Vinschen * select.cc (peek_pipe): Temporarily revert patch from 2008-05-30. @@ -246,7 +252,7 @@ * fhandler_disk_file.cc (fhandler_disk_file::opendir): Don't try to use FileIdBothDirectoryInformation on NFS shares. Fix comment to explain why. - * path.cc (symlink_info::check): Reinstantiate no_ea. Use in + * path.cc (symlink_info::check): Reinstantiate no_ea. Use in erroneously changed condition. 2008-05-23 Christopher Faylor @@ -385,7 +391,7 @@ 2008-05-20 Corinna Vinschen - * path.cc (symlink_info::check_shortcut): Minimize requested file + * path.cc (symlink_info::check_shortcut): Minimize requested file access flags. (symlink_info::check_sysfile): Ditto. Add missing `else'. (symlink_info::check): Only retry to open file if first try failed @@ -969,7 +975,7 @@ 2008-04-07 Corinna Vinschen - * postinstall: Set IFS to LF only. Change while loop in subshell to + * postinstall: Set IFS to LF only. Change while loop in subshell to for loop in parent shell. Add code to read system mount points and system cygdrive prefix from registry and append them to /etc/fstab. @@ -1036,7 +1042,7 @@ 2008-04-03 Corinna Vinschen Cleanup. - * exceptions.cc (windows_system_directory): Make static. Convert to + * exceptions.cc (windows_system_directory): Make static. Convert to WCHAR. (_cygtls::inside_kernel): Accommodate above change. Check module path name for leading \\?\ and skip, if so. @@ -2163,4 +2169,3 @@ (fhandler_pipe::create): Simplify based on above change. * tty.cc (tty_list::allocate): Remove non-NT code. - diff --git a/winsup/cygwin/winbase.h b/winsup/cygwin/winbase.h index 8e2ea99d5..18f0be344 100644 --- a/winsup/cygwin/winbase.h +++ b/winsup/cygwin/winbase.h @@ -1,6 +1,6 @@ /* winbase.h - Copyright 2002, 2003, 2004 Red Hat, Inc. + Copyright 2002, 2003, 2004, 2008 Red Hat, Inc. This software is a copyrighted work licensed under the terms of the Cygwin license. Please consult the file "CYGWIN_LICENSE" for @@ -12,7 +12,7 @@ details. */ #define _WINBASE2_H extern __inline__ long -ilockincr (long *m) +ilockincr (volatile long *m) { register int __res; __asm__ __volatile__ ("\n\ @@ -24,7 +24,7 @@ ilockincr (long *m) } extern __inline__ long -ilockdecr (long *m) +ilockdecr (volatile long *m) { register int __res; __asm__ __volatile__ ("\n\ @@ -36,7 +36,7 @@ ilockdecr (long *m) } extern __inline__ long -ilockexch (long *t, long v) +ilockexch (volatile long *t, long v) { register int __res; __asm__ __volatile__ ("\n\ @@ -47,7 +47,7 @@ ilockexch (long *t, long v) } extern __inline__ long -ilockcmpexch (long *t, long v, long c) +ilockcmpexch (volatile long *t, long v, long c) { register int __res; __asm__ __volatile__ ("\n\