ReactOS.org
Sign In
Sign Up
Sign In
Sign Up
Manage this list
×
Keyboard Shortcuts
Thread View
j
: Next unread message
k
: Previous unread message
j a
: Jump to all threads
j l
: Jump to MailingList overview
2024
December
November
October
September
August
July
June
May
April
March
February
January
2023
December
November
October
September
August
July
June
May
April
March
February
January
2022
December
November
October
September
August
July
June
May
April
March
February
January
2021
December
November
October
September
August
July
June
May
April
March
February
January
2020
December
November
October
September
August
July
June
May
April
March
February
January
2019
December
November
October
September
August
July
June
May
April
March
February
January
2018
December
November
October
September
August
July
June
May
April
March
February
January
2017
December
November
October
September
August
July
June
May
April
March
February
January
2016
December
November
October
September
August
July
June
May
April
March
February
January
2015
December
November
October
September
August
July
June
May
April
March
February
January
2014
December
November
October
September
August
July
June
May
April
March
February
January
2013
December
November
October
September
August
July
June
May
April
March
February
January
2012
December
November
October
September
August
July
June
May
April
March
February
January
2011
December
November
October
September
August
July
June
May
April
March
February
January
2010
December
November
October
September
August
July
June
May
April
March
February
January
2009
December
November
October
September
August
July
June
May
April
March
February
January
2008
December
November
October
September
August
July
June
May
April
March
February
January
2007
December
November
October
September
August
July
June
May
April
March
February
January
2006
December
November
October
September
August
July
June
May
April
March
February
January
2005
December
November
October
September
August
July
June
May
April
March
February
January
2004
December
November
October
September
August
July
June
May
April
March
February
List overview
Download
Ros-diffs
April 2015
----- 2024 -----
December 2024
November 2024
October 2024
September 2024
August 2024
July 2024
June 2024
May 2024
April 2024
March 2024
February 2024
January 2024
----- 2023 -----
December 2023
November 2023
October 2023
September 2023
August 2023
July 2023
June 2023
May 2023
April 2023
March 2023
February 2023
January 2023
----- 2022 -----
December 2022
November 2022
October 2022
September 2022
August 2022
July 2022
June 2022
May 2022
April 2022
March 2022
February 2022
January 2022
----- 2021 -----
December 2021
November 2021
October 2021
September 2021
August 2021
July 2021
June 2021
May 2021
April 2021
March 2021
February 2021
January 2021
----- 2020 -----
December 2020
November 2020
October 2020
September 2020
August 2020
July 2020
June 2020
May 2020
April 2020
March 2020
February 2020
January 2020
----- 2019 -----
December 2019
November 2019
October 2019
September 2019
August 2019
July 2019
June 2019
May 2019
April 2019
March 2019
February 2019
January 2019
----- 2018 -----
December 2018
November 2018
October 2018
September 2018
August 2018
July 2018
June 2018
May 2018
April 2018
March 2018
February 2018
January 2018
----- 2017 -----
December 2017
November 2017
October 2017
September 2017
August 2017
July 2017
June 2017
May 2017
April 2017
March 2017
February 2017
January 2017
----- 2016 -----
December 2016
November 2016
October 2016
September 2016
August 2016
July 2016
June 2016
May 2016
April 2016
March 2016
February 2016
January 2016
----- 2015 -----
December 2015
November 2015
October 2015
September 2015
August 2015
July 2015
June 2015
May 2015
April 2015
March 2015
February 2015
January 2015
----- 2014 -----
December 2014
November 2014
October 2014
September 2014
August 2014
July 2014
June 2014
May 2014
April 2014
March 2014
February 2014
January 2014
----- 2013 -----
December 2013
November 2013
October 2013
September 2013
August 2013
July 2013
June 2013
May 2013
April 2013
March 2013
February 2013
January 2013
----- 2012 -----
December 2012
November 2012
October 2012
September 2012
August 2012
July 2012
June 2012
May 2012
April 2012
March 2012
February 2012
January 2012
----- 2011 -----
December 2011
November 2011
October 2011
September 2011
August 2011
July 2011
June 2011
May 2011
April 2011
March 2011
February 2011
January 2011
----- 2010 -----
December 2010
November 2010
October 2010
September 2010
August 2010
July 2010
June 2010
May 2010
April 2010
March 2010
February 2010
January 2010
----- 2009 -----
December 2009
November 2009
October 2009
September 2009
August 2009
July 2009
June 2009
May 2009
April 2009
March 2009
February 2009
January 2009
----- 2008 -----
December 2008
November 2008
October 2008
September 2008
August 2008
July 2008
June 2008
May 2008
April 2008
March 2008
February 2008
January 2008
----- 2007 -----
December 2007
November 2007
October 2007
September 2007
August 2007
July 2007
June 2007
May 2007
April 2007
March 2007
February 2007
January 2007
----- 2006 -----
December 2006
November 2006
October 2006
September 2006
August 2006
July 2006
June 2006
May 2006
April 2006
March 2006
February 2006
January 2006
----- 2005 -----
December 2005
November 2005
October 2005
September 2005
August 2005
July 2005
June 2005
May 2005
April 2005
March 2005
February 2005
January 2005
----- 2004 -----
December 2004
November 2004
October 2004
September 2004
August 2004
July 2004
June 2004
May 2004
April 2004
March 2004
February 2004
ros-diffs@reactos.org
17 participants
481 discussions
Start a n
N
ew thread
[tkreuzer] 67174: [KMTEST] Remove now obsolete definitions
by tkreuzer@svn.reactos.org
Author: tkreuzer Date: Sun Apr 12 12:42:50 2015 New Revision: 67174 URL:
http://svn.reactos.org/svn/reactos?rev=67174&view=rev
Log: [KMTEST] Remove now obsolete definitions Modified: trunk/rostests/kmtests/ntos_ex/ExInterlocked.c Modified: trunk/rostests/kmtests/ntos_ex/ExInterlocked.c URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/kmtests/ntos_ex/ExInterlo…
============================================================================== --- trunk/rostests/kmtests/ntos_ex/ExInterlocked.c [iso-8859-1] (original) +++ trunk/rostests/kmtests/ntos_ex/ExInterlocked.c [iso-8859-1] Sun Apr 12 12:42:50 2015 @@ -257,14 +257,6 @@ ok_eq_print(Value##Type.QuadPart, ExpectedValue, Print); \ } while (0) -/* TODO: missing in wdm.h! */ -#define InterlockedCompareExchangeAcquire InterlockedCompareExchange -#define InterlockedCompareExchangeRelease InterlockedCompareExchange -#define InterlockedIncrementAcquire InterlockedIncrement -#define InterlockedIncrementRelease InterlockedIncrement -#define InterlockedDecrementAcquire InterlockedDecrement -#define InterlockedDecrementRelease InterlockedDecrement - static VOID TestInterlockedFunctional(VOID)
9 years, 8 months
1
0
0
0
[tkreuzer] 67173: [INCLUDE] Fix the Interlocked function mess. Implement all Interlocked functions in xdk/interlocked.h as they exist in native. Use this header to generate wdm.h and winnt.h. Remov...
by tkreuzer@svn.reactos.org
Author: tkreuzer Date: Sun Apr 12 12:40:49 2015 New Revision: 67173 URL:
http://svn.reactos.org/svn/reactos?rev=67173&view=rev
Log: [INCLUDE] Fix the Interlocked function mess. Implement all Interlocked functions in xdk/interlocked.h as they exist in native. Use this header to generate wdm.h and winnt.h. Remove Interlocked definitions from winbase.h. Fix definition of ExInterlockedAddLargeInteger. Modified: trunk/reactos/include/ddk/ntddk.h trunk/reactos/include/ddk/wdm.h trunk/reactos/include/psdk/winbase.h trunk/reactos/include/psdk/winnt.h trunk/reactos/include/xdk/exfuncs.h trunk/reactos/include/xdk/interlocked.h trunk/reactos/include/xdk/winnt.template.h trunk/reactos/include/xdk/winnt_old.h Modified: trunk/reactos/include/ddk/ntddk.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/ddk/ntddk.h?rev=67…
============================================================================== --- trunk/reactos/include/ddk/ntddk.h [iso-8859-1] (original) +++ trunk/reactos/include/ddk/ntddk.h [iso-8859-1] Sun Apr 12 12:40:49 2015 @@ -3342,6 +3342,8 @@ #elif defined(_M_MIPS) #elif defined(_M_ARM) + +#define KeMemoryBarrierWithoutFence() _ReadWriteBarrier() #else #error Unknown Architecture #endif Modified: trunk/reactos/include/ddk/wdm.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/ddk/wdm.h?rev=6717…
============================================================================== --- trunk/reactos/include/ddk/wdm.h [iso-8859-1] (original) +++ trunk/reactos/include/ddk/wdm.h [iso-8859-1] Sun Apr 12 12:40:49 2015 @@ -242,145 +242,533 @@ #define BitTestAndComplement _bittestandcomplement #define BitTestAndSet _bittestandset #define BitTestAndReset _bittestandreset -#define InterlockedBitTestAndSet _interlockedbittestandset -#define InterlockedBitTestAndReset _interlockedbittestandreset - -#ifdef _M_AMD64 +#ifdef _WIN64 #define BitScanForward64 _BitScanForward64 #define BitScanReverse64 _BitScanReverse64 #define BitTest64 _bittest64 #define BitTestAndComplement64 _bittestandcomplement64 #define BitTestAndSet64 _bittestandset64 #define BitTestAndReset64 _bittestandreset64 +#endif /* _WIN64 */ + +#if defined(_M_ARM) || defined(_M_IA64) +#define __ACQ_(x) x##_acq +#define __REL_(x) x##_rel +#define __NF_(x) x##_nf +#else +#define __ACQ_(x) x +#define __REL_(x) x +#define __NF_(x) x +#endif + +#define InterlockedBitTestAndSet _interlockedbittestandset +#define InterlockedBitTestAndSetAcquire __ACQ_(_interlockedbittestandset) +#define InterlockedBitTestAndSetRelease __REL_(_interlockedbittestandset) +#define InterlockedBitTestAndSetNoFence __NF_(_interlockedbittestandset) + +#define InterlockedBitTestAndReset _interlockedbittestandreset +#define InterlockedBitTestAndResetAcquire __ACQ_(_interlockedbittestandreset) +#define InterlockedBitTestAndResetRelease __REL_(_interlockedbittestandreset) +#define InterlockedBitTestAndResetNoFence __NF_(_interlockedbittestandreset) + +#ifdef _WIN64 #define InterlockedBitTestAndSet64 _interlockedbittestandset64 +#define InterlockedBitTestAndSet64Acquire __ACQ_(_interlockedbittestandset64) +#define InterlockedBitTestAndSet64Release __REL_(_interlockedbittestandset64) +#define InterlockedBitTestAndSet64NoFence __NF_(_interlockedbittestandset64) + #define InterlockedBitTestAndReset64 _interlockedbittestandreset64 -#endif - -#if !defined(__INTERLOCKED_DECLARED) -#define __INTERLOCKED_DECLARED - -#if defined (_X86_) -#if defined(NO_INTERLOCKED_INTRINSICS) -NTKERNELAPI -LONG -FASTCALL -InterlockedIncrement( - _Inout_ _Interlocked_operand_ LONG volatile *Addend); - -NTKERNELAPI -LONG -FASTCALL -InterlockedDecrement( - _Inout_ _Interlocked_operand_ LONG volatile *Addend); - -NTKERNELAPI -LONG -FASTCALL -InterlockedCompareExchange( - _Inout_ _Interlocked_operand_ LONG volatile *Destination, - _In_ LONG Exchange, - _In_ LONG Comparand); - -NTKERNELAPI -LONG -FASTCALL -InterlockedExchange( - _Inout_ _Interlocked_operand_ LONG volatile *Destination, - _In_ LONG Value); - -NTKERNELAPI -LONG -FASTCALL -InterlockedExchangeAdd( - _Inout_ _Interlocked_operand_ LONG volatile *Addend, - _In_ LONG Value); - -#else /* !defined(NO_INTERLOCKED_INTRINSICS) */ +#define InterlockedBitTestAndReset64Acquire __ACQ_(_interlockedbittestandreset64) +#define InterlockedBitTestAndReset64Release __REL_(_interlockedbittestandreset64) +#define InterlockedBitTestAndReset64NoFence __NF_(_interlockedbittestandreset64) +#endif /* _WIN64 */ + +#define InterlockedAdd _InterlockedAdd +#define InterlockedAddAcquire __ACQ_(_InterlockedAdd) +#define InterlockedAddRelease __REL_(_InterlockedAdd) +#define InterlockedAddNoFence __NF_(_InterlockedAdd) + +#define InterlockedAdd64 _InterlockedAdd64 +#define InterlockedAddAcquire64 __ACQ_(_InterlockedAdd64) +#define InterlockedAddRelease64 __REL_(_InterlockedAdd64) +#define InterlockedAddNoFence64 __NF_(_InterlockedAdd64) + +#define InterlockedAnd _InterlockedAnd +#define InterlockedAndAcquire __ACQ_(_InterlockedAnd) +#define InterlockedAndRelease __REL_(_InterlockedAnd) +#define InterlockedAndNoFence __NF_(_InterlockedAnd) + +#define InterlockedAnd8 _InterlockedAnd8 +#ifdef _M_ARM +#define InterlockedAndAcquire8 _InterlockedAnd8_acq +#define InterlockedAndRelease8 _InterlockedAnd8_rel +#define InterlockedAndNoFence8 _InterlockedAnd8_nf +#elif defined(_M_IA64) +#define InterlockedAnd8Acquire _InterlockedAnd8_acq +#define InterlockedAnd8Release _InterlockedAnd8_rel +#endif // _M_ARM + +#define InterlockedAnd16 _InterlockedAnd16 +#ifdef _M_ARM +#define InterlockedAndAcquire16 _InterlockedAnd16_acq +#define InterlockedAndRelease16 _InterlockedAnd16_rel +#define InterlockedAndNoFence16 _InterlockedAnd16_nf +#elif defined(_M_IA64) +#define InterlockedAnd16Acquire _InterlockedAnd16_acq +#define InterlockedAnd16Release _InterlockedAnd16_rel +#endif // _M_ARM + +#define InterlockedAnd64 _InterlockedAnd64 +#ifdef _M_ARM +#define InterlockedAndAcquire64 __ACQ_(_InterlockedAnd64) +#define InterlockedAndRelease64 __REL_(_InterlockedAnd64) +#define InterlockedAndNoFence64 __NF_(_InterlockedAnd64) +#else // _M_ARM +#define InterlockedAnd64Acquire __ACQ_(_InterlockedAnd64) +#define InterlockedAnd64Release __REL_(_InterlockedAnd64) +#define InterlockedAnd64NoFence __NF_(_InterlockedAnd64) +#endif // _M_ARM + +#ifdef _WIN64 +#define InterlockedAndAffinity InterlockedAnd64 +#else +#define InterlockedAndAffinity InterlockedAnd +#endif // _WIN64 + +#define InterlockedCompareExchange _InterlockedCompareExchange +#define InterlockedCompareExchangeAcquire __ACQ_(_InterlockedCompareExchange) +#define InterlockedCompareExchangeRelease __REL_(_InterlockedCompareExchange) +#define InterlockedCompareExchangeNoFence __NF_(_InterlockedCompareExchange) + +#define InterlockedCompareExchange16 _InterlockedCompareExchange16 +#define InterlockedCompareExchangeAcquire16 __ACQ_(_InterlockedCompareExchange16) +#define InterlockedCompareExchangeRelease16 __REL_(_InterlockedCompareExchange16) +#define InterlockedCompareExchangeNoFence16 __NF_(_InterlockedCompareExchange16) + +#define InterlockedCompareExchange64 _InterlockedCompareExchange64 +#define InterlockedCompareExchangeAcquire64 __ACQ_(_InterlockedCompareExchange64) +#define InterlockedCompareExchangeRelease64 __REL_(_InterlockedCompareExchange64) +#define InterlockedCompareExchangeNoFence64 __NF_(_InterlockedCompareExchange64) + +#ifdef _WIN64 +#define InterlockedCompareExchange128 _InterlockedCompareExchange128 +#endif // _WIN64 + +#ifdef _M_IA64 +#define InterlockedCompare64Exchange128 _InterlockedCompare64Exchange128 +#define InterlockedCompare64ExchangeAcquire128 _InterlockedCompare64Exchange128_acq +#define InterlockedCompare64ExchangeRelease128 _InterlockedCompare64Exchange128_rel +#endif // _M_IA64 + +#define InterlockedCompareExchangePointer _InterlockedCompareExchangePointer +#define InterlockedCompareExchangePointerAcquire __ACQ_(_InterlockedCompareExchangePointer) +#define InterlockedCompareExchangePointerRelease __REL_(_InterlockedCompareExchangePointer) +#define InterlockedCompareExchangePointerNoFence __NF_(_InterlockedCompareExchangePointer) + +#define InterlockedDecrement _InterlockedDecrement +#define InterlockedDecrementAcquire __ACQ_(_InterlockedDecrement) +#define InterlockedDecrementRelease __REL_(_InterlockedDecrement) +#define InterlockedDecrementNoFence __NF_(_InterlockedDecrement) + +#define InterlockedDecrement16 _InterlockedDecrement16 +#define InterlockedDecrementAcquire16 __ACQ_(_InterlockedDecrement16) +#define InterlockedDecrementRelease16 __REL_(_InterlockedDecrement16) +#define InterlockedDecrementNoFence16 __NF_(_InterlockedDecrement16) + +#define InterlockedDecrement64 _InterlockedDecrement64 +#define InterlockedDecrementAcquire64 __ACQ_(_InterlockedDecrement64) +#define InterlockedDecrementRelease64 __REL_(_InterlockedDecrement64) +#define InterlockedDecrementNoFence64 __NF_(_InterlockedDecrement64) + +#ifdef _WIN64 +#define InterlockedDecrementSizeT(a) InterlockedDecrement64((LONG64 *)a) +#define InterlockedDecrementSizeTNoFence(a) InterlockedDecrementNoFence64((LONG64 *)a) +#else +#define InterlockedDecrementSizeT(a) InterlockedDecrement((LONG *)a) +#define InterlockedDecrementSizeTNoFence(a) InterlockedDecrementNoFence((LONG *)a) +#endif // _WIN64 #define InterlockedExchange _InterlockedExchange +#define InterlockedExchangeAcquire __ACQ_(_InterlockedExchange) +/* No release here */ +#define InterlockedExchangeNoFence __NF_(_InterlockedExchange) + +#if (_MSC_VER >= 1600) +#define InterlockedExchange8 _InterlockedExchange8 +#endif // (_MSC_VER >= 1600) + +#define InterlockedExchange16 _InterlockedExchange16 +/* No release here */ +#define InterlockedExchangeAcquire16 __ACQ_(_InterlockedExchange16) +#define InterlockedExchangeNoFence16 __NF_(_InterlockedExchange16) + +#define InterlockedExchange64 _InterlockedExchange64 +#define InterlockedExchangeAcquire64 __ACQ_(_InterlockedExchange64) +/* No release here */ +#define InterlockedExchangeNoFence64 __NF_(_InterlockedExchange64) + +#define InterlockedExchangePointer _InterlockedExchangePointer +#define InterlockedExchangePointerAcquire __ACQ_(_InterlockedExchangePointer) +/* No release here */ +#define InterlockedExchangePointerNoFence __NF_(_InterlockedExchangePointer) + +#define InterlockedExchangeAdd _InterlockedExchangeAdd +#define InterlockedExchangeAddAcquire __ACQ_(_InterlockedExchangeAdd) +#define InterlockedExchangeAddRelease __REL_(_InterlockedExchangeAdd) +#define InterlockedExchangeAddNoFence __NF_(_InterlockedExchangeAdd) + +#define InterlockedExchangeAdd64 _InterlockedExchangeAdd64 +#define InterlockedExchangeAddAcquire64 __ACQ_(_InterlockedExchangeAdd64) +#define InterlockedExchangeAddRelease64 __REL_(_InterlockedExchangeAdd64) +#define InterlockedExchangeAddNoFence64 __NF_(_InterlockedExchangeAdd64) + +#ifdef _WIN64 +#define InterlockedExchangeAddSizeT(a, b) InterlockedExchangeAdd64((LONG64 *)a, b) +#define InterlockedExchangeAddSizeTAcquire(a, b) InterlockedExchangeAddAcquire64((LONG64 *)a, b) +#define InterlockedExchangeAddSizeTNoFence(a, b) InterlockedExchangeAddNoFence64((LONG64 *)a, b) +#else +#define InterlockedExchangeAddSizeT(a, b) InterlockedExchangeAdd((LONG *)a, b) +#define InterlockedExchangeAddSizeTAcquire(a, b) InterlockedExchangeAddAcquire((LONG *)a, b) +#define InterlockedExchangeAddSizeTNoFence(a, b) InterlockedExchangeAddNoFence((LONG *)a, b) +#endif // _WIN64 + #define InterlockedIncrement _InterlockedIncrement -#define InterlockedDecrement _InterlockedDecrement -#define InterlockedExchangeAdd _InterlockedExchangeAdd -#define InterlockedCompareExchange _InterlockedCompareExchange +#define InterlockedIncrementAcquire __ACQ_(_InterlockedIncrement) +#define InterlockedIncrementRelease __REL_(_InterlockedIncrement) +#define InterlockedIncrementNoFence __NF_(_InterlockedIncrement) + +#define InterlockedIncrement16 _InterlockedIncrement16 +#define InterlockedIncrementAcquire16 __ACQ_(_InterlockedIncrement16) +#define InterlockedIncrementRelease16 __REL_(_InterlockedIncrement16) +#define InterlockedIncrementNoFence16 __NF_(_InterlockedIncrement16) + +#define InterlockedIncrement64 _InterlockedIncrement64 +#define InterlockedIncrementAcquire64 __ACQ_(_InterlockedIncrement64) +#define InterlockedIncrementRelease64 __REL_(_InterlockedIncrement64) +#define InterlockedIncrementNoFence64 __NF_(_InterlockedIncrement64) + +#ifdef _WIN64 +#define InterlockedIncrementSizeT(a) InterlockedIncrement64((LONG64 *)a) +#define InterlockedIncrementSizeTNoFence(a) InterlockedIncrementNoFence64((LONG64 *)a) +#else +#define InterlockedIncrementSizeT(a) InterlockedIncrement((LONG *)a) +#define InterlockedIncrementSizeTNoFence(a) InterlockedIncrementNoFence((LONG *)a) +#endif // _WIN64 + #define InterlockedOr _InterlockedOr -#define InterlockedAnd _InterlockedAnd +#define InterlockedOrAcquire __ACQ_(_InterlockedOr) +#define InterlockedOrRelease __REL_(_InterlockedOr) +#define InterlockedOrNoFence __NF_(_InterlockedOr) + +#define InterlockedOr8 _InterlockedOr8 +#ifdef _M_ARM +#define InterlockedOrAcquire8 _InterlockedOr8_acq +#define InterlockedOrRelease8 _InterlockedOr8_rel +#define InterlockedOrNoFence8 _InterlockedOr8_nf +#elif defined(_M_IA64) +#define InterlockedOr8Acquire _InterlockedOr8_acq +#define InterlockedOr8Release _InterlockedOr8_rel +#endif // _M_ARM + +#define InterlockedOr16 _InterlockedOr16 +#ifdef _M_ARM +#define InterlockedOrAcquire16 _InterlockedOr16_acq +#define InterlockedOrRelease16 _InterlockedOr16_rel +#define InterlockedOrNoFence16 _InterlockedOr16_nf +#elif defined(_M_IA64) +#define InterlockedOr16Acquire _InterlockedOr16_acq +#define InterlockedOr16Release _InterlockedOr16_rel +#endif // _M_ARM + +#define InterlockedOr64 _InterlockedOr64 +#ifdef _M_ARM +#define InterlockedOrAcquire64 _InterlockedOr64_acq +#define InterlockedOrRelease64 _InterlockedOr64_rel +#define InterlockedOrNoFence64 _InterlockedOr64_nf +#elif defined(_M_IA64) || defined(_M_AMD64) +#define InterlockedOr64Acquire __ACQ_(_InterlockedOr64) +#define InterlockedOr64Release __REL_(_InterlockedOr64) +#define InterlockedOr64NoFence __NF_(_InterlockedOr64) +#endif // _M_ARM + +#ifdef _WIN64 +#define InterlockedOrAffinity InterlockedOr64 +#else +#define InterlockedOrAffinity InterlockedOr +#endif // _WIN64 + #define InterlockedXor _InterlockedXor - -#endif /* !defined(NO_INTERLOCKED_INTRINSICS) */ - -#endif /* defined (_X86_) */ - -#if !defined (_WIN64) -/* - * PVOID - * InterlockedExchangePointer( - * IN OUT PVOID volatile *Target, - * IN PVOID Value) - */ -#define InterlockedExchangePointer(Target, Value) \ - ((PVOID) InterlockedExchange((PLONG) Target, (LONG) Value)) - -/* - * PVOID - * InterlockedCompareExchangePointer( - * IN OUT PVOID *Destination, - * IN PVOID Exchange, - * IN PVOID Comparand) - */ -#define InterlockedCompareExchangePointer(Destination, Exchange, Comparand) \ - ((PVOID) InterlockedCompareExchange((PLONG) Destination, (LONG) Exchange, (LONG) Comparand)) - -#define InterlockedExchangeAddSizeT(a, b) InterlockedExchangeAdd((LONG *)a, b) -#define InterlockedIncrementSizeT(a) InterlockedIncrement((LONG *)a) -#define InterlockedDecrementSizeT(a) InterlockedDecrement((LONG *)a) - -#endif // !defined (_WIN64) - -#if defined (_M_AMD64) - -#define InterlockedExchangeAddSizeT(a, b) InterlockedExchangeAdd64((LONGLONG *)a, (LONGLONG)b) -#define InterlockedIncrementSizeT(a) InterlockedIncrement64((LONGLONG *)a) -#define InterlockedDecrementSizeT(a) InterlockedDecrement64((LONGLONG *)a) -#define InterlockedAnd _InterlockedAnd -#define InterlockedOr _InterlockedOr -#define InterlockedXor _InterlockedXor -#define InterlockedIncrement _InterlockedIncrement -#define InterlockedDecrement _InterlockedDecrement -#define InterlockedAdd _InterlockedAdd -#define InterlockedExchange _InterlockedExchange -#define InterlockedExchangeAdd _InterlockedExchangeAdd -#define InterlockedCompareExchange _InterlockedCompareExchange -#define InterlockedAnd64 _InterlockedAnd64 -#define InterlockedOr64 _InterlockedOr64 +#define InterlockedXorAcquire __ACQ_(_InterlockedXor) +#define InterlockedXorRelease __REL_(_InterlockedXor) +#define InterlockedXorNoFence __NF_(_InterlockedXor) + +#define InterlockedXor8 _InterlockedXor8 +#ifdef _M_ARM +#define InterlockedXorAcquire8 _InterlockedXor8_acq +#define InterlockedXorRelease8 _InterlockedXor8_rel +#define InterlockedXorNoFence8 _InterlockedXor8_nf +#elif defined(_M_IA64) +#define InterlockedXor8Acquire _InterlockedXor8_acq +#define InterlockedXor8Release _InterlockedXor8_rel +#endif /* _M_ARM */ + +#define InterlockedXor16 _InterlockedXor16 +#ifdef _M_ARM +#define InterlockedXorAcquire16 _InterlockedXor16_acq +#define InterlockedXorRelease16 _InterlockedXor16_rel +#define InterlockedXorNoFence16 _InterlockedXor16_nf +#elif defined(_M_IA64) +#define InterlockedXor16Acquire _InterlockedXor16_acq +#define InterlockedXor16Release _InterlockedXor16_rel +#endif /* _M_ARM */ + #define InterlockedXor64 _InterlockedXor64 -#define InterlockedIncrement64 _InterlockedIncrement64 -#define InterlockedDecrement64 _InterlockedDecrement64 -#define InterlockedAdd64 _InterlockedAdd64 -#define InterlockedExchange64 _InterlockedExchange64 -#define InterlockedExchangeAdd64 _InterlockedExchangeAdd64 -#define InterlockedCompareExchange64 _InterlockedCompareExchange64 -#define InterlockedCompareExchangePointer _InterlockedCompareExchangePointer -#define InterlockedExchangePointer _InterlockedExchangePointer -#define InterlockedBitTestAndSet64 _interlockedbittestandset64 -#define InterlockedBitTestAndReset64 _interlockedbittestandreset64 - -#endif // _M_AMD64 - -#if defined(_M_AMD64) && !defined(RC_INVOKED) && !defined(MIDL_PASS) -//#if !defined(_X86AMD64_) // FIXME: what's _X86AMD64_ used for? +#ifdef _M_ARM +#define InterlockedXorAcquire64 _InterlockedXor64_acq +#define InterlockedXorRelease64 _InterlockedXor64_rel +#define InterlockedXorNoFence64 _InterlockedXor64_nf +#elif defined(_M_IA64) || defined(_M_AMD64) +#define InterlockedXor64Acquire __ACQ_(_InterlockedXor64) +#define InterlockedXor64Release __REL_(_InterlockedXor64) +#define InterlockedXor64NoFence __NF_(_InterlockedXor64) +#endif /* _M_ARM */ + +#ifdef _M_IX86 + FORCEINLINE LONG64 -InterlockedAdd64( - _Inout_ _Interlocked_operand_ LONG64 volatile *Addend, +_InterlockedExchange64( + _Inout_ _Interlocked_operand_ volatile LONG64 *Target, _In_ LONG64 Value) { - return InterlockedExchangeAdd64(Addend, Value) + Value; + LONG64 Old, Prev; + for (Old = *Target; ; Old = Prev) + { + Prev = _InterlockedCompareExchange64(Target, Value, Old); + if (Prev == Old) + return Prev; + } } -//#endif -#endif - -#endif /* !__INTERLOCKED_DECLARED */ - + +FORCEINLINE +LONG64 +_InterlockedAdd64( + _Inout_ _Interlocked_operand_ volatile LONG64 *Target, + _In_ LONG64 Value) +{ + LONG64 Old, Prev, New; + for (Old = *Target; ; Old = Prev) + { + New = Old + Value; + Prev = _InterlockedCompareExchange64(Target, New, Old); + if (Prev == Old) + return New; + } +} + +FORCEINLINE +LONG64 +_InterlockedExchangeAdd64 ( + _Inout_ _Interlocked_operand_ volatile LONG64 *Target, + _In_ LONG64 Value + ) +{ + LONG64 Old, Prev, New; + for (Old = *Target; ; Old = Prev) + { + New = Old + Value; + Prev = _InterlockedCompareExchange64(Target, New, Old); + if (Prev == Old) + return Prev; + } +} + +FORCEINLINE +LONG64 +_InterlockedAnd64( + _Inout_ _Interlocked_operand_ volatile LONG64 *Target, + _In_ LONG64 Value) +{ + LONG64 Old, Prev, New; + for (Old = *Target; ; Old = Prev) + { + New = Old & Value; + Prev = _InterlockedCompareExchange64(Target, New, Old); + if (Prev == Old) + return New; + } +} + +FORCEINLINE +LONG64 +_InterlockedOr64( + _Inout_ _Interlocked_operand_ volatile LONG64 *Target, + _In_ LONG64 Value) +{ + LONG64 Old, Prev, New; + for (Old = *Target; ; Old = Prev) + { + New = Old | Value; + Prev = _InterlockedCompareExchange64(Target, New, Old); + if (Prev == Old) + return New; + } +} + +FORCEINLINE +LONG64 +_InterlockedXor64( + _Inout_ _Interlocked_operand_ volatile LONG64 *Target, + _In_ LONG64 Value) +{ + LONG64 Old, Prev, New; + for (Old = *Target; ; Old = Prev) + { + New = Old ^ Value; + Prev = _InterlockedCompareExchange64(Target, New, Old); + if (Prev == Old) + return New; + } +} + +FORCEINLINE +LONG64 +_InterlockedIncrement64( + _Inout_ _Interlocked_operand_ volatile LONG64 *Target) +{ + return _InterlockedAdd64(Target, 1); +} + +FORCEINLINE +LONG64 +_InterlockedDecrement64( + _Inout_ _Interlocked_operand_ volatile LONG64 *Target) +{ + return _InterlockedAdd64(Target, -1); +} + +#undef _InterlockedExchangePointer +#define _InterlockedExchangePointer _InlineInterlockedExchangePointer +FORCEINLINE +_Ret_writes_(_Inexpressible_(Unknown)) +PVOID +_InterlockedExchangePointer( + _Inout_ _At_(*Destination, _Pre_writable_byte_size_(_Inexpressible_(Unknown)) + _Post_writable_byte_size_(_Inexpressible_(Unknown))) + _Interlocked_operand_ volatile PVOID *Destination, + _In_opt_ PVOID Value) +{ + return (PVOID)InterlockedExchange((volatile long *)Destination, (long)Value); +} + +#undef _InterlockedCompareExchangePointer +#define _InterlockedCompareExchangePointer _InlineInterlockedCompareExchangePointer +FORCEINLINE +_Ret_writes_(_Inexpressible_(Unknown)) +PVOID +_InterlockedCompareExchangePointer( + _Inout_ _At_(*Destination, _Pre_writable_byte_size_(_Inexpressible_(Unknown)) + _Post_writable_byte_size_(_Inexpressible_(Unknown))) + _Interlocked_operand_ volatile PVOID *Destination, + _In_opt_ PVOID ExChange, + _In_opt_ PVOID Comperand) +{ + return (PVOID)InterlockedCompareExchange((volatile long *)Destination, + (long)ExChange, + (long)Comperand); +} + +#endif /* _M_IX86 */ + +#ifdef _M_AMD64 + +FORCEINLINE +LONG64 +_InterlockedAdd64( + _Inout_ _Interlocked_operand_ volatile LONG64 *Target, + _In_ LONG64 Value) + +{ + return _InterlockedExchangeAdd64(Target, Value) + Value; +} + +#endif /* _M_AMD64 */ + +#ifdef _M_IA64 + +#undef _InterlockedBitTestAndSet +#define _InterlockedBitTestAndSet InterlockedBitTestAndSet_Inline +FORCEINLINE +BOOLEAN +_InterlockedBitTestAndSet( + _Inout_ _Interlocked_operand_ volatile LONG *Target, + _In_ LONG Bit) +{ + ULONG Mask = 1 << (Bit & 31); + return (BOOLEAN)((InterlockedOr(&Target[Bit / 32], Mask) & Mask) != 0); +} + +#undef _InterlockedBitTestAndReset +#define _InterlockedBitTestAndReset InterlockedBitTestAndReset_Inline +FORCEINLINE +BOOLEAN +_InterlockedBitTestAndReset( + _Inout_ _Interlocked_operand_ volatile LONG *Target, + _In_ LONG Bit) +{ + ULONG Mask = 1 << (Bit & 31); + return (BOOLEAN)((InterlockedAnd(&Target[Bit / 32], ~Mask) & Mask) != 0); +} + +#undef _InterlockedBitTestAndSet64 +#define _InterlockedBitTestAndSet64 InterlockedBitTestAndSet64_Inline +FORCEINLINE +BOOLEAN +_InterlockedBitTestAndSet64( + _Inout_ _Interlocked_operand_ volatile LONG64 *Target, + _In_ LONG64 Bit) +{ + ULONG64 Mask = 1LL << (Bit & 63); + return (BOOLEAN)((InterlockedOr64(&Target[Bit / 64], Mask) & Mask) != 0); +} + +#undef _InterlockedBitTestAndReset64 +#define _InterlockedBitTestAndReset64 InterlockedBitTestAndReset64_Inline +FORCEINLINE +BOOLEAN +_InterlockedBitTestAndReset64( + _Inout_ _Interlocked_operand_ volatile LONG64 *Target, + _In_ LONG64 Bit) +{ + ULONG64 Mask = 1LL << (Bit & 63); + return (BOOLEAN)((InterlockedAnd64(&Target[Bit / 64], ~Mask) & Mask) != 0); +} + +#undef _InterlockedBitTestAndComplement +#define _InterlockedBitTestAndComplement InterlockedBitTestAndComplement_Inline +FORCEINLINE +BOOLEAN +_InterlockedBitTestAndComplement( + _Inout_ _Interlocked_operand_ volatile LONG *Target, + _In_ LONG Bit) +{ + ULONG Mask = 1 << (Bit & 31); + return (BOOLEAN)((InterlockedXor(&Target[Bit / 32], Mask) & Mask) != 0); +} + +#undef _InterlockedBitTestAndComplement64 +#define _InterlockedBitTestAndComplement64 InterlockedBitTestAndComplement64_Inline +FORCEINLINE +BOOLEAN +_InterlockedBitTestAndComplement64( + _Inout_ _Interlocked_operand_ volatile LONG64 *Target, + _In_ LONG64 Bit) +{ + ULONG64 Mask = 1LL << (Bit & 63); + return (BOOLEAN)((InterlockedXor64(&Target[Bit / 64], Mask) & Mask) != 0); +} + +#endif /* M_IA64 */ /****************************************************************************** * Runtime Library Types * @@ -14884,12 +15272,12 @@ _In_ LARGE_INTEGER Increment, _Inout_ _Requires_lock_not_held_(*_Curr_) PKSPIN_LOCK Lock); -#if defined(_WIN64) +#if !defined(_M_IX86) #define ExInterlockedAddLargeStatistic(Addend, Increment) \ (VOID)InterlockedAdd64(&(Addend)->QuadPart, Increment) #else #define ExInterlockedAddLargeStatistic(Addend, Increment) \ - _InterlockedAddLargeStatistic((PLONGLONG)&(Addend)->QuadPart, Increment) + (VOID)_InterlockedAddLargeStatistic((PLONGLONG)&(Addend)->QuadPart, Increment) #endif NTKERNELAPI Modified: trunk/reactos/include/psdk/winbase.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/winbase.h?rev…
============================================================================== --- trunk/reactos/include/psdk/winbase.h [iso-8859-1] (original) +++ trunk/reactos/include/psdk/winbase.h [iso-8859-1] Sun Apr 12 12:40:49 2015 @@ -2403,143 +2403,6 @@ #if (_WIN32_WINNT >= 0x0600) VOID WINAPI InitializeSRWLock(PSRWLOCK); #endif -#ifndef __INTERLOCKED_DECLARED -#define __INTERLOCKED_DECLARED - -#if defined (_M_AMD64) || defined (_M_IA64) - -#define InterlockedAnd _InterlockedAnd -#define InterlockedOr _InterlockedOr -#define InterlockedXor _InterlockedXor -#define InterlockedIncrement _InterlockedIncrement -#define InterlockedIncrementAcquire InterlockedIncrement -#define InterlockedIncrementRelease InterlockedIncrement -#define InterlockedDecrement _InterlockedDecrement -#define InterlockedDecrementAcquire InterlockedDecrement -#define InterlockedDecrementRelease InterlockedDecrement -#define InterlockedExchange _InterlockedExchange -#define InterlockedExchangeAdd _InterlockedExchangeAdd -#define InterlockedCompareExchange _InterlockedCompareExchange -#define InterlockedCompareExchangeAcquire InterlockedCompareExchange -#define InterlockedCompareExchangeRelease InterlockedCompareExchange -#define InterlockedExchangePointer _InterlockedExchangePointer -#define InterlockedCompareExchangePointer _InterlockedCompareExchangePointer -#define InterlockedCompareExchangePointerAcquire _InterlockedCompareExchangePointer -#define InterlockedCompareExchangePointerRelease _InterlockedCompareExchangePointer -#define InterlockedAnd64 _InterlockedAnd64 -#define InterlockedOr64 _InterlockedOr64 -#define InterlockedXor64 _InterlockedXor64 -#define InterlockedIncrement64 _InterlockedIncrement64 -#define InterlockedDecrement64 _InterlockedDecrement64 -#define InterlockedExchange64 _InterlockedExchange64 -#define InterlockedExchangeAdd64 _InterlockedExchangeAdd64 -#define InterlockedCompareExchange64 _InterlockedCompareExchange64 -#define InterlockedCompareExchangeAcquire64 InterlockedCompareExchange64 -#define InterlockedCompareExchangeRelease64 InterlockedCompareExchange64 - -#else // !(defined (_M_AMD64) || defined (_M_IA64)) - -LONG WINAPI InterlockedOr(IN OUT LONG volatile *,LONG); -LONG WINAPI InterlockedAnd(IN OUT LONG volatile *,LONG); -LONG WINAPI InterlockedCompareExchange(IN OUT LONG volatile *,LONG,LONG); -WINBASEAPI LONG WINAPI InterlockedDecrement(IN OUT LONG volatile *); -WINBASEAPI LONG WINAPI InterlockedExchange(IN OUT LONG volatile *,LONG); -#if defined(_WIN64) - /* PVOID WINAPI InterlockedExchangePointer(PVOID*,PVOID); */ - #define InterlockedExchangePointer(t,v) \ - (PVOID)_InterlockedExchange64((LONGLONG*)(t),(LONGLONG)(v)) - /* PVOID WINAPI InterlockedCompareExchangePointer(PVOID*,PVOID,PVOID); */ - #define InterlockedCompareExchangePointer(d,e,c) \ - (PVOID)_InterlockedCompareExchange64((LONGLONG*)(d),(LONGLONG)(e),(LONGLONG)(c)) -#else - /* PVOID WINAPI InterlockedExchangePointer(PVOID*,PVOID); */ - #define InterlockedExchangePointer(t,v) \ - (PVOID)InterlockedExchange((LPLONG)(t),(LONG)(v)) - /* PVOID WINAPI InterlockedCompareExchangePointer(PVOID*,PVOID,PVOID); */ - #define InterlockedCompareExchangePointer(d,e,c) \ - (PVOID)InterlockedCompareExchange((LPLONG)(d),(LONG)(e),(LONG)(c)) -#endif -LONG WINAPI InterlockedExchangeAdd(IN OUT LONG volatile *,LONG); -#if (_WIN32_WINNT >= 0x0501) -PSLIST_ENTRY WINAPI InterlockedFlushSList(PSLIST_HEADER); -#endif -WINBASEAPI LONG WINAPI InterlockedIncrement(IN OUT LONG volatile *); -#if (_WIN32_WINNT >= 0x0501) -PSLIST_ENTRY WINAPI InterlockedPopEntrySList(PSLIST_HEADER); -PSLIST_ENTRY WINAPI InterlockedPushEntrySList(PSLIST_HEADER,PSLIST_ENTRY); -#endif -#define InterlockedCompareExchangePointerAcquire InterlockedCompareExchangePointer -#define InterlockedCompareExchangePointerRelease InterlockedCompareExchangePointer - -#endif // !(defined (_M_AMD64) || defined (_M_IA64)) - -#if defined(_SLIST_HEADER_) && !defined(_NTOSP_) - -WINBASEAPI -VOID -WINAPI -InitializeSListHead ( - IN OUT PSLIST_HEADER ListHead); -#endif - -USHORT WINAPI QueryDepthSList(PSLIST_HEADER); - -#ifdef _MSC_VER - -// -// Intrinsics are a mess -- *sigh* -// -long _InterlockedCompareExchange(volatile long * const Destination, const long Exchange, const long Comperand); -#pragma intrinsic(_InterlockedCompareExchange) -#endif - -#if !defined(InterlockedAnd) -#define InterlockedAnd InterlockedAnd_Inline -FORCEINLINE -LONG -InterlockedAnd_Inline(IN OUT volatile LONG *Target, - IN LONG Set) -{ - LONG i; - LONG j; - - j = *Target; - do { - i = j; - j = _InterlockedCompareExchange((volatile long *)Target, - i & Set, - i); - - } while (i != j); - - return j; -} -#endif - -#if !defined(InterlockedOr) -#define InterlockedOr InterlockedOr_Inline -FORCEINLINE -LONG -InterlockedOr_Inline(IN OUT volatile LONG *Target, - IN LONG Set) -{ - LONG i; - LONG j; - - j = *Target; - do { - i = j; - j = _InterlockedCompareExchange((volatile long *)Target, - i | Set, - i); - - } while (i != j); - - return j; -} -#endif - -#endif /* __INTERLOCKED_DECLARED */ BOOL WINAPI IsBadCodePtr(_In_opt_ FARPROC); BOOL WINAPI IsBadHugeReadPtr(_In_opt_ CONST VOID*, _In_ UINT_PTR); Modified: trunk/reactos/include/psdk/winnt.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/winnt.h?rev=6…
============================================================================== --- trunk/reactos/include/psdk/winnt.h [iso-8859-1] (original) +++ trunk/reactos/include/psdk/winnt.h [iso-8859-1] Sun Apr 12 12:40:49 2015 @@ -1355,6 +1355,557 @@ #define LOCALE_CUSTOM_UI_DEFAULT MAKELCID(MAKELANGID(LANG_NEUTRAL, SUBLANG_UI_CUSTOM_DEFAULT), SORT_DEFAULT) #define LOCALE_NEUTRAL MAKELCID(MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL), SORT_DEFAULT) #define LOCALE_INVARIANT MAKELCID(MAKELANGID(LANG_INVARIANT, SUBLANG_NEUTRAL), SORT_DEFAULT) +/****************************************************************************** + * INTERLOCKED Functions * + ******************************************************************************/ + +#define BitScanForward _BitScanForward +#define BitScanReverse _BitScanReverse +#define BitTest _bittest +#define BitTestAndComplement _bittestandcomplement +#define BitTestAndSet _bittestandset +#define BitTestAndReset _bittestandreset +#ifdef _WIN64 +#define BitScanForward64 _BitScanForward64 +#define BitScanReverse64 _BitScanReverse64 +#define BitTest64 _bittest64 +#define BitTestAndComplement64 _bittestandcomplement64 +#define BitTestAndSet64 _bittestandset64 +#define BitTestAndReset64 _bittestandreset64 +#endif /* _WIN64 */ + +#if defined(_M_ARM) || defined(_M_IA64) +#define __ACQ_(x) x##_acq +#define __REL_(x) x##_rel +#define __NF_(x) x##_nf +#else +#define __ACQ_(x) x +#define __REL_(x) x +#define __NF_(x) x +#endif + +#define InterlockedBitTestAndSet _interlockedbittestandset +#define InterlockedBitTestAndSetAcquire __ACQ_(_interlockedbittestandset) +#define InterlockedBitTestAndSetRelease __REL_(_interlockedbittestandset) +#define InterlockedBitTestAndSetNoFence __NF_(_interlockedbittestandset) + +#define InterlockedBitTestAndReset _interlockedbittestandreset +#define InterlockedBitTestAndResetAcquire __ACQ_(_interlockedbittestandreset) +#define InterlockedBitTestAndResetRelease __REL_(_interlockedbittestandreset) +#define InterlockedBitTestAndResetNoFence __NF_(_interlockedbittestandreset) + +#ifdef _WIN64 +#define InterlockedBitTestAndSet64 _interlockedbittestandset64 +#define InterlockedBitTestAndSet64Acquire __ACQ_(_interlockedbittestandset64) +#define InterlockedBitTestAndSet64Release __REL_(_interlockedbittestandset64) +#define InterlockedBitTestAndSet64NoFence __NF_(_interlockedbittestandset64) + +#define InterlockedBitTestAndReset64 _interlockedbittestandreset64 +#define InterlockedBitTestAndReset64Acquire __ACQ_(_interlockedbittestandreset64) +#define InterlockedBitTestAndReset64Release __REL_(_interlockedbittestandreset64) +#define InterlockedBitTestAndReset64NoFence __NF_(_interlockedbittestandreset64) +#endif /* _WIN64 */ + +#define InterlockedAdd _InterlockedAdd +#define InterlockedAddAcquire __ACQ_(_InterlockedAdd) +#define InterlockedAddRelease __REL_(_InterlockedAdd) +#define InterlockedAddNoFence __NF_(_InterlockedAdd) + +#define InterlockedAdd64 _InterlockedAdd64 +#define InterlockedAddAcquire64 __ACQ_(_InterlockedAdd64) +#define InterlockedAddRelease64 __REL_(_InterlockedAdd64) +#define InterlockedAddNoFence64 __NF_(_InterlockedAdd64) + +#define InterlockedAnd _InterlockedAnd +#define InterlockedAndAcquire __ACQ_(_InterlockedAnd) +#define InterlockedAndRelease __REL_(_InterlockedAnd) +#define InterlockedAndNoFence __NF_(_InterlockedAnd) + +#define InterlockedAnd8 _InterlockedAnd8 +#ifdef _M_ARM +#define InterlockedAndAcquire8 _InterlockedAnd8_acq +#define InterlockedAndRelease8 _InterlockedAnd8_rel +#define InterlockedAndNoFence8 _InterlockedAnd8_nf +#elif defined(_M_IA64) +#define InterlockedAnd8Acquire _InterlockedAnd8_acq +#define InterlockedAnd8Release _InterlockedAnd8_rel +#endif // _M_ARM + +#define InterlockedAnd16 _InterlockedAnd16 +#ifdef _M_ARM +#define InterlockedAndAcquire16 _InterlockedAnd16_acq +#define InterlockedAndRelease16 _InterlockedAnd16_rel +#define InterlockedAndNoFence16 _InterlockedAnd16_nf +#elif defined(_M_IA64) +#define InterlockedAnd16Acquire _InterlockedAnd16_acq +#define InterlockedAnd16Release _InterlockedAnd16_rel +#endif // _M_ARM + +#define InterlockedAnd64 _InterlockedAnd64 +#ifdef _M_ARM +#define InterlockedAndAcquire64 __ACQ_(_InterlockedAnd64) +#define InterlockedAndRelease64 __REL_(_InterlockedAnd64) +#define InterlockedAndNoFence64 __NF_(_InterlockedAnd64) +#else // _M_ARM +#define InterlockedAnd64Acquire __ACQ_(_InterlockedAnd64) +#define InterlockedAnd64Release __REL_(_InterlockedAnd64) +#define InterlockedAnd64NoFence __NF_(_InterlockedAnd64) +#endif // _M_ARM + +#ifdef _WIN64 +#define InterlockedAndAffinity InterlockedAnd64 +#else +#define InterlockedAndAffinity InterlockedAnd +#endif // _WIN64 + +#define InterlockedCompareExchange _InterlockedCompareExchange +#define InterlockedCompareExchangeAcquire __ACQ_(_InterlockedCompareExchange) +#define InterlockedCompareExchangeRelease __REL_(_InterlockedCompareExchange) +#define InterlockedCompareExchangeNoFence __NF_(_InterlockedCompareExchange) + +#define InterlockedCompareExchange16 _InterlockedCompareExchange16 +#define InterlockedCompareExchangeAcquire16 __ACQ_(_InterlockedCompareExchange16) +#define InterlockedCompareExchangeRelease16 __REL_(_InterlockedCompareExchange16) +#define InterlockedCompareExchangeNoFence16 __NF_(_InterlockedCompareExchange16) + +#define InterlockedCompareExchange64 _InterlockedCompareExchange64 +#define InterlockedCompareExchangeAcquire64 __ACQ_(_InterlockedCompareExchange64) +#define InterlockedCompareExchangeRelease64 __REL_(_InterlockedCompareExchange64) +#define InterlockedCompareExchangeNoFence64 __NF_(_InterlockedCompareExchange64) + +#ifdef _WIN64 +#define InterlockedCompareExchange128 _InterlockedCompareExchange128 +#endif // _WIN64 + +#ifdef _M_IA64 +#define InterlockedCompare64Exchange128 _InterlockedCompare64Exchange128 +#define InterlockedCompare64ExchangeAcquire128 _InterlockedCompare64Exchange128_acq +#define InterlockedCompare64ExchangeRelease128 _InterlockedCompare64Exchange128_rel +#endif // _M_IA64 + +#define InterlockedCompareExchangePointer _InterlockedCompareExchangePointer +#define InterlockedCompareExchangePointerAcquire __ACQ_(_InterlockedCompareExchangePointer) +#define InterlockedCompareExchangePointerRelease __REL_(_InterlockedCompareExchangePointer) +#define InterlockedCompareExchangePointerNoFence __NF_(_InterlockedCompareExchangePointer) + +#define InterlockedDecrement _InterlockedDecrement +#define InterlockedDecrementAcquire __ACQ_(_InterlockedDecrement) +#define InterlockedDecrementRelease __REL_(_InterlockedDecrement) +#define InterlockedDecrementNoFence __NF_(_InterlockedDecrement) + +#define InterlockedDecrement16 _InterlockedDecrement16 +#define InterlockedDecrementAcquire16 __ACQ_(_InterlockedDecrement16) +#define InterlockedDecrementRelease16 __REL_(_InterlockedDecrement16) +#define InterlockedDecrementNoFence16 __NF_(_InterlockedDecrement16) + +#define InterlockedDecrement64 _InterlockedDecrement64 +#define InterlockedDecrementAcquire64 __ACQ_(_InterlockedDecrement64) +#define InterlockedDecrementRelease64 __REL_(_InterlockedDecrement64) +#define InterlockedDecrementNoFence64 __NF_(_InterlockedDecrement64) + +#ifdef _WIN64 +#define InterlockedDecrementSizeT(a) InterlockedDecrement64((LONG64 *)a) +#define InterlockedDecrementSizeTNoFence(a) InterlockedDecrementNoFence64((LONG64 *)a) +#else +#define InterlockedDecrementSizeT(a) InterlockedDecrement((LONG *)a) +#define InterlockedDecrementSizeTNoFence(a) InterlockedDecrementNoFence((LONG *)a) +#endif // _WIN64 + +#define InterlockedExchange _InterlockedExchange +#define InterlockedExchangeAcquire __ACQ_(_InterlockedExchange) +/* No release here */ +#define InterlockedExchangeNoFence __NF_(_InterlockedExchange) + +#if (_MSC_VER >= 1600) +#define InterlockedExchange8 _InterlockedExchange8 +#endif // (_MSC_VER >= 1600) + +#define InterlockedExchange16 _InterlockedExchange16 +/* No release here */ +#define InterlockedExchangeAcquire16 __ACQ_(_InterlockedExchange16) +#define InterlockedExchangeNoFence16 __NF_(_InterlockedExchange16) + +#define InterlockedExchange64 _InterlockedExchange64 +#define InterlockedExchangeAcquire64 __ACQ_(_InterlockedExchange64) +/* No release here */ +#define InterlockedExchangeNoFence64 __NF_(_InterlockedExchange64) + +#define InterlockedExchangePointer _InterlockedExchangePointer +#define InterlockedExchangePointerAcquire __ACQ_(_InterlockedExchangePointer) +/* No release here */ +#define InterlockedExchangePointerNoFence __NF_(_InterlockedExchangePointer) + +#define InterlockedExchangeAdd _InterlockedExchangeAdd +#define InterlockedExchangeAddAcquire __ACQ_(_InterlockedExchangeAdd) +#define InterlockedExchangeAddRelease __REL_(_InterlockedExchangeAdd) +#define InterlockedExchangeAddNoFence __NF_(_InterlockedExchangeAdd) + +#define InterlockedExchangeAdd64 _InterlockedExchangeAdd64 +#define InterlockedExchangeAddAcquire64 __ACQ_(_InterlockedExchangeAdd64) +#define InterlockedExchangeAddRelease64 __REL_(_InterlockedExchangeAdd64) +#define InterlockedExchangeAddNoFence64 __NF_(_InterlockedExchangeAdd64) + +#ifdef _WIN64 +#define InterlockedExchangeAddSizeT(a, b) InterlockedExchangeAdd64((LONG64 *)a, b) +#define InterlockedExchangeAddSizeTAcquire(a, b) InterlockedExchangeAddAcquire64((LONG64 *)a, b) +#define InterlockedExchangeAddSizeTNoFence(a, b) InterlockedExchangeAddNoFence64((LONG64 *)a, b) +#else +#define InterlockedExchangeAddSizeT(a, b) InterlockedExchangeAdd((LONG *)a, b) +#define InterlockedExchangeAddSizeTAcquire(a, b) InterlockedExchangeAddAcquire((LONG *)a, b) +#define InterlockedExchangeAddSizeTNoFence(a, b) InterlockedExchangeAddNoFence((LONG *)a, b) +#endif // _WIN64 + +#define InterlockedIncrement _InterlockedIncrement +#define InterlockedIncrementAcquire __ACQ_(_InterlockedIncrement) +#define InterlockedIncrementRelease __REL_(_InterlockedIncrement) +#define InterlockedIncrementNoFence __NF_(_InterlockedIncrement) + +#define InterlockedIncrement16 _InterlockedIncrement16 +#define InterlockedIncrementAcquire16 __ACQ_(_InterlockedIncrement16) +#define InterlockedIncrementRelease16 __REL_(_InterlockedIncrement16) +#define InterlockedIncrementNoFence16 __NF_(_InterlockedIncrement16) + +#define InterlockedIncrement64 _InterlockedIncrement64 +#define InterlockedIncrementAcquire64 __ACQ_(_InterlockedIncrement64) +#define InterlockedIncrementRelease64 __REL_(_InterlockedIncrement64) +#define InterlockedIncrementNoFence64 __NF_(_InterlockedIncrement64) + +#ifdef _WIN64 +#define InterlockedIncrementSizeT(a) InterlockedIncrement64((LONG64 *)a) +#define InterlockedIncrementSizeTNoFence(a) InterlockedIncrementNoFence64((LONG64 *)a) +#else +#define InterlockedIncrementSizeT(a) InterlockedIncrement((LONG *)a) +#define InterlockedIncrementSizeTNoFence(a) InterlockedIncrementNoFence((LONG *)a) +#endif // _WIN64 + +#define InterlockedOr _InterlockedOr +#define InterlockedOrAcquire __ACQ_(_InterlockedOr) +#define InterlockedOrRelease __REL_(_InterlockedOr) +#define InterlockedOrNoFence __NF_(_InterlockedOr) + +#define InterlockedOr8 _InterlockedOr8 +#ifdef _M_ARM +#define InterlockedOrAcquire8 _InterlockedOr8_acq +#define InterlockedOrRelease8 _InterlockedOr8_rel +#define InterlockedOrNoFence8 _InterlockedOr8_nf +#elif defined(_M_IA64) +#define InterlockedOr8Acquire _InterlockedOr8_acq +#define InterlockedOr8Release _InterlockedOr8_rel +#endif // _M_ARM + +#define InterlockedOr16 _InterlockedOr16 +#ifdef _M_ARM +#define InterlockedOrAcquire16 _InterlockedOr16_acq +#define InterlockedOrRelease16 _InterlockedOr16_rel +#define InterlockedOrNoFence16 _InterlockedOr16_nf +#elif defined(_M_IA64) +#define InterlockedOr16Acquire _InterlockedOr16_acq +#define InterlockedOr16Release _InterlockedOr16_rel +#endif // _M_ARM + +#define InterlockedOr64 _InterlockedOr64 +#ifdef _M_ARM +#define InterlockedOrAcquire64 _InterlockedOr64_acq +#define InterlockedOrRelease64 _InterlockedOr64_rel +#define InterlockedOrNoFence64 _InterlockedOr64_nf +#elif defined(_M_IA64) || defined(_M_AMD64) +#define InterlockedOr64Acquire __ACQ_(_InterlockedOr64) +#define InterlockedOr64Release __REL_(_InterlockedOr64) +#define InterlockedOr64NoFence __NF_(_InterlockedOr64) +#endif // _M_ARM + +#ifdef _WIN64 +#define InterlockedOrAffinity InterlockedOr64 +#else +#define InterlockedOrAffinity InterlockedOr +#endif // _WIN64 + +#define InterlockedXor _InterlockedXor +#define InterlockedXorAcquire __ACQ_(_InterlockedXor) +#define InterlockedXorRelease __REL_(_InterlockedXor) +#define InterlockedXorNoFence __NF_(_InterlockedXor) + +#define InterlockedXor8 _InterlockedXor8 +#ifdef _M_ARM +#define InterlockedXorAcquire8 _InterlockedXor8_acq +#define InterlockedXorRelease8 _InterlockedXor8_rel +#define InterlockedXorNoFence8 _InterlockedXor8_nf +#elif defined(_M_IA64) +#define InterlockedXor8Acquire _InterlockedXor8_acq +#define InterlockedXor8Release _InterlockedXor8_rel +#endif /* _M_ARM */ + +#define InterlockedXor16 _InterlockedXor16 +#ifdef _M_ARM +#define InterlockedXorAcquire16 _InterlockedXor16_acq +#define InterlockedXorRelease16 _InterlockedXor16_rel +#define InterlockedXorNoFence16 _InterlockedXor16_nf +#elif defined(_M_IA64) +#define InterlockedXor16Acquire _InterlockedXor16_acq +#define InterlockedXor16Release _InterlockedXor16_rel +#endif /* _M_ARM */ + +#define InterlockedXor64 _InterlockedXor64 +#ifdef _M_ARM +#define InterlockedXorAcquire64 _InterlockedXor64_acq +#define InterlockedXorRelease64 _InterlockedXor64_rel +#define InterlockedXorNoFence64 _InterlockedXor64_nf +#elif defined(_M_IA64) || defined(_M_AMD64) +#define InterlockedXor64Acquire __ACQ_(_InterlockedXor64) +#define InterlockedXor64Release __REL_(_InterlockedXor64) +#define InterlockedXor64NoFence __NF_(_InterlockedXor64) +#endif /* _M_ARM */ + +#ifdef _M_IX86 + +FORCEINLINE +LONG64 +_InterlockedExchange64( + _Inout_ _Interlocked_operand_ volatile LONG64 *Target, + _In_ LONG64 Value) +{ + LONG64 Old, Prev; + for (Old = *Target; ; Old = Prev) + { + Prev = _InterlockedCompareExchange64(Target, Value, Old); + if (Prev == Old) + return Prev; + } +} + +FORCEINLINE +LONG64 +_InterlockedAdd64( + _Inout_ _Interlocked_operand_ volatile LONG64 *Target, + _In_ LONG64 Value) +{ + LONG64 Old, Prev, New; + for (Old = *Target; ; Old = Prev) + { + New = Old + Value; + Prev = _InterlockedCompareExchange64(Target, New, Old); + if (Prev == Old) + return New; + } +} + +FORCEINLINE +LONG64 +_InterlockedExchangeAdd64 ( + _Inout_ _Interlocked_operand_ volatile LONG64 *Target, + _In_ LONG64 Value + ) +{ + LONG64 Old, Prev, New; + for (Old = *Target; ; Old = Prev) + { + New = Old + Value; + Prev = _InterlockedCompareExchange64(Target, New, Old); + if (Prev == Old) + return Prev; + } +} + +FORCEINLINE +LONG64 +_InterlockedAnd64( + _Inout_ _Interlocked_operand_ volatile LONG64 *Target, + _In_ LONG64 Value) +{ + LONG64 Old, Prev, New; + for (Old = *Target; ; Old = Prev) + { + New = Old & Value; + Prev = _InterlockedCompareExchange64(Target, New, Old); + if (Prev == Old) + return New; + } +} + +FORCEINLINE +LONG64 +_InterlockedOr64( + _Inout_ _Interlocked_operand_ volatile LONG64 *Target, + _In_ LONG64 Value) +{ + LONG64 Old, Prev, New; + for (Old = *Target; ; Old = Prev) + { + New = Old | Value; + Prev = _InterlockedCompareExchange64(Target, New, Old); + if (Prev == Old) + return New; + } +} + +FORCEINLINE +LONG64 +_InterlockedXor64( + _Inout_ _Interlocked_operand_ volatile LONG64 *Target, + _In_ LONG64 Value) +{ + LONG64 Old, Prev, New; + for (Old = *Target; ; Old = Prev) + { + New = Old ^ Value; + Prev = _InterlockedCompareExchange64(Target, New, Old); + if (Prev == Old) + return New; + } +} + +FORCEINLINE +LONG64 +_InterlockedIncrement64( + _Inout_ _Interlocked_operand_ volatile LONG64 *Target) +{ + return _InterlockedAdd64(Target, 1); +} + +FORCEINLINE +LONG64 +_InterlockedDecrement64( + _Inout_ _Interlocked_operand_ volatile LONG64 *Target) +{ + return _InterlockedAdd64(Target, -1); +} + +#undef _InterlockedExchangePointer +#define _InterlockedExchangePointer _InlineInterlockedExchangePointer +FORCEINLINE +_Ret_writes_(_Inexpressible_(Unknown)) +PVOID +_InterlockedExchangePointer( + _Inout_ _At_(*Destination, _Pre_writable_byte_size_(_Inexpressible_(Unknown)) + _Post_writable_byte_size_(_Inexpressible_(Unknown))) + _Interlocked_operand_ volatile PVOID *Destination, + _In_opt_ PVOID Value) +{ + return (PVOID)InterlockedExchange((volatile long *)Destination, (long)Value); +} + +#undef _InterlockedCompareExchangePointer +#define _InterlockedCompareExchangePointer _InlineInterlockedCompareExchangePointer +FORCEINLINE +_Ret_writes_(_Inexpressible_(Unknown)) +PVOID +_InterlockedCompareExchangePointer( + _Inout_ _At_(*Destination, _Pre_writable_byte_size_(_Inexpressible_(Unknown)) + _Post_writable_byte_size_(_Inexpressible_(Unknown))) + _Interlocked_operand_ volatile PVOID *Destination, + _In_opt_ PVOID ExChange, + _In_opt_ PVOID Comperand) +{ + return (PVOID)InterlockedCompareExchange((volatile long *)Destination, + (long)ExChange, + (long)Comperand); +} + +#endif /* _M_IX86 */ + +#ifdef _M_AMD64 + +FORCEINLINE +LONG64 +_InterlockedAdd64( + _Inout_ _Interlocked_operand_ volatile LONG64 *Target, + _In_ LONG64 Value) + +{ + return _InterlockedExchangeAdd64(Target, Value) + Value; +} + +#endif /* _M_AMD64 */ + +#ifdef _M_IA64 + +#undef _InterlockedBitTestAndSet +#define _InterlockedBitTestAndSet InterlockedBitTestAndSet_Inline +FORCEINLINE +BOOLEAN +_InterlockedBitTestAndSet( + _Inout_ _Interlocked_operand_ volatile LONG *Target, + _In_ LONG Bit) +{ + ULONG Mask = 1 << (Bit & 31); + return (BOOLEAN)((InterlockedOr(&Target[Bit / 32], Mask) & Mask) != 0); +} + +#undef _InterlockedBitTestAndReset +#define _InterlockedBitTestAndReset InterlockedBitTestAndReset_Inline +FORCEINLINE +BOOLEAN +_InterlockedBitTestAndReset( + _Inout_ _Interlocked_operand_ volatile LONG *Target, + _In_ LONG Bit) +{ + ULONG Mask = 1 << (Bit & 31); + return (BOOLEAN)((InterlockedAnd(&Target[Bit / 32], ~Mask) & Mask) != 0); +} + +#undef _InterlockedBitTestAndSet64 +#define _InterlockedBitTestAndSet64 InterlockedBitTestAndSet64_Inline +FORCEINLINE +BOOLEAN +_InterlockedBitTestAndSet64( + _Inout_ _Interlocked_operand_ volatile LONG64 *Target, + _In_ LONG64 Bit) +{ + ULONG64 Mask = 1LL << (Bit & 63); + return (BOOLEAN)((InterlockedOr64(&Target[Bit / 64], Mask) & Mask) != 0); +} + +#undef _InterlockedBitTestAndReset64 +#define _InterlockedBitTestAndReset64 InterlockedBitTestAndReset64_Inline +FORCEINLINE +BOOLEAN +_InterlockedBitTestAndReset64( + _Inout_ _Interlocked_operand_ volatile LONG64 *Target, + _In_ LONG64 Bit) +{ + ULONG64 Mask = 1LL << (Bit & 63); + return (BOOLEAN)((InterlockedAnd64(&Target[Bit / 64], ~Mask) & Mask) != 0); +} + +#undef _InterlockedBitTestAndComplement +#define _InterlockedBitTestAndComplement InterlockedBitTestAndComplement_Inline +FORCEINLINE +BOOLEAN +_InterlockedBitTestAndComplement( + _Inout_ _Interlocked_operand_ volatile LONG *Target, + _In_ LONG Bit) +{ + ULONG Mask = 1 << (Bit & 31); + return (BOOLEAN)((InterlockedXor(&Target[Bit / 32], Mask) & Mask) != 0); +} + +#undef _InterlockedBitTestAndComplement64 +#define _InterlockedBitTestAndComplement64 InterlockedBitTestAndComplement64_Inline +FORCEINLINE +BOOLEAN +_InterlockedBitTestAndComplement64( + _Inout_ _Interlocked_operand_ volatile LONG64 *Target, + _In_ LONG64 Bit) +{ + ULONG64 Mask = 1LL << (Bit & 63); + return (BOOLEAN)((InterlockedXor64(&Target[Bit / 64], Mask) & Mask) != 0); +} + +#endif /* M_IA64 */ + + +#if defined(__ROS_LONG64__) +#undef InterlockedExchange +#define InterlockedExchange(a,b) _InterlockedExchange((long*)a,b) +#undef InterlockedExchangeAdd +#define InterlockedExchangeAdd(a,b) _InterlockedExchangeAdd((long*)a,b) +#undef InterlockedCompareExchange +#define InterlockedCompareExchange(a,b,c) _InterlockedCompareExchange((long*)a,b,c) +#undef InterlockedIncrement +#define InterlockedIncrement(a) _InterlockedIncrement((long*)a) +#undef InterlockedDecrement +#define InterlockedDecrement(a) _InterlockedDecrement((long*)a) +#endif #undef __C89_NAMELESS #undef __C89_NAMELESSSTRUCTNAME @@ -5993,42 +6544,6 @@ return *((PVOID *)GetCurrentFiber()); } -#define BitScanForward _BitScanForward -#define BitScanReverse _BitScanReverse -#define BitTest _bittest -#define BitTestAndComplement _bittestandcomplement -#define BitTestAndSet _bittestandset -#define BitTestAndReset _bittestandreset -#define InterlockedBitTestAndSet _interlockedbittestandset -#define InterlockedBitTestAndReset _interlockedbittestandreset -#define InterlockedAnd16 _InterlockedAnd16 -#define InterlockedCompareExchange16 _InterlockedCompareExchange16 -#define InterlockedOr16 _InterlockedOr16 -#define InterlockedIncrement16 _InterlockedIncrement16 -#define InterlockedDecrement16 _InterlockedDecrement16 - -#ifdef _M_AMD64 -#define BitScanForward64 _BitScanForward64 -#define BitScanReverse64 _BitScanReverse64 - -#define InterlockedAnd _InterlockedAnd -#define InterlockedExchange _InterlockedExchange -#define InterlockedOr _InterlockedOr - -#define InterlockedAnd64 _InterlockedAnd64 -#define InterlockedOr64 _InterlockedOr64 - -#define InterlockedBitTestAndSet64 _interlockedbittestandset64 -#define InterlockedBitTestAndReset64 _interlockedbittestandreset64 - -#endif - -#ifdef _WIN64 -#define InterlockedExchangeAddSizeT(a, b) InterlockedExchangeAdd64((LONG64 *)a, b) -#else -#define InterlockedExchangeAddSizeT(a, b) InterlockedExchangeAdd((LONG *)a, b) -#endif - /* TODO: Other architectures than X86 */ #if defined(_M_IX86) #define PF_TEMPORAL_LEVEL_1 Modified: trunk/reactos/include/xdk/exfuncs.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/xdk/exfuncs.h?rev=…
============================================================================== --- trunk/reactos/include/xdk/exfuncs.h [iso-8859-1] (original) +++ trunk/reactos/include/xdk/exfuncs.h [iso-8859-1] Sun Apr 12 12:40:49 2015 @@ -677,12 +677,12 @@ _In_ LARGE_INTEGER Increment, _Inout_ _Requires_lock_not_held_(*_Curr_) PKSPIN_LOCK Lock); -#if defined(_WIN64) +#if !defined(_M_IX86) #define ExInterlockedAddLargeStatistic(Addend, Increment) \ (VOID)InterlockedAdd64(&(Addend)->QuadPart, Increment) #else #define ExInterlockedAddLargeStatistic(Addend, Increment) \ - _InterlockedAddLargeStatistic((PLONGLONG)&(Addend)->QuadPart, Increment) + (VOID)_InterlockedAddLargeStatistic((PLONGLONG)&(Addend)->QuadPart, Increment) #endif NTKERNELAPI Modified: trunk/reactos/include/xdk/interlocked.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/xdk/interlocked.h?…
============================================================================== --- trunk/reactos/include/xdk/interlocked.h [iso-8859-1] (original) +++ trunk/reactos/include/xdk/interlocked.h [iso-8859-1] Sun Apr 12 12:40:49 2015 @@ -8,143 +8,531 @@ #define BitTestAndComplement _bittestandcomplement #define BitTestAndSet _bittestandset #define BitTestAndReset _bittestandreset -#define InterlockedBitTestAndSet _interlockedbittestandset -#define InterlockedBitTestAndReset _interlockedbittestandreset - -#ifdef _M_AMD64 +#ifdef _WIN64 #define BitScanForward64 _BitScanForward64 #define BitScanReverse64 _BitScanReverse64 #define BitTest64 _bittest64 #define BitTestAndComplement64 _bittestandcomplement64 #define BitTestAndSet64 _bittestandset64 #define BitTestAndReset64 _bittestandreset64 +#endif /* _WIN64 */ + +#if defined(_M_ARM) || defined(_M_IA64) +#define __ACQ_(x) x##_acq +#define __REL_(x) x##_rel +#define __NF_(x) x##_nf +#else +#define __ACQ_(x) x +#define __REL_(x) x +#define __NF_(x) x +#endif + +#define InterlockedBitTestAndSet _interlockedbittestandset +#define InterlockedBitTestAndSetAcquire __ACQ_(_interlockedbittestandset) +#define InterlockedBitTestAndSetRelease __REL_(_interlockedbittestandset) +#define InterlockedBitTestAndSetNoFence __NF_(_interlockedbittestandset) + +#define InterlockedBitTestAndReset _interlockedbittestandreset +#define InterlockedBitTestAndResetAcquire __ACQ_(_interlockedbittestandreset) +#define InterlockedBitTestAndResetRelease __REL_(_interlockedbittestandreset) +#define InterlockedBitTestAndResetNoFence __NF_(_interlockedbittestandreset) + +#ifdef _WIN64 #define InterlockedBitTestAndSet64 _interlockedbittestandset64 +#define InterlockedBitTestAndSet64Acquire __ACQ_(_interlockedbittestandset64) +#define InterlockedBitTestAndSet64Release __REL_(_interlockedbittestandset64) +#define InterlockedBitTestAndSet64NoFence __NF_(_interlockedbittestandset64) + #define InterlockedBitTestAndReset64 _interlockedbittestandreset64 -#endif - -#if !defined(__INTERLOCKED_DECLARED) -#define __INTERLOCKED_DECLARED - -#if defined (_X86_) -#if defined(NO_INTERLOCKED_INTRINSICS) -NTKERNELAPI -LONG -FASTCALL -InterlockedIncrement( - _Inout_ _Interlocked_operand_ LONG volatile *Addend); - -NTKERNELAPI -LONG -FASTCALL -InterlockedDecrement( - _Inout_ _Interlocked_operand_ LONG volatile *Addend); - -NTKERNELAPI -LONG -FASTCALL -InterlockedCompareExchange( - _Inout_ _Interlocked_operand_ LONG volatile *Destination, - _In_ LONG Exchange, - _In_ LONG Comparand); - -NTKERNELAPI -LONG -FASTCALL -InterlockedExchange( - _Inout_ _Interlocked_operand_ LONG volatile *Destination, - _In_ LONG Value); - -NTKERNELAPI -LONG -FASTCALL -InterlockedExchangeAdd( - _Inout_ _Interlocked_operand_ LONG volatile *Addend, - _In_ LONG Value); - -#else /* !defined(NO_INTERLOCKED_INTRINSICS) */ +#define InterlockedBitTestAndReset64Acquire __ACQ_(_interlockedbittestandreset64) +#define InterlockedBitTestAndReset64Release __REL_(_interlockedbittestandreset64) +#define InterlockedBitTestAndReset64NoFence __NF_(_interlockedbittestandreset64) +#endif /* _WIN64 */ + +#define InterlockedAdd _InterlockedAdd +#define InterlockedAddAcquire __ACQ_(_InterlockedAdd) +#define InterlockedAddRelease __REL_(_InterlockedAdd) +#define InterlockedAddNoFence __NF_(_InterlockedAdd) + +#define InterlockedAdd64 _InterlockedAdd64 +#define InterlockedAddAcquire64 __ACQ_(_InterlockedAdd64) +#define InterlockedAddRelease64 __REL_(_InterlockedAdd64) +#define InterlockedAddNoFence64 __NF_(_InterlockedAdd64) + +#define InterlockedAnd _InterlockedAnd +#define InterlockedAndAcquire __ACQ_(_InterlockedAnd) +#define InterlockedAndRelease __REL_(_InterlockedAnd) +#define InterlockedAndNoFence __NF_(_InterlockedAnd) + +#define InterlockedAnd8 _InterlockedAnd8 +#ifdef _M_ARM +#define InterlockedAndAcquire8 _InterlockedAnd8_acq +#define InterlockedAndRelease8 _InterlockedAnd8_rel +#define InterlockedAndNoFence8 _InterlockedAnd8_nf +#elif defined(_M_IA64) +#define InterlockedAnd8Acquire _InterlockedAnd8_acq +#define InterlockedAnd8Release _InterlockedAnd8_rel +#endif // _M_ARM + +#define InterlockedAnd16 _InterlockedAnd16 +#ifdef _M_ARM +#define InterlockedAndAcquire16 _InterlockedAnd16_acq +#define InterlockedAndRelease16 _InterlockedAnd16_rel +#define InterlockedAndNoFence16 _InterlockedAnd16_nf +#elif defined(_M_IA64) +#define InterlockedAnd16Acquire _InterlockedAnd16_acq +#define InterlockedAnd16Release _InterlockedAnd16_rel +#endif // _M_ARM + +#define InterlockedAnd64 _InterlockedAnd64 +#ifdef _M_ARM +#define InterlockedAndAcquire64 __ACQ_(_InterlockedAnd64) +#define InterlockedAndRelease64 __REL_(_InterlockedAnd64) +#define InterlockedAndNoFence64 __NF_(_InterlockedAnd64) +#else // _M_ARM +#define InterlockedAnd64Acquire __ACQ_(_InterlockedAnd64) +#define InterlockedAnd64Release __REL_(_InterlockedAnd64) +#define InterlockedAnd64NoFence __NF_(_InterlockedAnd64) +#endif // _M_ARM + +#ifdef _WIN64 +#define InterlockedAndAffinity InterlockedAnd64 +#else +#define InterlockedAndAffinity InterlockedAnd +#endif // _WIN64 + +#define InterlockedCompareExchange _InterlockedCompareExchange +#define InterlockedCompareExchangeAcquire __ACQ_(_InterlockedCompareExchange) +#define InterlockedCompareExchangeRelease __REL_(_InterlockedCompareExchange) +#define InterlockedCompareExchangeNoFence __NF_(_InterlockedCompareExchange) + +#define InterlockedCompareExchange16 _InterlockedCompareExchange16 +#define InterlockedCompareExchangeAcquire16 __ACQ_(_InterlockedCompareExchange16) +#define InterlockedCompareExchangeRelease16 __REL_(_InterlockedCompareExchange16) +#define InterlockedCompareExchangeNoFence16 __NF_(_InterlockedCompareExchange16) + +#define InterlockedCompareExchange64 _InterlockedCompareExchange64 +#define InterlockedCompareExchangeAcquire64 __ACQ_(_InterlockedCompareExchange64) +#define InterlockedCompareExchangeRelease64 __REL_(_InterlockedCompareExchange64) +#define InterlockedCompareExchangeNoFence64 __NF_(_InterlockedCompareExchange64) + +#ifdef _WIN64 +#define InterlockedCompareExchange128 _InterlockedCompareExchange128 +#endif // _WIN64 + +#ifdef _M_IA64 +#define InterlockedCompare64Exchange128 _InterlockedCompare64Exchange128 +#define InterlockedCompare64ExchangeAcquire128 _InterlockedCompare64Exchange128_acq +#define InterlockedCompare64ExchangeRelease128 _InterlockedCompare64Exchange128_rel +#endif // _M_IA64 + +#define InterlockedCompareExchangePointer _InterlockedCompareExchangePointer +#define InterlockedCompareExchangePointerAcquire __ACQ_(_InterlockedCompareExchangePointer) +#define InterlockedCompareExchangePointerRelease __REL_(_InterlockedCompareExchangePointer) +#define InterlockedCompareExchangePointerNoFence __NF_(_InterlockedCompareExchangePointer) + +#define InterlockedDecrement _InterlockedDecrement +#define InterlockedDecrementAcquire __ACQ_(_InterlockedDecrement) +#define InterlockedDecrementRelease __REL_(_InterlockedDecrement) +#define InterlockedDecrementNoFence __NF_(_InterlockedDecrement) + +#define InterlockedDecrement16 _InterlockedDecrement16 +#define InterlockedDecrementAcquire16 __ACQ_(_InterlockedDecrement16) +#define InterlockedDecrementRelease16 __REL_(_InterlockedDecrement16) +#define InterlockedDecrementNoFence16 __NF_(_InterlockedDecrement16) + +#define InterlockedDecrement64 _InterlockedDecrement64 +#define InterlockedDecrementAcquire64 __ACQ_(_InterlockedDecrement64) +#define InterlockedDecrementRelease64 __REL_(_InterlockedDecrement64) +#define InterlockedDecrementNoFence64 __NF_(_InterlockedDecrement64) + +#ifdef _WIN64 +#define InterlockedDecrementSizeT(a) InterlockedDecrement64((LONG64 *)a) +#define InterlockedDecrementSizeTNoFence(a) InterlockedDecrementNoFence64((LONG64 *)a) +#else +#define InterlockedDecrementSizeT(a) InterlockedDecrement((LONG *)a) +#define InterlockedDecrementSizeTNoFence(a) InterlockedDecrementNoFence((LONG *)a) +#endif // _WIN64 #define InterlockedExchange _InterlockedExchange +#define InterlockedExchangeAcquire __ACQ_(_InterlockedExchange) +/* No release here */ +#define InterlockedExchangeNoFence __NF_(_InterlockedExchange) + +#if (_MSC_VER >= 1600) +#define InterlockedExchange8 _InterlockedExchange8 +#endif // (_MSC_VER >= 1600) + +#define InterlockedExchange16 _InterlockedExchange16 +/* No release here */ +#define InterlockedExchangeAcquire16 __ACQ_(_InterlockedExchange16) +#define InterlockedExchangeNoFence16 __NF_(_InterlockedExchange16) + +#define InterlockedExchange64 _InterlockedExchange64 +#define InterlockedExchangeAcquire64 __ACQ_(_InterlockedExchange64) +/* No release here */ +#define InterlockedExchangeNoFence64 __NF_(_InterlockedExchange64) + +#define InterlockedExchangePointer _InterlockedExchangePointer +#define InterlockedExchangePointerAcquire __ACQ_(_InterlockedExchangePointer) +/* No release here */ +#define InterlockedExchangePointerNoFence __NF_(_InterlockedExchangePointer) + +#define InterlockedExchangeAdd _InterlockedExchangeAdd +#define InterlockedExchangeAddAcquire __ACQ_(_InterlockedExchangeAdd) +#define InterlockedExchangeAddRelease __REL_(_InterlockedExchangeAdd) +#define InterlockedExchangeAddNoFence __NF_(_InterlockedExchangeAdd) + +#define InterlockedExchangeAdd64 _InterlockedExchangeAdd64 +#define InterlockedExchangeAddAcquire64 __ACQ_(_InterlockedExchangeAdd64) +#define InterlockedExchangeAddRelease64 __REL_(_InterlockedExchangeAdd64) +#define InterlockedExchangeAddNoFence64 __NF_(_InterlockedExchangeAdd64) + +#ifdef _WIN64 +#define InterlockedExchangeAddSizeT(a, b) InterlockedExchangeAdd64((LONG64 *)a, b) +#define InterlockedExchangeAddSizeTAcquire(a, b) InterlockedExchangeAddAcquire64((LONG64 *)a, b) +#define InterlockedExchangeAddSizeTNoFence(a, b) InterlockedExchangeAddNoFence64((LONG64 *)a, b) +#else +#define InterlockedExchangeAddSizeT(a, b) InterlockedExchangeAdd((LONG *)a, b) +#define InterlockedExchangeAddSizeTAcquire(a, b) InterlockedExchangeAddAcquire((LONG *)a, b) +#define InterlockedExchangeAddSizeTNoFence(a, b) InterlockedExchangeAddNoFence((LONG *)a, b) +#endif // _WIN64 + #define InterlockedIncrement _InterlockedIncrement -#define InterlockedDecrement _InterlockedDecrement -#define InterlockedExchangeAdd _InterlockedExchangeAdd -#define InterlockedCompareExchange _InterlockedCompareExchange +#define InterlockedIncrementAcquire __ACQ_(_InterlockedIncrement) +#define InterlockedIncrementRelease __REL_(_InterlockedIncrement) +#define InterlockedIncrementNoFence __NF_(_InterlockedIncrement) + +#define InterlockedIncrement16 _InterlockedIncrement16 +#define InterlockedIncrementAcquire16 __ACQ_(_InterlockedIncrement16) +#define InterlockedIncrementRelease16 __REL_(_InterlockedIncrement16) +#define InterlockedIncrementNoFence16 __NF_(_InterlockedIncrement16) + +#define InterlockedIncrement64 _InterlockedIncrement64 +#define InterlockedIncrementAcquire64 __ACQ_(_InterlockedIncrement64) +#define InterlockedIncrementRelease64 __REL_(_InterlockedIncrement64) +#define InterlockedIncrementNoFence64 __NF_(_InterlockedIncrement64) + +#ifdef _WIN64 +#define InterlockedIncrementSizeT(a) InterlockedIncrement64((LONG64 *)a) +#define InterlockedIncrementSizeTNoFence(a) InterlockedIncrementNoFence64((LONG64 *)a) +#else +#define InterlockedIncrementSizeT(a) InterlockedIncrement((LONG *)a) +#define InterlockedIncrementSizeTNoFence(a) InterlockedIncrementNoFence((LONG *)a) +#endif // _WIN64 + #define InterlockedOr _InterlockedOr -#define InterlockedAnd _InterlockedAnd +#define InterlockedOrAcquire __ACQ_(_InterlockedOr) +#define InterlockedOrRelease __REL_(_InterlockedOr) +#define InterlockedOrNoFence __NF_(_InterlockedOr) + +#define InterlockedOr8 _InterlockedOr8 +#ifdef _M_ARM +#define InterlockedOrAcquire8 _InterlockedOr8_acq +#define InterlockedOrRelease8 _InterlockedOr8_rel +#define InterlockedOrNoFence8 _InterlockedOr8_nf +#elif defined(_M_IA64) +#define InterlockedOr8Acquire _InterlockedOr8_acq +#define InterlockedOr8Release _InterlockedOr8_rel +#endif // _M_ARM + +#define InterlockedOr16 _InterlockedOr16 +#ifdef _M_ARM +#define InterlockedOrAcquire16 _InterlockedOr16_acq +#define InterlockedOrRelease16 _InterlockedOr16_rel +#define InterlockedOrNoFence16 _InterlockedOr16_nf +#elif defined(_M_IA64) +#define InterlockedOr16Acquire _InterlockedOr16_acq +#define InterlockedOr16Release _InterlockedOr16_rel +#endif // _M_ARM + +#define InterlockedOr64 _InterlockedOr64 +#ifdef _M_ARM +#define InterlockedOrAcquire64 _InterlockedOr64_acq +#define InterlockedOrRelease64 _InterlockedOr64_rel +#define InterlockedOrNoFence64 _InterlockedOr64_nf +#elif defined(_M_IA64) || defined(_M_AMD64) +#define InterlockedOr64Acquire __ACQ_(_InterlockedOr64) +#define InterlockedOr64Release __REL_(_InterlockedOr64) +#define InterlockedOr64NoFence __NF_(_InterlockedOr64) +#endif // _M_ARM + +#ifdef _WIN64 +#define InterlockedOrAffinity InterlockedOr64 +#else +#define InterlockedOrAffinity InterlockedOr +#endif // _WIN64 + #define InterlockedXor _InterlockedXor - -#endif /* !defined(NO_INTERLOCKED_INTRINSICS) */ - -#endif /* defined (_X86_) */ - -#if !defined (_WIN64) -/* - * PVOID - * InterlockedExchangePointer( - * IN OUT PVOID volatile *Target, - * IN PVOID Value) - */ -#define InterlockedExchangePointer(Target, Value) \ - ((PVOID) InterlockedExchange((PLONG) Target, (LONG) Value)) - -/* - * PVOID - * InterlockedCompareExchangePointer( - * IN OUT PVOID *Destination, - * IN PVOID Exchange, - * IN PVOID Comparand) - */ -#define InterlockedCompareExchangePointer(Destination, Exchange, Comparand) \ - ((PVOID) InterlockedCompareExchange((PLONG) Destination, (LONG) Exchange, (LONG) Comparand)) - -#define InterlockedExchangeAddSizeT(a, b) InterlockedExchangeAdd((LONG *)a, b) -#define InterlockedIncrementSizeT(a) InterlockedIncrement((LONG *)a) -#define InterlockedDecrementSizeT(a) InterlockedDecrement((LONG *)a) - -#endif // !defined (_WIN64) - -#if defined (_M_AMD64) - -#define InterlockedExchangeAddSizeT(a, b) InterlockedExchangeAdd64((LONGLONG *)a, (LONGLONG)b) -#define InterlockedIncrementSizeT(a) InterlockedIncrement64((LONGLONG *)a) -#define InterlockedDecrementSizeT(a) InterlockedDecrement64((LONGLONG *)a) -#define InterlockedAnd _InterlockedAnd -#define InterlockedOr _InterlockedOr -#define InterlockedXor _InterlockedXor -#define InterlockedIncrement _InterlockedIncrement -#define InterlockedDecrement _InterlockedDecrement -#define InterlockedAdd _InterlockedAdd -#define InterlockedExchange _InterlockedExchange -#define InterlockedExchangeAdd _InterlockedExchangeAdd -#define InterlockedCompareExchange _InterlockedCompareExchange -#define InterlockedAnd64 _InterlockedAnd64 -#define InterlockedOr64 _InterlockedOr64 +#define InterlockedXorAcquire __ACQ_(_InterlockedXor) +#define InterlockedXorRelease __REL_(_InterlockedXor) +#define InterlockedXorNoFence __NF_(_InterlockedXor) + +#define InterlockedXor8 _InterlockedXor8 +#ifdef _M_ARM +#define InterlockedXorAcquire8 _InterlockedXor8_acq +#define InterlockedXorRelease8 _InterlockedXor8_rel +#define InterlockedXorNoFence8 _InterlockedXor8_nf +#elif defined(_M_IA64) +#define InterlockedXor8Acquire _InterlockedXor8_acq +#define InterlockedXor8Release _InterlockedXor8_rel +#endif /* _M_ARM */ + +#define InterlockedXor16 _InterlockedXor16 +#ifdef _M_ARM +#define InterlockedXorAcquire16 _InterlockedXor16_acq +#define InterlockedXorRelease16 _InterlockedXor16_rel +#define InterlockedXorNoFence16 _InterlockedXor16_nf +#elif defined(_M_IA64) +#define InterlockedXor16Acquire _InterlockedXor16_acq +#define InterlockedXor16Release _InterlockedXor16_rel +#endif /* _M_ARM */ + #define InterlockedXor64 _InterlockedXor64 -#define InterlockedIncrement64 _InterlockedIncrement64 -#define InterlockedDecrement64 _InterlockedDecrement64 -#define InterlockedAdd64 _InterlockedAdd64 -#define InterlockedExchange64 _InterlockedExchange64 -#define InterlockedExchangeAdd64 _InterlockedExchangeAdd64 -#define InterlockedCompareExchange64 _InterlockedCompareExchange64 -#define InterlockedCompareExchangePointer _InterlockedCompareExchangePointer -#define InterlockedExchangePointer _InterlockedExchangePointer -#define InterlockedBitTestAndSet64 _interlockedbittestandset64 -#define InterlockedBitTestAndReset64 _interlockedbittestandreset64 - -#endif // _M_AMD64 - -#if defined(_M_AMD64) && !defined(RC_INVOKED) && !defined(MIDL_PASS) -//#if !defined(_X86AMD64_) // FIXME: what's _X86AMD64_ used for? -FORCEINLINE -LONG64 -InterlockedAdd64( - _Inout_ _Interlocked_operand_ LONG64 volatile *Addend, +#ifdef _M_ARM +#define InterlockedXorAcquire64 _InterlockedXor64_acq +#define InterlockedXorRelease64 _InterlockedXor64_rel +#define InterlockedXorNoFence64 _InterlockedXor64_nf +#elif defined(_M_IA64) || defined(_M_AMD64) +#define InterlockedXor64Acquire __ACQ_(_InterlockedXor64) +#define InterlockedXor64Release __REL_(_InterlockedXor64) +#define InterlockedXor64NoFence __NF_(_InterlockedXor64) +#endif /* _M_ARM */ + +#ifdef _M_IX86 + +FORCEINLINE +LONG64 +_InterlockedExchange64( + _Inout_ _Interlocked_operand_ volatile LONG64 *Target, _In_ LONG64 Value) { - return InterlockedExchangeAdd64(Addend, Value) + Value; -} -//#endif -#endif - -#endif /* !__INTERLOCKED_DECLARED */ - - + LONG64 Old, Prev; + for (Old = *Target; ; Old = Prev) + { + Prev = _InterlockedCompareExchange64(Target, Value, Old); + if (Prev == Old) + return Prev; + } +} + +FORCEINLINE +LONG64 +_InterlockedAdd64( + _Inout_ _Interlocked_operand_ volatile LONG64 *Target, + _In_ LONG64 Value) +{ + LONG64 Old, Prev, New; + for (Old = *Target; ; Old = Prev) + { + New = Old + Value; + Prev = _InterlockedCompareExchange64(Target, New, Old); + if (Prev == Old) + return New; + } +} + +FORCEINLINE +LONG64 +_InterlockedExchangeAdd64 ( + _Inout_ _Interlocked_operand_ volatile LONG64 *Target, + _In_ LONG64 Value + ) +{ + LONG64 Old, Prev, New; + for (Old = *Target; ; Old = Prev) + { + New = Old + Value; + Prev = _InterlockedCompareExchange64(Target, New, Old); + if (Prev == Old) + return Prev; + } +} + +FORCEINLINE +LONG64 +_InterlockedAnd64( + _Inout_ _Interlocked_operand_ volatile LONG64 *Target, + _In_ LONG64 Value) +{ + LONG64 Old, Prev, New; + for (Old = *Target; ; Old = Prev) + { + New = Old & Value; + Prev = _InterlockedCompareExchange64(Target, New, Old); + if (Prev == Old) + return New; + } +} + +FORCEINLINE +LONG64 +_InterlockedOr64( + _Inout_ _Interlocked_operand_ volatile LONG64 *Target, + _In_ LONG64 Value) +{ + LONG64 Old, Prev, New; + for (Old = *Target; ; Old = Prev) + { + New = Old | Value; + Prev = _InterlockedCompareExchange64(Target, New, Old); + if (Prev == Old) + return New; + } +} + +FORCEINLINE +LONG64 +_InterlockedXor64( + _Inout_ _Interlocked_operand_ volatile LONG64 *Target, + _In_ LONG64 Value) +{ + LONG64 Old, Prev, New; + for (Old = *Target; ; Old = Prev) + { + New = Old ^ Value; + Prev = _InterlockedCompareExchange64(Target, New, Old); + if (Prev == Old) + return New; + } +} + +FORCEINLINE +LONG64 +_InterlockedIncrement64( + _Inout_ _Interlocked_operand_ volatile LONG64 *Target) +{ + return _InterlockedAdd64(Target, 1); +} + +FORCEINLINE +LONG64 +_InterlockedDecrement64( + _Inout_ _Interlocked_operand_ volatile LONG64 *Target) +{ + return _InterlockedAdd64(Target, -1); +} + +#undef _InterlockedExchangePointer +#define _InterlockedExchangePointer _InlineInterlockedExchangePointer +FORCEINLINE +_Ret_writes_(_Inexpressible_(Unknown)) +PVOID +_InterlockedExchangePointer( + _Inout_ _At_(*Destination, _Pre_writable_byte_size_(_Inexpressible_(Unknown)) + _Post_writable_byte_size_(_Inexpressible_(Unknown))) + _Interlocked_operand_ volatile PVOID *Destination, + _In_opt_ PVOID Value) +{ + return (PVOID)InterlockedExchange((volatile long *)Destination, (long)Value); +} + +#undef _InterlockedCompareExchangePointer +#define _InterlockedCompareExchangePointer _InlineInterlockedCompareExchangePointer +FORCEINLINE +_Ret_writes_(_Inexpressible_(Unknown)) +PVOID +_InterlockedCompareExchangePointer( + _Inout_ _At_(*Destination, _Pre_writable_byte_size_(_Inexpressible_(Unknown)) + _Post_writable_byte_size_(_Inexpressible_(Unknown))) + _Interlocked_operand_ volatile PVOID *Destination, + _In_opt_ PVOID ExChange, + _In_opt_ PVOID Comperand) +{ + return (PVOID)InterlockedCompareExchange((volatile long *)Destination, + (long)ExChange, + (long)Comperand); +} + +#endif /* _M_IX86 */ + +#ifdef _M_AMD64 + +FORCEINLINE +LONG64 +_InterlockedAdd64( + _Inout_ _Interlocked_operand_ volatile LONG64 *Target, + _In_ LONG64 Value) + +{ + return _InterlockedExchangeAdd64(Target, Value) + Value; +} + +#endif /* _M_AMD64 */ + +#ifdef _M_IA64 + +#undef _InterlockedBitTestAndSet +#define _InterlockedBitTestAndSet InterlockedBitTestAndSet_Inline +FORCEINLINE +BOOLEAN +_InterlockedBitTestAndSet( + _Inout_ _Interlocked_operand_ volatile LONG *Target, + _In_ LONG Bit) +{ + ULONG Mask = 1 << (Bit & 31); + return (BOOLEAN)((InterlockedOr(&Target[Bit / 32], Mask) & Mask) != 0); +} + +#undef _InterlockedBitTestAndReset +#define _InterlockedBitTestAndReset InterlockedBitTestAndReset_Inline +FORCEINLINE +BOOLEAN +_InterlockedBitTestAndReset( + _Inout_ _Interlocked_operand_ volatile LONG *Target, + _In_ LONG Bit) +{ + ULONG Mask = 1 << (Bit & 31); + return (BOOLEAN)((InterlockedAnd(&Target[Bit / 32], ~Mask) & Mask) != 0); +} + +#undef _InterlockedBitTestAndSet64 +#define _InterlockedBitTestAndSet64 InterlockedBitTestAndSet64_Inline +FORCEINLINE +BOOLEAN +_InterlockedBitTestAndSet64( + _Inout_ _Interlocked_operand_ volatile LONG64 *Target, + _In_ LONG64 Bit) +{ + ULONG64 Mask = 1LL << (Bit & 63); + return (BOOLEAN)((InterlockedOr64(&Target[Bit / 64], Mask) & Mask) != 0); +} + +#undef _InterlockedBitTestAndReset64 +#define _InterlockedBitTestAndReset64 InterlockedBitTestAndReset64_Inline +FORCEINLINE +BOOLEAN +_InterlockedBitTestAndReset64( + _Inout_ _Interlocked_operand_ volatile LONG64 *Target, + _In_ LONG64 Bit) +{ + ULONG64 Mask = 1LL << (Bit & 63); + return (BOOLEAN)((InterlockedAnd64(&Target[Bit / 64], ~Mask) & Mask) != 0); +} + +#undef _InterlockedBitTestAndComplement +#define _InterlockedBitTestAndComplement InterlockedBitTestAndComplement_Inline +FORCEINLINE +BOOLEAN +_InterlockedBitTestAndComplement( + _Inout_ _Interlocked_operand_ volatile LONG *Target, + _In_ LONG Bit) +{ + ULONG Mask = 1 << (Bit & 31); + return (BOOLEAN)((InterlockedXor(&Target[Bit / 32], Mask) & Mask) != 0); +} + +#undef _InterlockedBitTestAndComplement64 +#define _InterlockedBitTestAndComplement64 InterlockedBitTestAndComplement64_Inline +FORCEINLINE +BOOLEAN +_InterlockedBitTestAndComplement64( + _Inout_ _Interlocked_operand_ volatile LONG64 *Target, + _In_ LONG64 Bit) +{ + ULONG64 Mask = 1LL << (Bit & 63); + return (BOOLEAN)((InterlockedXor64(&Target[Bit / 64], Mask) & Mask) != 0); +} + +#endif /* M_IA64 */ + Modified: trunk/reactos/include/xdk/winnt.template.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/xdk/winnt.template…
============================================================================== --- trunk/reactos/include/xdk/winnt.template.h [iso-8859-1] (original) +++ trunk/reactos/include/xdk/winnt.template.h [iso-8859-1] Sun Apr 12 12:40:49 2015 @@ -70,6 +70,7 @@ $define(USHORT=WORD) $define(UCHAR=BYTE) $include(ntbasedef.h) +$include(interlocked.h) $include(winnt_old.h) #ifdef __cplusplus Modified: trunk/reactos/include/xdk/winnt_old.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/xdk/winnt_old.h?re…
============================================================================== --- trunk/reactos/include/xdk/winnt_old.h [iso-8859-1] (original) +++ trunk/reactos/include/xdk/winnt_old.h [iso-8859-1] Sun Apr 12 12:40:49 2015 @@ -1,3 +1,16 @@ + +#if defined(__ROS_LONG64__) +#undef InterlockedExchange +#define InterlockedExchange(a,b) _InterlockedExchange((long*)a,b) +#undef InterlockedExchangeAdd +#define InterlockedExchangeAdd(a,b) _InterlockedExchangeAdd((long*)a,b) +#undef InterlockedCompareExchange +#define InterlockedCompareExchange(a,b,c) _InterlockedCompareExchange((long*)a,b,c) +#undef InterlockedIncrement +#define InterlockedIncrement(a) _InterlockedIncrement((long*)a) +#undef InterlockedDecrement +#define InterlockedDecrement(a) _InterlockedDecrement((long*)a) +#endif #undef __C89_NAMELESS #undef __C89_NAMELESSSTRUCTNAME @@ -4636,42 +4649,6 @@ return *((PVOID *)GetCurrentFiber()); } -#define BitScanForward _BitScanForward -#define BitScanReverse _BitScanReverse -#define BitTest _bittest -#define BitTestAndComplement _bittestandcomplement -#define BitTestAndSet _bittestandset -#define BitTestAndReset _bittestandreset -#define InterlockedBitTestAndSet _interlockedbittestandset -#define InterlockedBitTestAndReset _interlockedbittestandreset -#define InterlockedAnd16 _InterlockedAnd16 -#define InterlockedCompareExchange16 _InterlockedCompareExchange16 -#define InterlockedOr16 _InterlockedOr16 -#define InterlockedIncrement16 _InterlockedIncrement16 -#define InterlockedDecrement16 _InterlockedDecrement16 - -#ifdef _M_AMD64 -#define BitScanForward64 _BitScanForward64 -#define BitScanReverse64 _BitScanReverse64 - -#define InterlockedAnd _InterlockedAnd -#define InterlockedExchange _InterlockedExchange -#define InterlockedOr _InterlockedOr - -#define InterlockedAnd64 _InterlockedAnd64 -#define InterlockedOr64 _InterlockedOr64 - -#define InterlockedBitTestAndSet64 _interlockedbittestandset64 -#define InterlockedBitTestAndReset64 _interlockedbittestandreset64 - -#endif - -#ifdef _WIN64 -#define InterlockedExchangeAddSizeT(a, b) InterlockedExchangeAdd64((LONG64 *)a, b) -#else -#define InterlockedExchangeAddSizeT(a, b) InterlockedExchangeAdd((LONG *)a, b) -#endif - /* TODO: Other architectures than X86 */ #if defined(_M_IX86) #define PF_TEMPORAL_LEVEL_1
9 years, 8 months
1
0
0
0
[akhaldi] 67172: [WINE/TEST] Add the possibility of making file names clickable in visual studio output windows by defining WINETEST_MSVC_IDE_FORMATTING. By Mark Jansen. ROSTESTS-156
by akhaldi@svn.reactos.org
Author: akhaldi Date: Sun Apr 12 12:26:46 2015 New Revision: 67172 URL:
http://svn.reactos.org/svn/reactos?rev=67172&view=rev
Log: [WINE/TEST] Add the possibility of making file names clickable in visual studio output windows by defining WINETEST_MSVC_IDE_FORMATTING. By Mark Jansen. ROSTESTS-156 Modified: trunk/reactos/include/reactos/wine/test.h Modified: trunk/reactos/include/reactos/wine/test.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/reactos/wine/test.…
============================================================================== --- trunk/reactos/include/reactos/wine/test.h [iso-8859-1] (original) +++ trunk/reactos/include/reactos/wine/test.h [iso-8859-1] Sun Apr 12 12:26:46 2015 @@ -205,6 +205,14 @@ # define __winetest_va_end(list) va_end(list) #endif +/* Define WINETEST_MSVC_IDE_FORMATTING to alter the output format winetest will use for file/line numbers. + This alternate format makes the file/line numbers clickable in visual studio, to directly jump to them. */ +#if defined(WINETEST_MSVC_IDE_FORMATTING) +# define __winetest_file_line_prefix "%s(%d)" +#else +# define __winetest_file_line_prefix "%s:%d" +#endif + struct test { const char *name; @@ -294,6 +302,9 @@ void winetest_set_location( const char* file, int line ) { tls_data* data=get_tls_data(); +#if defined(WINETEST_MSVC_IDE_FORMATTING) + data->current_file = file; +#else data->current_file=strrchr(file,'/'); if (data->current_file==NULL) data->current_file=strrchr(file,'\\'); @@ -301,6 +312,7 @@ data->current_file=file; else data->current_file++; +#endif data->current_line=line; } @@ -331,7 +343,7 @@ { if (condition) { - fprintf( stdout, "%s:%d: Test succeeded inside todo block: ", + fprintf( stdout, __winetest_file_line_prefix ": Test succeeded inside todo block: ", data->current_file, data->current_line ); vfprintf(stdout, msg, args); InterlockedIncrement(&todo_failures); @@ -342,7 +354,7 @@ /* show todos even if traces are disabled*/ /*if (winetest_debug > 0)*/ { - fprintf( stdout, "%s:%d: Test marked todo: ", + fprintf( stdout, __winetest_file_line_prefix ": Test marked todo: ", data->current_file, data->current_line ); vfprintf(stdout, msg, args); } @@ -354,7 +366,7 @@ { if (!condition) { - fprintf( stdout, "%s:%d: Test failed: ", + fprintf( stdout, __winetest_file_line_prefix ": Test failed: ", data->current_file, data->current_line ); vfprintf(stdout, msg, args); InterlockedIncrement(&failures); @@ -363,7 +375,7 @@ else { if (report_success) - fprintf( stdout, "%s:%d: Test succeeded\n", + fprintf( stdout, __winetest_file_line_prefix ": Test succeeded\n", data->current_file, data->current_line); InterlockedIncrement(&successes); return 1; @@ -387,7 +399,7 @@ if (winetest_debug > 0) { - fprintf( stdout, "%s:%d: ", data->current_file, data->current_line ); + fprintf( stdout, __winetest_file_line_prefix ": ", data->current_file, data->current_line ); __winetest_va_start(valist, msg); vfprintf(stdout, msg, valist); __winetest_va_end(valist); @@ -398,7 +410,7 @@ { tls_data* data=get_tls_data(); - fprintf( stdout, "%s:%d: Tests skipped: ", data->current_file, data->current_line ); + fprintf( stdout, __winetest_file_line_prefix ": Tests skipped: ", data->current_file, data->current_line ); vfprintf(stdout, msg, args); skipped++; }
9 years, 8 months
1
0
0
0
[tkreuzer] 67171: [REACTOS] Fix usage of interlocked[Compare]ExchangePointer. These functions take a PVOID* as first parameter and nothing else. In native headers they are inline functions, not mac...
by tkreuzer@svn.reactos.org
Author: tkreuzer Date: Sun Apr 12 12:24:01 2015 New Revision: 67171 URL:
http://svn.reactos.org/svn/reactos?rev=67171&view=rev
Log: [REACTOS] Fix usage of interlocked[Compare]ExchangePointer. These functions take a PVOID* as first parameter and nothing else. In native headers they are inline functions, not macros. Modified: trunk/reactos/dll/win32/kernel32/client/proc.c trunk/reactos/dll/win32/setupapi/stringtable.c trunk/reactos/drivers/bluetooth/fbtusb/fbtdev.c trunk/reactos/drivers/bluetooth/fbtusb/fbtpwr.c trunk/reactos/drivers/serial/serial/devctrl.c trunk/reactos/drivers/storage/classpnp/autorun.c trunk/reactos/lib/3rdparty/libwine/debug_ros.c trunk/reactos/ntoskrnl/ke/ipi.c trunk/reactos/ntoskrnl/ps/kill.c trunk/reactos/ntoskrnl/ps/quota.c trunk/reactos/win32ss/user/winsrv/consrv/frontends/gui/guiterm.c Modified: trunk/reactos/dll/win32/kernel32/client/proc.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/kernel32/client/…
============================================================================== --- trunk/reactos/dll/win32/kernel32/client/proc.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/kernel32/client/proc.c [iso-8859-1] Sun Apr 12 12:24:01 2015 @@ -1437,7 +1437,7 @@ StartupInfo->lpTitle = TitleString.Buffer; /* We finished with the ANSI version, try to cache it */ - if (!InterlockedCompareExchangePointer(&BaseAnsiStartupInfo, + if (!InterlockedCompareExchangePointer((PVOID*)&BaseAnsiStartupInfo, StartupInfo, NULL)) { Modified: trunk/reactos/dll/win32/setupapi/stringtable.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/setupapi/stringt…
============================================================================== --- trunk/reactos/dll/win32/setupapi/stringtable.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/setupapi/stringtable.c [iso-8859-1] Sun Apr 12 12:24:01 2015 @@ -244,7 +244,7 @@ return (DWORD)-1; memset(&pNewSlots[pStringTable->dwMaxSlots], 0, sizeof(TABLE_SLOT) * (dwNewMaxSlots - pStringTable->dwMaxSlots)); memcpy(pNewSlots, pStringTable->pSlots, sizeof(TABLE_SLOT) * pStringTable->dwMaxSlots); - pNewSlots = InterlockedExchangePointer(&pStringTable->pSlots, pNewSlots); + pNewSlots = InterlockedExchangePointer((PVOID*)&pStringTable->pSlots, pNewSlots); MyFree(pNewSlots); pStringTable->dwMaxSlots = dwNewMaxSlots; Modified: trunk/reactos/drivers/bluetooth/fbtusb/fbtdev.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/bluetooth/fbtusb/f…
============================================================================== --- trunk/reactos/drivers/bluetooth/fbtusb/fbtdev.c [iso-8859-1] (original) +++ trunk/reactos/drivers/bluetooth/fbtusb/fbtdev.c [iso-8859-1] Sun Apr 12 12:24:01 2015 @@ -1042,7 +1042,7 @@ idleCallbackInfo = DeviceExtension->IdleCallbackInfo; DeviceExtension->IdleCallbackInfo = NULL; - idleIrp = (PIRP) InterlockedExchangePointer(&DeviceExtension->PendingIdleIrp, NULL); + idleIrp = (PIRP) InterlockedExchangePointer((PVOID*)&DeviceExtension->PendingIdleIrp, NULL); InterlockedExchange(&DeviceExtension->IdleReqPend, 0); KeReleaseSpinLock(&DeviceExtension->IdleReqStateLock, oldIrql); @@ -1104,7 +1104,7 @@ if(!CanDeviceSuspend(DeviceExtension)) { FreeBT_DbgPrint(3, ("Device is not idle\n")); - irp = (PIRP) InterlockedExchangePointer(&DeviceExtension->PendingIdleIrp, NULL); + irp = (PIRP) InterlockedExchangePointer((PVOID*)&DeviceExtension->PendingIdleIrp, NULL); } @@ -1195,4 +1195,4 @@ return; -} +} Modified: trunk/reactos/drivers/bluetooth/fbtusb/fbtpwr.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/bluetooth/fbtusb/f…
============================================================================== --- trunk/reactos/drivers/bluetooth/fbtusb/fbtpwr.c [iso-8859-1] (original) +++ trunk/reactos/drivers/bluetooth/fbtusb/fbtpwr.c [iso-8859-1] Sun Apr 12 12:24:01 2015 @@ -926,7 +926,8 @@ FreeBT_DbgPrint(3, ("FBTUSB: CancelWaitWake: Entered\n")); - Irp = (PIRP) InterlockedExchangePointer(&DeviceExtension->WaitWakeIrp, NULL); + Irp = (PIRP) InterlockedExchangePointer((PVOID*)&DeviceExtension->WaitWakeIrp, + NULL); if(Irp) { IoCancelIrp(Irp); @@ -957,7 +958,7 @@ // Nullify the WaitWakeIrp pointer-the Irp is released // as part of the completion process. If it's already NULL, // avoid race with the CancelWaitWake routine. - if(InterlockedExchangePointer(&DeviceExtension->WaitWakeIrp, NULL)) + if(InterlockedExchangePointer((PVOID*)&DeviceExtension->WaitWakeIrp, NULL)) { PoStartNextPowerIrp(Irp); Modified: trunk/reactos/drivers/serial/serial/devctrl.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/serial/serial/devc…
============================================================================== --- trunk/reactos/drivers/serial/serial/devctrl.c [iso-8859-1] (original) +++ trunk/reactos/drivers/serial/serial/devctrl.c [iso-8859-1] Sun Apr 12 12:24:01 2015 @@ -832,7 +832,7 @@ IoMarkIrpPending(Irp); WaitingIrp = InterlockedCompareExchangePointer( - &DeviceExtension->WaitOnMaskIrp, + (PVOID*)&DeviceExtension->WaitOnMaskIrp, Irp, NULL); Modified: trunk/reactos/drivers/storage/classpnp/autorun.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/storage/classpnp/a…
============================================================================== --- trunk/reactos/drivers/storage/classpnp/autorun.c [iso-8859-1] (original) +++ trunk/reactos/drivers/storage/classpnp/autorun.c [iso-8859-1] Sun Apr 12 12:24:01 2015 @@ -160,7 +160,7 @@ // non-MMC-compliant devices also from sense codes. // - DBGTRACE(ClassDebugTrace, ("ClassSendEjectionNotification: media EJECT_REQUEST")); + DBGTRACE(ClassDebugTrace, ("ClassSendEjectionNotification: media EJECT_REQUEST")); ClasspSendNotification(FdoExtension, &GUID_IO_MEDIA_EJECT_REQUEST, 0, @@ -412,7 +412,7 @@ &GUID_IO_GENERIC_GESN_EVENT, sizeof(NOTIFICATION_EVENT_STATUS_HEADER) + dataLength, Header) -*/ +*/ switch (Header->NotificationClass) { @@ -450,7 +450,7 @@ KeQuerySystemTime(&(externalData.SystemTime)); externalData.SystemTime.QuadPart *= (LONGLONG)KeQueryTimeIncrement(); - DBGTRACE(ClassDebugTrace, ("ClasspInterpretGesnData: media DEVICE_EXTERNAL_REQUEST")); + DBGTRACE(ClassDebugTrace, ("ClasspInterpretGesnData: media DEVICE_EXTERNAL_REQUEST")); ClasspSendNotification(FdoExtension, &GUID_IO_DEVICE_EXTERNAL_REQUEST, sizeof(DEVICE_EVENT_EXTERNAL_REQUEST), @@ -541,7 +541,7 @@ busyData.Estimated100msToReady )); - DBGTRACE(ClassDebugTrace, ("ClasspInterpretGesnData: media BECOMING_READY")); + DBGTRACE(ClassDebugTrace, ("ClasspInterpretGesnData: media BECOMING_READY")); ClasspSendNotification(FdoExtension, &GUID_IO_DEVICE_BECOMING_READY, sizeof(DEVICE_EVENT_BECOMING_READY), @@ -555,7 +555,7 @@ } - } // end switch on notification class + } // end switch on notification class return; } @@ -660,7 +660,7 @@ sizeof(ULONG), &data); - } + } else if (NewState == MediaNotPresent) { DBGTRACE(ClassDebugTrace, ("ClasspInternalSetMediaChangeState: media REMOVAL")); @@ -858,12 +858,12 @@ PSENSE_DATA senseData = srb->SenseInfoBuffer; - if ((senseData->SenseKey == SCSI_SENSE_NOT_READY) && + if ((senseData->SenseKey == SCSI_SENSE_NOT_READY) && (senseData->AdditionalSenseCode == SCSI_ADSENSE_LUN_NOT_READY)){ srb->SrbStatus = SRB_STATUS_SUCCESS; } - } - + } + // // use ClassInterpretSenseInfo() to check for media state, and also @@ -882,7 +882,7 @@ &status, NULL); - } + } else { fdoData->LoggedTURFailureSinceLastIO = FALSE; @@ -910,7 +910,7 @@ status = STATUS_SUCCESS; } - if (!NT_SUCCESS(status)) { + if (!NT_SUCCESS(status)) { DBGTRACE(ClassDebugMCN, ("ClasspMediaChangeDetectionCompletion: GESN failed with status %x", status)); } else { @@ -1067,7 +1067,7 @@ if (status == REMOVE_COMPLETE) { ASSERT(status != REMOVE_COMPLETE); return NULL; - } + } else if (status == REMOVE_PENDING) { ClassReleaseRemoveLock(FdoExtension->DeviceObject, irp); return NULL; @@ -3363,7 +3363,7 @@ // InterlockedExchange((PLONG)&info->CountDown, info->Period); - workItem = InterlockedExchangePointer(&info->WorkQueueItem, NULL); + workItem = InterlockedExchangePointer((PVOID*)&info->WorkQueueItem, NULL); if (ClasspCanSendPollingIrp(fdoExtension)) { Modified: trunk/reactos/lib/3rdparty/libwine/debug_ros.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/3rdparty/libwine/debug…
============================================================================== --- trunk/reactos/lib/3rdparty/libwine/debug_ros.c [iso-8859-1] (original) +++ trunk/reactos/lib/3rdparty/libwine/debug_ros.c [iso-8859-1] Sun Apr 12 12:24:01 2015 @@ -5,7 +5,6 @@ #define free libwine_free #define realloc libwine_realloc #define _strdup libwine__strdup -#define interlocked_xchg_add InterlockedExchangeAdd #include "debug.c" Modified: trunk/reactos/ntoskrnl/ke/ipi.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/ipi.c?rev=6717…
============================================================================== --- trunk/reactos/ntoskrnl/ke/ipi.c [iso-8859-1] (original) +++ trunk/reactos/ntoskrnl/ke/ipi.c [iso-8859-1] Sun Apr 12 12:24:01 2015 @@ -178,7 +178,7 @@ { while (0 != InterlockedCompareExchangeUL(&Prcb->SignalDone->TargetSet, 0, 0)); } - (void)InterlockedExchangePointer(&Prcb->SignalDone, NULL); + (void)InterlockedExchangePointer((PVOID*)&Prcb->SignalDone, NULL); } #endif return TRUE; Modified: trunk/reactos/ntoskrnl/ps/kill.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ps/kill.c?rev=671…
============================================================================== --- trunk/reactos/ntoskrnl/ps/kill.c [iso-8859-1] (original) +++ trunk/reactos/ntoskrnl/ps/kill.c [iso-8859-1] Sun Apr 12 12:24:01 2015 @@ -177,7 +177,7 @@ do { /* Write magic value and return the next entry to process */ - NextEntry = InterlockedExchangePointer(&PspReaperListHead.Flink, + NextEntry = InterlockedExchangePointer((PVOID*)&PspReaperListHead.Flink, (PVOID)1); ASSERT((NextEntry != NULL) && (NextEntry != (PVOID)1)); @@ -200,7 +200,7 @@ } while ((NextEntry != NULL) && (NextEntry != (PVOID)1)); /* Remove magic value, keep looping if it got changed */ - } while (InterlockedCompareExchangePointer(&PspReaperListHead.Flink, + } while (InterlockedCompareExchangePointer((PVOID*)&PspReaperListHead.Flink, 0, (PVOID)1) != (PVOID)1); } Modified: trunk/reactos/ntoskrnl/ps/quota.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ps/quota.c?rev=67…
============================================================================== --- trunk/reactos/ntoskrnl/ps/quota.c [iso-8859-1] (original) +++ trunk/reactos/ntoskrnl/ps/quota.c [iso-8859-1] Sun Apr 12 12:24:01 2015 @@ -428,7 +428,7 @@ QuotaBlock->QuotaEntry[2].Limit = PspDefaultQuotaBlock.QuotaEntry[2].Limit; /* Try to exchange the quota block, if that failed, just drop it */ - OldQuotaBlock = InterlockedCompareExchangePointer(&Process->QuotaBlock, + OldQuotaBlock = InterlockedCompareExchangePointer((PVOID*)&Process->QuotaBlock, QuotaBlock, &PspDefaultQuotaBlock); if (OldQuotaBlock == &PspDefaultQuotaBlock) Modified: trunk/reactos/win32ss/user/winsrv/consrv/frontends/gui/guiterm.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/user/winsrv/consrv…
============================================================================== --- trunk/reactos/win32ss/user/winsrv/consrv/frontends/gui/guiterm.c [iso-8859-1] (original) +++ trunk/reactos/win32ss/user/winsrv/consrv/frontends/gui/guiterm.c [iso-8859-1] Sun Apr 12 12:24:01 2015 @@ -797,7 +797,7 @@ EnterCriticalSection(&GuiData->Lock); GuiData->WindowSizeLock = TRUE; - InterlockedExchangePointer(&GuiData->ActiveBuffer, + InterlockedExchangePointer((PVOID*)&GuiData->ActiveBuffer, ConDrvGetActiveScreenBuffer(GuiData->Console)); GuiData->WindowSizeLock = FALSE; @@ -867,7 +867,7 @@ EnterCriticalSection(&GuiData->Lock); GuiData->WindowSizeLock = TRUE; - InterlockedExchangePointer(&GuiData->ActiveBuffer, NULL); + InterlockedExchangePointer((PVOID*)&GuiData->ActiveBuffer, NULL); GuiData->WindowSizeLock = FALSE; LeaveCriticalSection(&GuiData->Lock);
9 years, 8 months
1
0
0
0
[dreimer] 67170: [RAPPS] My sync script was not completely up to date... forgot these newly added ones in there.
by dreimer@svn.reactos.org
Author: dreimer Date: Sun Apr 12 11:54:59 2015 New Revision: 67170 URL:
http://svn.reactos.org/svn/reactos?rev=67170&view=rev
Log: [RAPPS] My sync script was not completely up to date... forgot these newly added ones in there. Modified: trunk/reactos/base/applications/rapps/rapps/akelpad.txt trunk/reactos/base/applications/rapps/rapps/winemono.txt Modified: trunk/reactos/base/applications/rapps/rapps/akelpad.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/rapps/ra…
============================================================================== --- trunk/reactos/base/applications/rapps/rapps/akelpad.txt [iso-8859-1] (original) +++ trunk/reactos/base/applications/rapps/rapps/akelpad.txt [iso-8859-1] Sun Apr 12 11:54:59 2015 @@ -4,13 +4,13 @@ [Section] Name = AkelPad -Version = 4.9.1 +Version = 4.9.3 License = GPL Description = An open source plain text editor designed to be small and fast. Size = 1.11 MB Category = 6 URLSite =
http://akelpad.sourceforge.net/
-URLDownload =
http://switch.dl.sourceforge.net/project/akelpad/AkelPad%204/4.9.1/AkelPad-…
+URLDownload =
http://download.sourceforge.net/project/akelpad/AkelPad%204/4.9.3/AkelPad-4…
CDPath = none [Section.0a] Modified: trunk/reactos/base/applications/rapps/rapps/winemono.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/rapps/ra…
============================================================================== --- trunk/reactos/base/applications/rapps/rapps/winemono.txt [iso-8859-1] (original) +++ trunk/reactos/base/applications/rapps/rapps/winemono.txt [iso-8859-1] Sun Apr 12 11:54:59 2015 @@ -3,13 +3,13 @@ [Section] Name = Wine Mono .NET Framework -Version = 4.5.4 +Version = 4.5.6 License = GPLv2, LGPLv2, MIT, BSD, MS-PL, MPLv1.1 Description = Free reimplementation of .NET Framework used by the Wine libraries. Size = 53.7 MB Category = 14 URLSite =
http://sourceforge.net/projects/wine/files/Wine
Mono -URLDownload =
http://download.sourceforge.net/wine/Wine%20Mono/4.5.4/wine-mono-4.5.4.msi
+URLDownload =
http://download.sourceforge.net/wine/Wine%20Mono/4.5.6/wine-mono-4.5.6.msi
CDPath = none [Section.0407]
9 years, 8 months
1
0
0
0
[dreimer] 67169: [RAPPS] Update Database CORE-9348 #resolve #comment Database updated, have fun ^^
by dreimer@svn.reactos.org
Author: dreimer Date: Sun Apr 12 11:34:00 2015 New Revision: 67169 URL:
http://svn.reactos.org/svn/reactos?rev=67169&view=rev
Log: [RAPPS] Update Database CORE-9348 #resolve #comment Database updated, have fun ^^ Modified: trunk/reactos/base/applications/rapps/rapps/cnt.txt trunk/reactos/base/applications/rapps/rapps/devcpp_tdm_gcc_x64.txt trunk/reactos/base/applications/rapps/rapps/doublecommander.txt trunk/reactos/base/applications/rapps/rapps/firefox.txt trunk/reactos/base/applications/rapps/rapps/foxit.txt trunk/reactos/base/applications/rapps/rapps/freebasic.txt trunk/reactos/base/applications/rapps/rapps/ghostscript.txt trunk/reactos/base/applications/rapps/rapps/gnucash.txt trunk/reactos/base/applications/rapps/rapps/inkscape.txt trunk/reactos/base/applications/rapps/rapps/libreoffice.txt trunk/reactos/base/applications/rapps/rapps/libreofficehelp.txt trunk/reactos/base/applications/rapps/rapps/mcwin32.txt trunk/reactos/base/applications/rapps/rapps/mirandaim.txt trunk/reactos/base/applications/rapps/rapps/mono2.txt trunk/reactos/base/applications/rapps/rapps/nirlauncher.txt trunk/reactos/base/applications/rapps/rapps/openttd.txt trunk/reactos/base/applications/rapps/rapps/python.txt trunk/reactos/base/applications/rapps/rapps/qmmp.txt trunk/reactos/base/applications/rapps/rapps/thunderbird.txt trunk/reactos/base/applications/rapps/rapps/utorrent.txt Modified: trunk/reactos/base/applications/rapps/rapps/cnt.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/rapps/ra…
============================================================================== --- trunk/reactos/base/applications/rapps/rapps/cnt.txt [iso-8859-1] (original) +++ trunk/reactos/base/applications/rapps/rapps/cnt.txt [iso-8859-1] Sun Apr 12 11:34:00 2015 @@ -3,7 +3,7 @@ [Section] Name = Click-N-Type Virtual Keyboard -Version = 3.03 +Version = 3.03.415 License = Freeware Description = Freeware virtual keyboard application. Size = 1.3 MB Modified: trunk/reactos/base/applications/rapps/rapps/devcpp_tdm_gcc_x64.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/rapps/ra…
============================================================================== --- trunk/reactos/base/applications/rapps/rapps/devcpp_tdm_gcc_x64.txt [iso-8859-1] (original) +++ trunk/reactos/base/applications/rapps/rapps/devcpp_tdm_gcc_x64.txt [iso-8859-1] Sun Apr 12 11:34:00 2015 @@ -3,13 +3,13 @@ [Section] Name = Orwell Dev-C++ TDM GCC x64 -Version = 5.9.2 +Version = 5.10 License = GPLv2 Description = A maintained version of Dev-C++. It contains 64 bit TDM-GCC compiler. Size = 44.9 MB Category = 7 URLSite =
http://orwelldevcpp.blogspot.com/
-URLDownload =
http://download.sourceforge.net/project/orwelldevcpp/Setup%20Releases/Dev-C…
+URLDownload =
http://download.sourceforge.net/project/orwelldevcpp/Setup%20Releases/Dev-C…
CDPath = none [Section.0407] Modified: trunk/reactos/base/applications/rapps/rapps/doublecommander.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/rapps/ra…
============================================================================== --- trunk/reactos/base/applications/rapps/rapps/doublecommander.txt [iso-8859-1] (original) +++ trunk/reactos/base/applications/rapps/rapps/doublecommander.txt [iso-8859-1] Sun Apr 12 11:34:00 2015 @@ -3,13 +3,13 @@ [Section] Name = Double Commander -Version = 0.6.0 Beta +Version = 0.6.1 Beta License = GPL Description = An open source file manager with two panels side by side. You will need a tool like 7-Zip to extract it. -Size = 9.4 MB +Size = 8.8 MB Category = 12 URLSite =
http://doublecmd.sourceforge.net/
-URLDownload =
http://download.sourceforge.net/project/doublecmd/DC%20for%20Windows%2032%2…
+URLDownload =
http://download.sourceforge.net/project/doublecmd/DC%20for%20Windows%2032%2…
CDPath = none [Section.0407] @@ -29,15 +29,15 @@ [Section.0418] Description = Gestionar (cu surse deschise) de fiÈiere dupÄ modelul paneluri-alÄturate. Este necesar un utilitar ca 7-Zip pentru a-l putea extrage. -Size = 9,4 Mo +Size = 8,8 Mo [Section.0419] Description = Double Commander - ÑÑо оÑкÑÑÑÑй двÑÑ Ð¿Ð°Ð½ÐµÐ»ÑнÑй ÑайловÑй менеджеÑ. Ðам нÑжен 7-Zip или Ð¿Ð¾Ð´Ð¾Ð±Ð½Ð°Ñ ÑÑилиÑа Ð´Ð»Ñ ÐµÐ³Ð¾ ÑаÑпаковки. [Section.041f] -Version = 0.6.0 GeliÅme +Version = 0.6.1 GeliÅme Description = Double Commander, yan yana iki bölmeli bir açık kaynak kütük yöneticisidir. Ãıkartmak için 7-Zip ya da benzeri bir yazılım kullanmanız gerekir. -Size = 9,4 MB +Size = 8,8 MB [Section.0422] Description = Double Commander - Ñе вÑдкÑиÑий двопанелÑний Ñайловий менеджеÑ. Ðам поÑÑÑбен 7-Zip або подÑбна ÑÑилÑÑа Ñоб ÑозпакÑваÑи його. Modified: trunk/reactos/base/applications/rapps/rapps/firefox.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/rapps/ra…
============================================================================== --- trunk/reactos/base/applications/rapps/rapps/firefox.txt [iso-8859-1] (original) +++ trunk/reactos/base/applications/rapps/rapps/firefox.txt [iso-8859-1] Sun Apr 12 11:34:00 2015 @@ -2,95 +2,95 @@ ; Turkish translation by Erdem Ersoy (eersoy93) (erdemersoy(a)live.com) [Section] -Name = Mozilla Firefox 36 -Version = 36.0.1 +Name = Mozilla Firefox 37 +Version = 37.0.1 License = MPL/GPL/LGPL Description = A popular Web browser. Free and open source, made by a global community. -Size = 37.79 MB +Size = 38.97 MB Category = 5 URLSite =
http://www.mozilla.org/en-US/
-URLDownload =
http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/36.0.1/win32/en-US/…
+URLDownload =
http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/37.0.1/win32/en-US/…
CDPath = none [Section.0405] Description = NejpopulárnÄjÅ¡Ã a jeden z nejlepÅ¡Ãch svobodných webových prohlÞeÄů. -Size = 37.6 MB +Size = 38.79 MB URLSite =
http://www.mozilla.org/cs/
-URLDownload =
http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/36.0.1/win32/cs/Fir…
+URLDownload =
http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/37.0.1/win32/cs/Fir…
[Section.0407] Description = Populärer, freier und quelloffener Webbrowser. -Size = 37.61 MB +Size = 38.79 MB URLSite =
http://www.mozilla.org/de/
-URLDownload =
http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/36.0.1/win32/de/Fir…
+URLDownload =
http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/37.0.1/win32/de/Fir…
[Section.0a] Description = Navegador web popular, libre y gratuito. -Size = 37.53 MB +Size = 38.72 MB URLSite =
http://www.mozilla.org/es-ES/
-URLDownload =
http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/36.0.1/win32/es-ES/…
+URLDownload =
http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/37.0.1/win32/es-ES/…
[Section.040c] Description = Le navigateur web gratuit le plus populaire et l'un des meilleurs. -Size = 37,89 Mo +Size = 39,08 Mo URLSite =
http://www.mozilla.org/fr/
-URLDownload =
http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/36.0.1/win32/fr/Fir…
+URLDownload =
http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/37.0.1/win32/fr/Fir…
[Section.0410] Description = Il più popolare e uno dei migliori web browser gratuiti. -Size = 37.53 MB +Size = 38.71 MB URLSite =
http://www.mozilla.org/it/
-URLDownload =
http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/36.0.1/win32/it/Fir…
+URLDownload =
http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/37.0.1/win32/it/Fir…
[Section.0413] Description = De meest populaire en een van de beste gratis Web browsers. -Size = 38.24 MB +Size = 39.43 MB URLSite =
http://www.mozilla.org/nl/
-URLDownload =
http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/36.0.1/win32/nl/Fir…
+URLDownload =
http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/37.0.1/win32/nl/Fir…
[Section.0414] Description = Mest populære og best også gratis nettleserene der ute. -Size = 37.59 MB -URLDownload =
http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/36.0.1/win32/nb-NO/…
+Size = 38.78 MB +URLDownload =
http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/37.0.1/win32/nb-NO/…
[Section.0415] Description = Najpopularniejsza i jedna z najlepszych darmowych przeglÄ darek internetowych. -Size = 38.47 MB +Size = 39.64 MB URLSite =
http://www.mozilla.org/pl/
-URLDownload =
http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/36.0.1/win32/pl/Fir…
+URLDownload =
http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/37.0.1/win32/pl/Fir…
[Section.0418] Description = Navigator web popular. Gratuit, cu surse deschise, creat de o comunitate globalÄ. -Size = 38,11 Mo +Size = 39,29 Mo URLSite =
http://www.mozilla.org/ro/
-URLDownload =
http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/36.0.1/win32/ro/Fir…
+URLDownload =
http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/37.0.1/win32/ro/Fir…
[Section.0419] Description = Ðдин из ÑамÑÑ Ð¿Ð¾Ð¿ÑлÑÑнÑÑ Ð¸ лÑÑÑÐ¸Ñ Ð±ÐµÑплаÑнÑÑ Ð±ÑаÑзеÑов. -Size = 37.99 MB +Size = 39.16 MB URLSite =
http://www.mozilla.org/ru/
-URLDownload =
http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/36.0.1/win32/ru/Fir…
+URLDownload =
http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/37.0.1/win32/ru/Fir…
[Section.041b] Description = NajpopulárnejÅ¡Ã a jeden z najlepÅ¡Ãch slobodný webových prehliadaÄov. -Size = 38.28 MB +Size = 39.46 MB URLSite =
http://www.mozilla.org/sk/
-URLDownload =
http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/36.0.1/win32/sk/Fir…
+URLDownload =
http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/37.0.1/win32/sk/Fir…
[Section.041f] Description = Ãzgür Umûmî AÄ tarayıcıları arasında en tutulanı ve en iyilerinden biri. -Size = 37,64 MB +Size = 38,82 MB URLSite =
http://www.mozilla.org/tr/
-URLDownload =
http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/36.0.1/win32/tr/Fir…
+URLDownload =
http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/37.0.1/win32/tr/Fir…
[Section.0422] Description = ÐайпопÑлÑÑнÑÑий Ñа один з кÑаÑÐ¸Ñ Ð±ÐµÐ·Ð¿Ð»Ð°ÑÐ½Ð¸Ñ Ð²ÐµÐ±-бÑаÑзеÑÑв. -Size = 38.02 MB +Size = 39.21 MB URLSite =
http://www.mozilla.org/uk/
-URLDownload =
http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/36.0.1/win32/uk/Fir…
+URLDownload =
http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/37.0.1/win32/uk/Fir…
[Section.0813] Description = De meest populaire en een van de beste gratis Web browsers. -Size = 38.24 MB +Size = 39.43 MB URLSite =
http://www.mozilla.org/nl/
-URLDownload =
http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/36.0.1/win32/nl/Fir…
+URLDownload =
http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/37.0.1/win32/nl/Fir…
Modified: trunk/reactos/base/applications/rapps/rapps/foxit.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/rapps/ra…
============================================================================== --- trunk/reactos/base/applications/rapps/rapps/foxit.txt [iso-8859-1] (original) +++ trunk/reactos/base/applications/rapps/rapps/foxit.txt [iso-8859-1] Sun Apr 12 11:34:00 2015 @@ -3,13 +3,13 @@ [Section] Name = Foxit Reader -Version = 7.1.0.0306 +Version = 7.1.0.0320 License = Freeware Description = Alternative PDF reader, rivaling Adobe Reader functionality-wise. -Size = 36.80 MB +Size = 36.59 MB Category = 6 URLSite =
http://www.foxitsoftware.com/Secure_PDF_Reader/
-URLDownload =
http://cdn01.foxitsoftware.com/pub/foxit/reader/desktop/win/7.x/7.1/en_us/F…
+URLDownload =
http://cdn01.foxitsoftware.com/pub/foxit/reader/desktop/win/7.x/7.1/en_us/F…
CDPath = none [Section.0407] Modified: trunk/reactos/base/applications/rapps/rapps/freebasic.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/rapps/ra…
============================================================================== --- trunk/reactos/base/applications/rapps/rapps/freebasic.txt [iso-8859-1] (original) +++ trunk/reactos/base/applications/rapps/rapps/freebasic.txt [iso-8859-1] Sun Apr 12 11:34:00 2015 @@ -3,13 +3,13 @@ [Section] Name = FreeBASIC -Version = 1.01.0 +Version = 1.02.0 License = GPL/LGPL Description = Open Source BASIC Compiler. The BASIC syntax is compatible with QBASIC. -Size = 9.0 MB +Size = 10.2 MB Category = 7 URLSite =
http://www.freebasic.net/
-URLDownload =
http://download.sourceforge.net/project/fbc/Binaries%20-%20Windows/FreeBASI…
+URLDownload =
http://download.sourceforge.net/project/fbc/Binaries%20-%20Windows/FreeBASI…
CDPath = none [Section.0407] @@ -20,7 +20,7 @@ [Section.040c] Description = Compilateur BASIC open source. La syntaxe du BASIC est compatible avec le QBASIC. -Size = 9,0 Mo +Size = 10,2 Mo [Section.0410] Description = Compilatore BASIC open source. La sintassi del BASIC è compatibile con il QBASIC. @@ -30,11 +30,11 @@ [Section.0418] Description = Compilator (cu surse deschise) BASIC. Sintaxa BASIC este compatibilÄ cu QBASIC. -Size = 9,0 Mo +Size = 10,2 Mo [Section.041f] Description = Açık kaynak BASIC derleyicisi. Bu BASIC söz dizimi, QBASIC ile uyumludur. -Size = 9,0 MB +Size = 10,2 MB [Section.0422] Description = ÐÑдкÑиÑий компÑлÑÑÐ¾Ñ BASIC. СинÑакÑÐ¸Ñ ÑÑмÑÑний з QBASIC. Modified: trunk/reactos/base/applications/rapps/rapps/ghostscript.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/rapps/ra…
============================================================================== --- trunk/reactos/base/applications/rapps/rapps/ghostscript.txt [iso-8859-1] (original) +++ trunk/reactos/base/applications/rapps/rapps/ghostscript.txt [iso-8859-1] Sun Apr 12 11:34:00 2015 @@ -3,13 +3,13 @@ [Section] Name = Ghostscript -Version = 9.15 +Version = 9.16 License = AGPL Description = An open interpreter for the PostScript language and for PDF. -Size = 12.65 MB +Size = 13.48 MB Category = 6 URLSite =
http://www.ghostscript.com/
-URLDownload =
http://downloads.ghostscript.com/public/gs915w32.exe
+URLDownload =
http://downloads.ghostscript.com/public/gs916w32.exe
CDPath = none [Section.0407] @@ -20,8 +20,8 @@ [Section.0418] Description = Interpretor pentru limbajul PostScript Èi pentru PDF. -Size = 12,65 Mo +Size = 13,48 Mo [Section.041f] Description = PostScript dili ve PDF için bir açık kaynak yorumlayıcı. -Size = 12,65 MB +Size = 13,48 MB Modified: trunk/reactos/base/applications/rapps/rapps/gnucash.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/rapps/ra…
============================================================================== --- trunk/reactos/base/applications/rapps/rapps/gnucash.txt [iso-8859-1] (original) +++ trunk/reactos/base/applications/rapps/rapps/gnucash.txt [iso-8859-1] Sun Apr 12 11:34:00 2015 @@ -3,13 +3,13 @@ [Section] Name = GnuCash -Version = 2.6.5 +Version = 2.6.6 License = GPL Description = A personal and small-business financial-accounting software, freely licensed under the GNU GPL and available for GNU/Linux, BSD, Solaris, Mac OS X and Microsoft Windows. -Size = 92.2 MB +Size = 92.6 MB Category = 10 URLSite =
http://gnucash.org/
-URLDownload =
http://downloads.sourceforge.net/sourceforge/gnucash/gnucash%20%28stable%29…
+URLDownload =
http://downloads.sourceforge.net/sourceforge/gnucash/gnucash%20%28stable%29…
CDPath = none [Section.0407] @@ -17,7 +17,7 @@ [Section.0418] Description = Program de contabilitate financiarÄ pentru uz personal Èi întreprinderi mici, oferit sub licenÈa gratuitÄ GNU GPL. Este disponibil pentru GNU/Linux, BSD, Solaris, Mac OS X Èi Windows. -Size = 92,2 Mo +Size = 92,6 Mo [Section.0a] Description = Un programa de contabilidad personal y de PYMEs liberado bajo los términos de la GNU GPL. Está disponible para GNU/Linux, BSD, Solaris, Mac OS X y Microsoft Windows. Modified: trunk/reactos/base/applications/rapps/rapps/inkscape.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/rapps/ra…
============================================================================== --- trunk/reactos/base/applications/rapps/rapps/inkscape.txt [iso-8859-1] (original) +++ trunk/reactos/base/applications/rapps/rapps/inkscape.txt [iso-8859-1] Sun Apr 12 11:34:00 2015 @@ -4,13 +4,13 @@ [Section] Name = Inkscape -Version = 0.48.5 +Version = 0.91 License = GPL Description = A vector graphics editor licensed under the GNU General Public License. -Size = 33 MB +Size = 41.31 MB Category = 3 URLSite =
http://www.inkscape.org/
-URLDownload =
http://download.sourceforge.net/inkscape/inkscape/0.48.5/Inkscape-0.48.5-1-…
+URLDownload =
https://inkscape.global.ssl.fastly.net/media/resources/file/Inkscape-0.91-1…
CDPath = none [Section.0407] @@ -18,11 +18,11 @@ [Section.0418] Description = Editor de graficÄ vectorialÄ oferit sub LicenÈa PublicÄ GeneralÄ GNU. -Size = 33 Mo +Size = 41,31 Mo [Section.0a] Description = Un editor de gráficos vectoriales bajo la licencia GNU GPL. [Section.041f] Description = Inkscape, GNU Umûmî Kamu Ruhsatı altında ruhsatlanmıŠbir yöney çizge düzenleyicisidir. -Size = 32,9 MB +Size = 41,31 MB Modified: trunk/reactos/base/applications/rapps/rapps/libreoffice.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/rapps/ra…
============================================================================== --- trunk/reactos/base/applications/rapps/rapps/libreoffice.txt [iso-8859-1] (original) +++ trunk/reactos/base/applications/rapps/rapps/libreoffice.txt [iso-8859-1] Sun Apr 12 11:34:00 2015 @@ -3,13 +3,13 @@ [Section] Name = LibreOffice -Version = 4.4.1 +Version = 4.4.2 License = LGPL Description = A powerful and open source office suite. It has been forked from OpenOffice. -Size = 213.88 MB +Size = 213.93 MB Category = 6 URLSite =
http://www.documentfoundation.org/
-URLDownload =
http://download.documentfoundation.org/libreoffice/stable/4.4.1/win/x86/Lib…
+URLDownload =
http://download.documentfoundation.org/libreoffice/stable/4.4.2/win/x86/Lib…
CDPath = none [Section.0407] @@ -20,7 +20,7 @@ [Section.040c] Description = Précédemment appelé OpenOffice. Suite bureautique open source. -Size = 213,88 Mo +Size = 213,93 Mo [Section.0410] Description = Precedentemente chiamato OpenOffice. Open Source Office Suite. @@ -33,11 +33,11 @@ [Section.0418] Description = O suitÄ completÄ de aplicaÈii de biroticÄ, cu surse deschise. ReprezintÄ o bifurcare a dezvoltÄrii OpenOffice. -Size = 213,88 Mo +Size = 213,93 Mo [Section.041f] Description = Güçlü ve açık kaynak bir ofis paketi. OpenOffice'ten çatallanılmıÅtır. -Size = 213,88 MB +Size = 213,93 MB [Section.0422] Description = ÐÑдкÑиÑий оÑÑÑний пакеÑ. Modified: trunk/reactos/base/applications/rapps/rapps/libreofficehelp.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/rapps/ra…
============================================================================== --- trunk/reactos/base/applications/rapps/rapps/libreofficehelp.txt [iso-8859-1] (original) +++ trunk/reactos/base/applications/rapps/rapps/libreofficehelp.txt [iso-8859-1] Sun Apr 12 11:34:00 2015 @@ -3,35 +3,35 @@ [Section] Name = LibreOffice Help Pack -Version = 4.4.1 +Version = 4.4.2 License = GPLv3 Description = Offline help content of LibreOffice. -Size = 5.12 MB +Size = 5.13 MB Category = 6 URLSite =
http://www.documentfoundation.org/
-URLDownload =
http://download.documentfoundation.org/libreoffice/stable/4.4.1/win/x86/Lib…
+URLDownload =
http://download.documentfoundation.org/libreoffice/stable/4.4.2/win/x86/Lib…
CDPath = none [Section.0407] Name = LibreOffice Help Pack Description = Offline Hilfe für LibreOffice. Size = 7.07 MB -URLDownload =
http://download.documentfoundation.org/libreoffice/stable/4.4.1/win/x86/Lib…
+URLDownload =
http://download.documentfoundation.org/libreoffice/stable/4.4.2/win/x86/Lib…
[Section.0418] Description = ConÈinut de asistenÈÄ Èi ajutor (în limba englezÄ) pentru LibreOffice. -Size = 5,12 Mo -URLDownload =
http://download.documentfoundation.org/libreoffice/stable/4.4.1/win/x86/Lib…
+Size = 5,13 Mo +URLDownload =
http://download.documentfoundation.org/libreoffice/stable/4.4.2/win/x86/Lib…
[Section.0a] Name = LibreOffice â Paquete de ayuda Description = Páginas de ayuda para LibreOffice. -Size = 7.07 MB -URLDownload =
http://download.documentfoundation.org/libreoffice/stable/4.4.1/win/x86/Lib…
+Size = 7.00 MB +URLDownload =
http://download.documentfoundation.org/libreoffice/stable/4.4.2/win/x86/Lib…
[Section.041f] Name = LibreOffice Yardım Paketi License = GPL sürüm 3 Description = LibreOffice'in çevrim dıÅı yardım içeriÄi. Size = 6,85 MB -URLDownload =
http://download.documentfoundation.org/libreoffice/stable/4.4.1/win/x86/Lib…
+URLDownload =
http://download.documentfoundation.org/libreoffice/stable/4.4.2/win/x86/Lib…
Modified: trunk/reactos/base/applications/rapps/rapps/mcwin32.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/rapps/ra…
============================================================================== --- trunk/reactos/base/applications/rapps/rapps/mcwin32.txt [iso-8859-1] (original) +++ trunk/reactos/base/applications/rapps/rapps/mcwin32.txt [iso-8859-1] Sun Apr 12 11:34:00 2015 @@ -3,20 +3,20 @@ [Section] Name = Midnight Commander -Version = Build 186 (4.8.12) +Version = Build 189 (4.8.13) License = GPLv3 Description = 32-bit Windows port of GNU Midnight Commander. Size = 2.35 MB Category = 12 URLSite =
http://sourceforge.net/projects/mcwin32/
-URLDownload =
http://download.sourceforge.net/project/mcwin32/mcwin32-build186-setup.exe
+URLDownload =
http://download.sourceforge.net/project/mcwin32/mcwin32-build189-setup.exe
CDPath = none [Section.0407] Description = 32-bit Windows port des GNU Midnight Commander. [Section.0410] -Version = Revisione 186 (4.8.12) +Version = Revisione 186 (4.8.13) License = GPL versione 3 Description = Un porting Windows 32bit di Midnight Commander. @@ -28,12 +28,12 @@ Description = 32-bitowy port GNU Midnight Commander dla Windows. [Section.0418] -Version = Versiunea 186 (4.8.12) +Version = Versiunea 186 (4.8.13) Description = Portarea Windows a programului GNU Midnight Commander pe 32-biÈi. Size = 2,35 Mo [Section.041f] -Version = Yapı 186 (4.8.12) +Version = Yapı 186 (4.8.13) License = GPL sürüm 3 Description = GNU Midnight Commander'ın 32 bitlik Windows uyarlamasıdır. Size = 2,35 MB Modified: trunk/reactos/base/applications/rapps/rapps/mirandaim.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/rapps/ra…
============================================================================== --- trunk/reactos/base/applications/rapps/rapps/mirandaim.txt [iso-8859-1] (original) +++ trunk/reactos/base/applications/rapps/rapps/mirandaim.txt [iso-8859-1] Sun Apr 12 11:34:00 2015 @@ -3,13 +3,13 @@ [Section] Name = Miranda IM -Version = 0.10.27 +Version = 0.10.30 License = GPL Description = Open source multiprotocol instant messaging application. May not work completely. Size = 7.6 MB Category = 5 URLSite =
http://www.miranda-im.org/
-URLDownload =
http://download.sourceforge.net/project/miranda/miranda-im/0.10.27.0/mirand…
+URLDownload =
http://download.sourceforge.net/project/miranda/miranda-im/0.10.30.0/mirand…
CDPath = none [Section.0407] Modified: trunk/reactos/base/applications/rapps/rapps/mono2.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/rapps/ra…
============================================================================== --- trunk/reactos/base/applications/rapps/rapps/mono2.txt [iso-8859-1] (original) +++ trunk/reactos/base/applications/rapps/rapps/mono2.txt [iso-8859-1] Sun Apr 12 11:34:00 2015 @@ -3,13 +3,13 @@ [Section] Name = Mono .NET Development Framework -Version = 3.2.3 +Version = 3.12.1 License = Unknown Description = Open-source .NET Framework. -Size = 98.49 MB +Size = 127.40 MB Category = 14 URLSite =
http://www.mono-project.com/
-URLDownload =
http://download.mono-project.com/archive/3.2.3/windows-installer/mono-3.2.3…
+URLDownload =
http://download.mono-project.com/archive/3.12.1/windows-installer/mono-3.12…
CDPath = none [Section.0407] @@ -20,7 +20,7 @@ [Section.040c] Description = Framework .NET open source. -Size = 98,49 Mo +Size = 127,40 Mo [Section.0410] Description = Versione Open-source di .NET Framework. @@ -31,13 +31,13 @@ [Section.0418] License = NespecificatÄ Description = PlatformÄ .NET (cu surse deschise). -Size = 98,49 Mo +Size = 127,40 Mo [Section.041f] Name = Mono .NET GeliÅtirme Ãatısı License = Bilinmiyor Description = Açık kaynak .NET Ãatısı. -Size = 98,49 MB +Size = 127,40 MB [Section.0422] Description = ÐÑдкÑиÑий .NET ФÑеймвоÑк. Modified: trunk/reactos/base/applications/rapps/rapps/nirlauncher.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/rapps/ra…
============================================================================== --- trunk/reactos/base/applications/rapps/rapps/nirlauncher.txt [iso-8859-1] (original) +++ trunk/reactos/base/applications/rapps/rapps/nirlauncher.txt [iso-8859-1] Sun Apr 12 11:34:00 2015 @@ -3,13 +3,13 @@ [Section] Name = NirLauncher -Version = 1.19.26 +Version = 1.19.28 License = Freeware Description = A package of more than 180 utilities for Windows. -Size = 20.53 MB +Size = 20.59 MB Category = 12 URLSite =
http://launcher.nirsoft.net/
-URLDownload =
http://download.nirsoft.net/nirsoft_package_1.19.26.zip
+URLDownload =
http://download.nirsoft.net/nirsoft_package_1.19.28.zip
CDPath = none [Section.0407] @@ -25,7 +25,7 @@ [Section.0418] Licence = GratuitÄ Description = Pachet cu peste 180 de utilitare. -Size = 20,53 Mo +Size = 20,59 Mo [Section.041f] License = Ãcretsiz Modified: trunk/reactos/base/applications/rapps/rapps/openttd.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/rapps/ra…
============================================================================== --- trunk/reactos/base/applications/rapps/rapps/openttd.txt [iso-8859-1] (original) +++ trunk/reactos/base/applications/rapps/rapps/openttd.txt [iso-8859-1] Sun Apr 12 11:34:00 2015 @@ -3,13 +3,13 @@ [Section] Name = OpenTTD -Version = 1.4.4 +Version = 1.5.0 License = GPL v2 Description = Open Source clone of the "Transport Tycoon Deluxe" game engine. You may need a copy of Transport Tycoon. -Size = 7.0 MB +Size = 7.15 MB Category = 4 URLSite =
http://www.openttd.org/
-URLDownload =
http://binaries.openttd.org/releases/1.4.4/openttd-1.4.4-windows-win32.exe
+URLDownload =
http://binaries.openttd.org/releases/1.5.0/openttd-1.5.0-windows-win32.exe
CDPath = none [Section.0407] @@ -20,7 +20,7 @@ [Section.040c] Description = Clone open source du moteur de jeu "Transport Tycoon Deluxe". Vous aurez besoin d'une copie de Transport Tycoon. -Size = 7,0 Mo +Size = 7,15 Mo [Section.0410] Description = Clone open source del motore di gioco di "Transport Tycoon Deluxe". Hai bisogno di una copia di Transport Tycoon. @@ -33,12 +33,12 @@ [Section.0418] Description = Clona (cu surse deschise a) motorului de joc âTransport Tycoon Deluxeâ. Ar putea fi necesarÄ o copie a jocului Transport Tycoon. -Size = 7,0 Mo +Size = 7,15 Mo [Section.041f] License = GPL sürüm 2 Description = "Transport Tycoon Deluxe" oyun motorunun açık kaynak taklidi. Transport Tycoon'un bir kopyası gerekir. -Size = 7,0 MB +Size = 7,15 MB [Section.0422] Description = ÐÑдкÑиÑий клон двигÑна гÑи "Transport Tycoon Deluxe". Ðам поÑÑÑбна копÑÑ Ð³Ñи Transport Tycoon. Modified: trunk/reactos/base/applications/rapps/rapps/python.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/rapps/ra…
============================================================================== --- trunk/reactos/base/applications/rapps/rapps/python.txt [iso-8859-1] (original) +++ trunk/reactos/base/applications/rapps/rapps/python.txt [iso-8859-1] Sun Apr 12 11:34:00 2015 @@ -6,10 +6,10 @@ Version = 3.5 License = GPL/LGPL Description = A remarkably powerful dynamic programming language. -Size = 27.4 MB +Size = 26.86 MB Category = 7 URLSite =
http://www.python.org/
-URLDownload =
http://www.python.org/ftp/python/3.5.0/python-3.5.0a2.exe
+URLDownload =
http://www.python.org/ftp/python/3.5.0/python-3.5.0a3.exe
CDPath = none [Section.0407] @@ -20,7 +20,7 @@ [Section.040c] Description = Un langage de programmation dynamique remarquablement puissant. -Size = 27,4 Mo +Size = 26,86 Mo [Section.0410] Description = Un Linguaggio di programmazione dinamico e potente. @@ -33,11 +33,11 @@ [Section.0418] Description = Limbaj de programare dinamic Èi puternic. -Size = 27,4 Mo +Size = 26,86 Mo [Section.041f] Description = Dikkat çekici, güçlü ve devingen bir izlenceleme dili. -Size = 27,4 MB +Size = 26,86 MB [Section.0422] Description = ÐÑже поÑÑжна динамÑÑна мова пÑогÑамÑваннÑ. Modified: trunk/reactos/base/applications/rapps/rapps/qmmp.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/rapps/ra…
============================================================================== --- trunk/reactos/base/applications/rapps/rapps/qmmp.txt [iso-8859-1] (original) +++ trunk/reactos/base/applications/rapps/rapps/qmmp.txt [iso-8859-1] Sun Apr 12 11:34:00 2015 @@ -4,13 +4,13 @@ [Section] Name = Qmmp (Qt-based Multimedia Player) -Version = 0.8.3 +Version = 0.8.4 License = GPL Description = An audio-player based on the Qt libraries. The user interface is similar to WinAMP or XMMS. Alternative user interfaces are also available. -Size = 12.66 MB +Size = 12.76 MB Category = 1 URLSite =
http://qmmp.ylsoftware.com/
-URLDownload =
http://qmmp.ylsoftware.com/files/windows/qmmp-0.8.3-win32.exe
+URLDownload =
http://qmmp.ylsoftware.com/files/windows/qmmp-0.8.4-win32.exe
CDPath = none [Section.0407] @@ -29,7 +29,7 @@ [Section.0418] Name = Qmmp Description = Lector audio ce utilizeazÄ biblioteca QT. InterfaÈa de utilizare e asemÄnÄtoare cu cea din WinAMP sau XMMS. De asemenea, sunt disponibile interfeÈe de utilizare alternative. -Size = 12,66 Mo +Size = 12,76 Mo [Section.0419] Description = ÐÑÐ´Ð¸Ð¾Ð¿Ð»ÐµÐµÑ Qmmp (Qt-based Multimedia Player). @@ -37,4 +37,4 @@ [Section.041f] Name = Qmmp (Qt Tabanlı Ãoklu Ortam Oynatıcısı) Description = Qmmp, Qt kitaplıÄının yardımıyla yazılmıŠbir ses oynatıcısıdır. Kullanıcı arayüzü WinAMP'a ve XMMS'ye benzer. BaÅka kullanıcı arayüzleri de vardır. -Size = 12,66 MB +Size = 12,76 MB Modified: trunk/reactos/base/applications/rapps/rapps/thunderbird.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/rapps/ra…
============================================================================== --- trunk/reactos/base/applications/rapps/rapps/thunderbird.txt [iso-8859-1] (original) +++ trunk/reactos/base/applications/rapps/rapps/thunderbird.txt [iso-8859-1] Sun Apr 12 11:34:00 2015 @@ -3,77 +3,77 @@ [Section] Name = Mozilla Thunderbird 31 -Version = 31.5.0 +Version = 31.6.0 License = MPL/GPL/LGPL Description = Popular and open source e-mail client. -Size = 25.25 MB +Size = 27.57 MB Category = 5 URLSite =
https://www.mozilla.org/en-US/thunderbird/
-URLDownload =
http://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/31.5.0/win32/en…
+URLDownload =
http://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/31.6.0/win32/en…
CDPath = none [Section.0407] Description = Populärer und quelloffener E-Mail-Client. -Size = 25.1 MB +Size = 27.41 MB URLSite =
https://www.mozilla.org/de/thunderbird/
-URLDownload =
http://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/31.5.0/win32/de…
+URLDownload =
http://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/31.6.0/win32/de…
[Section.0a] Description = Cliente de correo electrónico popular y de código abierto. -Size = 25.04 MB +Size = 27.36 MB URLSite =
https://www.mozilla.org/es-ES/thunderbird/
-URLDownload =
http://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/31.5.0/win32/es…
+URLDownload =
http://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/31.6.0/win32/es…
[Section.040c] Description = Le plus populaire et l'un des meilleurs clients mail gratuits disponible. -Size = 25,4 Mo +Size = 27,72 Mo URLSite =
https://www.mozilla.org/fr/thunderbird/
-URLDownload =
http://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/31.5.0/win32/fr…
+URLDownload =
http://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/31.6.0/win32/fr…
[Section.0410] Description = Il più popolare e il migliore Client mail gratuito. -Size = 25.04 MB +Size = 27.36 MB URLSite =
https://www.mozilla.org/it/thunderbird/
-URLDownload =
http://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/31.5.0/win32/it…
+URLDownload =
http://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/31.6.0/win32/it…
[Section.0413] Description = De meest populaire en een van de beste gratis e-mail-programma's. -Size = 25.74 MB +Size = 28.06 MB URLSite =
https://www.mozilla.org/nl/thunderbird/
-URLDownload =
http://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/31.5.0/win32/nl…
+URLDownload =
http://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/31.6.0/win32/nl…
[Section.0415] Description = Najpopularniejszy i jeden z najlepszych darmowych klientów poczty. -Size = 25.96 MB +Size = 28.27 MB URLSite =
https://www.mozilla.org/pl/thunderbird/
-URLDownload =
http://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/31.5.0/win32/pl…
+URLDownload =
http://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/31.6.0/win32/pl…
[Section.0418] Description = Client popular de poÈtÄ electronicÄ, cu surse deschise. -Size = 25,61 Mo +Size = 27,93 Mo URLSite =
https://www.mozilla.org/ro/thunderbird/
-URLDownload =
http://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/31.5.0/win32/ro…
+URLDownload =
http://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/31.6.0/win32/ro…
[Section.0419] Description = Ðдин из ÑамÑÑ Ð¿Ð¾Ð¿ÑлÑÑнÑÑ Ð¸ лÑÑÑÐ¸Ñ Ð±ÐµÑплаÑнÑÑ Ð¿Ð¾ÑÑовÑÑ ÐºÐ»Ð¸ÐµÐ½Ñов. -Size = 25.51 MB +Size = 27.83 MB URLSite =
https://www.mozilla.org/ru/thunderbird/
-URLDownload =
http://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/31.5.0/win32/ru…
+URLDownload =
http://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/31.6.0/win32/ru…
[Section.041f] Description = Ãzgür posta istemcileri arasında en tutulanı ve en iyilerinden biri. -Size = 25,13 MB +Size = 27,44 MB URLSite =
https://www.mozilla.org/tr/thunderbird/
-URLDownload =
http://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/31.5.0/win32/tr…
+URLDownload =
http://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/31.6.0/win32/tr…
[Section.0422] Description = ÐайпопÑлÑÑнÑÑий Ñа один з кÑаÑÐ¸Ñ Ð¿Ð¾ÑÑÐ¾Ð²Ð¸Ñ ÐºÐ»ÑÑнÑÑв. -Size = 25.54 MB +Size = 27.86 MB URLSite =
https://www.mozilla.org/uk/thunderbird/
-URLDownload =
http://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/31.5.0/win32/uk…
+URLDownload =
http://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/31.6.0/win32/uk…
[Section.0813] Description = De meest populaire en een van de beste gratis e-mail-programma's. -Size = 25.74 MB +Size = 28.06 MB URLSite =
https://www.mozilla.org/nl/thunderbird/
-URLDownload =
http://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/31.5.0/win32/nl…
+URLDownload =
http://ftp.mozilla.org/pub/mozilla.org/thunderbird/releases/31.6.0/win32/nl…
Modified: trunk/reactos/base/applications/rapps/rapps/utorrent.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/rapps/ra…
============================================================================== --- trunk/reactos/base/applications/rapps/rapps/utorrent.txt [iso-8859-1] (original) +++ trunk/reactos/base/applications/rapps/rapps/utorrent.txt [iso-8859-1] Sun Apr 12 11:34:00 2015 @@ -3,10 +3,10 @@ [Section] Name = µTorrent -Version = 3.4.2 +Version = 3.4.3 License = Freeware for non-commercial uses Description = Small and fast BitTorrent Client. -Size = 1.61 MB +Size = 1.66 MB Category = 5 URLSite =
http://www.utorrent.com/
URLDownload =
http://download-new.utorrent.com/endpoint/utorrent/os/windows/track/stable/…
@@ -23,7 +23,7 @@ [Section.040c] License = Gratuit pour une utilisation non-commerciale Description = Client BitTorrent petit et rapide. -Size = 1,61 Mo +Size = 1,66 Mo [Section.040c] License = Gratita per un uso non-commerciale @@ -44,7 +44,7 @@ [Section.0418] License = GratuitÄ pentru uz necomercial Description = Client BitTorrent, mic Èi rapid. -Size = 1,61 Mo +Size = 1,66 Mo [Section.0419] License = ÐеÑплаÑÐ½Ð°Ñ Ð´Ð»Ñ Ð½ÐµÐºÐ¾Ð¼Ð¼ÐµÑÑеÑкого иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ @@ -53,7 +53,7 @@ [Section.041f] License = Tecimlik olmayan kullanımlar için ücretsiz. Description = Küçük ve hızlı BitTorrent istemcisi. -Size = 1,61 MB +Size = 1,66 MB [Section.0422] License = ÐезплаÑна Ð´Ð»Ñ Ð½ÐµÐºÐ¾Ð¼ÐµÑÑÑйного викоÑиÑÑаннÑ
9 years, 8 months
1
0
0
0
[tkreuzer] 67168: [INCLUDE] - Add missing KeMemoryBarrierWithoutFence, NUMBER_POOL_LOOKASIDE_LISTS, MM_SHARED_USER_DATA_VA, MM_EMPTY_PTE_LIST, MM_EMPTY_LIST, P*E_PER_PAGE, SESSION_POOL_LOOKASIDES, ...
by tkreuzer@svn.reactos.org
Author: tkreuzer Date: Sun Apr 12 09:48:00 2015 New Revision: 67168 URL:
http://svn.reactos.org/svn/reactos?rev=67168&view=rev
Log: [INCLUDE] - Add missing KeMemoryBarrierWithoutFence, NUMBER_POOL_LOOKASIDE_LISTS, MM_SHARED_USER_DATA_VA, MM_EMPTY_PTE_LIST, MM_EMPTY_LIST, P*E_PER_PAGE, SESSION_POOL_LOOKASIDES, MiPdeToPte for ARM - Fix KI_USER_SHARED_DATA for ARM based on native DDK Modified: trunk/reactos/include/ddk/wdm.h trunk/reactos/include/ndk/arm/ketypes.h trunk/reactos/include/ndk/arm/mmtypes.h trunk/reactos/include/reactos/arm/armddk.h trunk/reactos/include/xdk/arm/ke.h trunk/reactos/ntoskrnl/include/internal/arm/mm.h trunk/reactos/ntoskrnl/mm/ARM3/miarm.h Modified: trunk/reactos/include/ddk/wdm.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/ddk/wdm.h?rev=6716…
============================================================================== --- trunk/reactos/include/ddk/wdm.h [iso-8859-1] (original) +++ trunk/reactos/include/ddk/wdm.h [iso-8859-1] Sun Apr 12 09:48:00 2015 @@ -8554,6 +8554,8 @@ #elif defined(_M_ARM) #include <armddk.h> + +#define KeMemoryBarrierWithoutFence() _ReadWriteBarrier() #else #error Unknown Architecture #endif Modified: trunk/reactos/include/ndk/arm/ketypes.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/ndk/arm/ketypes.h?…
============================================================================== --- trunk/reactos/include/ndk/arm/ketypes.h [iso-8859-1] (original) +++ trunk/reactos/include/ndk/arm/ketypes.h [iso-8859-1] Sun Apr 12 09:48:00 2015 @@ -80,6 +80,11 @@ // Static Kernel-Mode Address start (use MM_KSEG0_BASE for actual) // #define KSEG0_BASE 0x80000000 + +// +// Number of pool lookaside lists per pool in the PRCB +// +#define NUMBER_POOL_LOOKASIDE_LISTS 32 // // Trap Frame Definition Modified: trunk/reactos/include/ndk/arm/mmtypes.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/ndk/arm/mmtypes.h?…
============================================================================== --- trunk/reactos/include/ndk/arm/mmtypes.h [iso-8859-1] (original) +++ trunk/reactos/include/ndk/arm/mmtypes.h [iso-8859-1] Sun Apr 12 09:48:00 2015 @@ -42,6 +42,11 @@ // User space range limit // #define MI_HIGHEST_USER_ADDRESS (PVOID)0x7FFEFFFF + +// +// Address of the shared user page +// +#define MM_SHARED_USER_DATA_VA 0x7FFE0000 // // Sanity checks for Paging Macros Modified: trunk/reactos/include/reactos/arm/armddk.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/reactos/arm/armddk…
============================================================================== --- trunk/reactos/include/reactos/arm/armddk.h [iso-8859-1] (original) +++ trunk/reactos/include/reactos/arm/armddk.h [iso-8859-1] Sun Apr 12 09:48:00 2015 @@ -29,7 +29,7 @@ // FIXME: mmtypes.h? // #define KIP0PCRADDRESS 0xFFDFF000 -#define KI_USER_SHARED_DATA 0xFFDF0000 +#define KI_USER_SHARED_DATA 0xFFFF9000 #define USPCR 0x7FFF0000 #define PCR ((KPCR * const)KIP0PCRADDRESS) #define USERPCR ((volatile KPCR * const)USPCR) @@ -246,7 +246,7 @@ #define ASSERT_BREAKPOINT BREAKPOINT_COMMAND_STRING + 1 -#define DbgRaiseAssertionFailure() __break(ASSERT_BREAKPOINT) +#define DbgRaiseAssertionFailure() __emit(0xdefc) #define PCR_MINOR_VERSION 1 #define PCR_MAJOR_VERSION 1 Modified: trunk/reactos/include/xdk/arm/ke.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/xdk/arm/ke.h?rev=6…
============================================================================== --- trunk/reactos/include/xdk/arm/ke.h [iso-8859-1] (original) +++ trunk/reactos/include/xdk/arm/ke.h [iso-8859-1] Sun Apr 12 09:48:00 2015 @@ -1,3 +1,5 @@ $if (_WDMDDK_) #include <armddk.h> $endif + +#define KeMemoryBarrierWithoutFence() _ReadWriteBarrier() Modified: trunk/reactos/ntoskrnl/include/internal/arm/mm.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/include/internal/…
============================================================================== --- trunk/reactos/ntoskrnl/include/internal/arm/mm.h [iso-8859-1] (original) +++ trunk/reactos/ntoskrnl/include/internal/arm/mm.h [iso-8859-1] Sun Apr 12 09:48:00 2015 @@ -15,6 +15,10 @@ // #define CPT_SHIFT 10 #define CPT_SIZE (1 << CPT_SHIFT) + +/* MMPTE related defines */ +#define MM_EMPTY_PTE_LIST ((ULONG)0xFFFFF) +#define MM_EMPTY_LIST ((ULONG_PTR)-1) // // Base Addresses @@ -86,7 +90,7 @@ typedef struct _PAGE_DIRECTORY_ARM { - union + union { HARDWARE_PDE_ARMV6 Pde[4096]; HARDWARE_LARGE_PTE_ARMV6 Pte[4096]; @@ -108,8 +112,8 @@ PULONG MmGetPageDirectory(VOID); #define MI_MAKE_LOCAL_PAGE(x) ((x)->u.Hard.NonGlobal = 1) -#define MI_MAKE_DIRTY_PAGE(x) -#define MI_MAKE_ACCESSED_PAGE(x) +#define MI_MAKE_DIRTY_PAGE(x) +#define MI_MAKE_ACCESSED_PAGE(x) #define MI_MAKE_OWNER_PAGE(x) ((x)->u.Hard.Owner = 1) #define MI_MAKE_WRITE_PAGE(x) ((x)->u.Hard.ReadOnly = 0) #define MI_PAGE_DISABLE_CACHE(x) ((x)->u.Hard.Cached = 0) @@ -144,7 +148,7 @@ /* Retrives the PDE entry for the given VA */ #define MiGetPdeAddress(x) ((PMMPDE)(PDE_BASE + (((ULONG)(x) >> 20) << 2))) #define MiAddressToPde(x) MiGetPdeAddress(x) - + /* Retrieves the PTE entry for the given VA */ #define MiGetPteAddress(x) ((PMMPTE)(PTE_BASE + (((ULONG)(x) >> 12) << 2))) #define MiAddressToPte(x) MiGetPteAddress(x) @@ -153,7 +157,7 @@ #define MiGetPdeOffset(x) (((ULONG)(x)) >> 20) #define MiGetPteOffset(x) ((((ULONG)(x)) << 12) >> 24) #define MiAddressToPteOffset(x) MiGetPteOffset(x) - + /* Convert a PTE into a corresponding address */ #define MiPteToAddress(x) ((PVOID)((ULONG)(x) << 10)) #define MiPdeToAddress(x) ((PVOID)((ULONG)(x) << 18)) @@ -163,5 +167,5 @@ #define PAGE_TO_SECTION_PAGE_TABLE_OFFSET(x) \ ((((x)) % (4*1024*1024)) / (4*1024)) - + #define MM_CACHE_LINE_SIZE 64 Modified: trunk/reactos/ntoskrnl/mm/ARM3/miarm.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/mm/ARM3/miarm.h?r…
============================================================================== --- trunk/reactos/ntoskrnl/mm/ARM3/miarm.h [iso-8859-1] (original) +++ trunk/reactos/ntoskrnl/mm/ARM3/miarm.h [iso-8859-1] Sun Apr 12 09:48:00 2015 @@ -84,6 +84,9 @@ #define MiIsPteOnPdeBoundary(PointerPte) \ ((((ULONG_PTR)PointerPte) & (PAGE_SIZE - 1)) == 0) #elif _M_ARM +#define PPE_PER_PAGE 1 +#define PDE_PER_PAGE 4096 +#define PTE_PER_PAGE 256 #define PD_COUNT 1 #define PDE_COUNT 4096 #define PTE_COUNT 256 @@ -311,6 +314,8 @@ #define SESSION_POOL_LOOKASIDES 21 #elif defined(_M_IX86) #define SESSION_POOL_LOOKASIDES 26 +#elif defined(_M_ARM) +#define SESSION_POOL_LOOKASIDES 26 // CHECKME #else #error Not Defined! #endif @@ -379,6 +384,11 @@ #define POOL_FREE_IRQL_INVALID 9 #define POOL_BILLED_PROCESS_INVALID 13 #define POOL_HEADER_SIZE_INVALID 32 + +#ifdef _M_ARM +#define MiPdeToPte(PDE) ((PMMPTE)MiPteToAddress(PDE)) +#endif + typedef struct _POOL_DESCRIPTOR {
9 years, 8 months
1
0
0
0
[pschweitzer] 67167: [MYCOMPUT] Add Italian translation. Patch by Carlo Bramini CORE-9524 #resolve #comment Commited in r67167. Thanks!
by pschweitzer@svn.reactos.org
Author: pschweitzer Date: Sun Apr 12 09:17:53 2015 New Revision: 67167 URL:
http://svn.reactos.org/svn/reactos?rev=67167&view=rev
Log: [MYCOMPUT] Add Italian translation. Patch by Carlo Bramini CORE-9524 #resolve #comment Commited in r67167. Thanks! Added: trunk/reactos/dll/win32/mycomput/lang/it-IT.rc (with props) Modified: trunk/reactos/dll/win32/mycomput/mycomput.rc Added: trunk/reactos/dll/win32/mycomput/lang/it-IT.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/mycomput/lang/it…
============================================================================== --- trunk/reactos/dll/win32/mycomput/lang/it-IT.rc (added) +++ trunk/reactos/dll/win32/mycomput/lang/it-IT.rc [iso-8859-1] Sun Apr 12 09:17:53 2015 @@ -0,0 +1,6 @@ +LANGUAGE LANG_ITALIAN, SUBLANG_NEUTRAL + +STRINGTABLE +BEGIN + IDS_MANAGE "Gestione" +END Propchange: trunk/reactos/dll/win32/mycomput/lang/it-IT.rc ------------------------------------------------------------------------------ svn:eol-style = native Modified: trunk/reactos/dll/win32/mycomput/mycomput.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/mycomput/mycompu…
============================================================================== --- trunk/reactos/dll/win32/mycomput/mycomput.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/mycomput/mycomput.rc [iso-8859-1] Sun Apr 12 09:17:53 2015 @@ -15,6 +15,9 @@ #ifdef LANGUAGE_EN_US #include "lang/en-US.rc" #endif +#ifdef LANGUAGE_IT_IT + #include "lang/it-IT.rc" +#endif #ifdef LANGUAGE_RO_RO #include "lang/ro-RO.rc" #endif
9 years, 8 months
1
0
0
0
[dquintana] 67166: [NTOBJSHEX] * Make the info struct pointers const, to ensure we are not modifying the contents from the const idlists. * Disable checking that the provided PIDL is part of the fo...
by dquintana@svn.reactos.org
Author: dquintana Date: Sun Apr 12 01:34:53 2015 New Revision: 67166 URL:
http://svn.reactos.org/svn/reactos?rev=67166&view=rev
Log: [NTOBJSHEX] * Make the info struct pointers const, to ensure we are not modifying the contents from the const idlists. * Disable checking that the provided PIDL is part of the folder. Fixes enumeration in ros, but feels a lot like hiding a bug. CORE-9432 #resolve Modified: trunk/reactos/dll/shellext/ntobjshex/ntobjns.cpp trunk/reactos/dll/shellext/ntobjshex/precomp.h trunk/reactos/dll/shellext/ntobjshex/regfolder.cpp Modified: trunk/reactos/dll/shellext/ntobjshex/ntobjns.cpp URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/shellext/ntobjshex/nto…
============================================================================== --- trunk/reactos/dll/shellext/ntobjshex/ntobjns.cpp [iso-8859-1] (original) +++ trunk/reactos/dll/shellext/ntobjshex/ntobjns.cpp [iso-8859-1] Sun Apr 12 01:34:53 2015 @@ -199,7 +199,7 @@ return S_OK; } - HRESULT FindPidlInList(PCUITEMID_CHILD pcidl, NtPidlEntry ** pinfo) + HRESULT FindPidlInList(PCUITEMID_CHILD pcidl, const NtPidlEntry ** pinfo) { HRESULT hr; @@ -326,7 +326,7 @@ return S_OK; } - static LPITEMIDLIST CreatePidlFromItem(NtPidlEntry * entry) + static LPITEMIDLIST CreatePidlFromItem(const NtPidlEntry * entry) { LPITEMIDLIST idl = (LPITEMIDLIST) CoTaskMemAlloc(entry->cb + 2); if (!idl) @@ -336,7 +336,7 @@ return idl; } - static HRESULT CompareIDs(LPARAM lParam, NtPidlEntry * first, NtPidlEntry * second) + static HRESULT CompareIDs(LPARAM lParam, const NtPidlEntry * first, const NtPidlEntry * second) { if ((lParam & 0xFFFF0000) == SHCIDS_ALLFIELDS) { @@ -431,7 +431,7 @@ return E_INVALIDARG; } - static HRESULT CompareIDs(LPARAM lParam, NtPidlEntry * first, LPCITEMIDLIST pcidl) + static HRESULT CompareIDs(LPARAM lParam, const NtPidlEntry * first, LPCITEMIDLIST pcidl) { LPCITEMIDLIST p = pcidl; NtPidlEntry * second = (NtPidlEntry*) &(p->mkid); @@ -451,7 +451,7 @@ return CompareIDs(lParam, first, pcidl2); } - static ULONG ConvertAttributes(NtPidlEntry * entry, PULONG inMask) + static ULONG ConvertAttributes(const NtPidlEntry * entry, PULONG inMask) { ULONG mask = inMask ? *inMask : 0xFFFFFFFF; ULONG flags = SFGAO_HASPROPSHEET | SFGAO_CANLINK; @@ -470,7 +470,7 @@ BOOL IsFolder(LPCITEMIDLIST pcidl) { - NtPidlEntry * entry; + const NtPidlEntry * entry; HRESULT hr = FindPidlInList(pcidl, &entry); if (FAILED_UNEXPECTEDLY(hr)) return FALSE; @@ -668,7 +668,7 @@ REFIID riid, void **ppvOut) { - NtPidlEntry * info; + const NtPidlEntry * info; HRESULT hr; if (IsEqualIID(riid, IID_IShellFolder)) @@ -816,8 +816,7 @@ PCUITEMID_CHILD_ARRAY apidl, SFGAOF *rgfInOut) { - NtPidlEntry * info; - HRESULT hr; + const NtPidlEntry * info; TRACE("GetAttributesOf\n"); @@ -831,9 +830,15 @@ { PCUITEMID_CHILD pidl = apidl[i]; - hr = m_PidlManager->FindPidlInList(pidl, &info); +#ifndef DISABLE_STRICT_PIDL_CHECK + HRESULT hr = m_PidlManager->FindPidlInList(pidl, &info); if (FAILED_UNEXPECTEDLY(hr)) return hr; +#else + info = (const NtPidlEntry *) pidl; + if (info->magic != NT_OBJECT_PIDL_MAGIC) + return E_INVALIDARG; +#endif // Update attributes. *rgfInOut = m_PidlManager->ConvertAttributes(info, rgfInOut); @@ -912,14 +917,20 @@ SHGDNF uFlags, STRRET *lpName) { - NtPidlEntry * info; + const NtPidlEntry * info; HRESULT hr; TRACE("GetDisplayNameOf %p\n", pidl); +#ifndef DISABLE_STRICT_PIDL_CHECK hr = m_PidlManager->FindPidlInList(pidl, &info); if (FAILED_UNEXPECTEDLY(hr)) return hr; +#else + info = (const NtPidlEntry *) pidl; + if (info->magic != NT_OBJECT_PIDL_MAGIC) + return E_INVALIDARG; +#endif if ((GET_SHGDN_RELATION(uFlags) == SHGDN_NORMAL) && (GET_SHGDN_FOR(uFlags) & SHGDN_FORPARSING)) @@ -1085,16 +1096,21 @@ const SHCOLUMNID *pscid, VARIANT *pv) { - NtPidlEntry * info; - HRESULT hr; + const NtPidlEntry * info; TRACE("GetDetailsEx\n"); if (pidl) { - hr = m_PidlManager->FindPidlInList(pidl, &info); +#ifndef DISABLE_STRICT_PIDL_CHECK + HRESULT hr = m_PidlManager->FindPidlInList(pidl, &info); if (FAILED_UNEXPECTEDLY(hr)) return hr; +#else + info = (const NtPidlEntry *) pidl; + if (info->magic != NT_OBJECT_PIDL_MAGIC) + return E_INVALIDARG; +#endif static const GUID storage = PSGUID_STORAGE; if (IsEqualGUID(pscid->fmtid, storage)) @@ -1163,16 +1179,21 @@ UINT iColumn, SHELLDETAILS *psd) { - NtPidlEntry * info; - HRESULT hr; + const NtPidlEntry * info; TRACE("GetDetailsOf\n"); if (pidl) { - hr = m_PidlManager->FindPidlInList(pidl, &info); +#ifndef DISABLE_STRICT_PIDL_CHECK + HRESULT hr = m_PidlManager->FindPidlInList(pidl, &info); if (FAILED_UNEXPECTEDLY(hr)) return hr; +#else + info = (const NtPidlEntry *) pidl; + if (info->magic != NT_OBJECT_PIDL_MAGIC) + return E_INVALIDARG; +#endif switch (iColumn) { Modified: trunk/reactos/dll/shellext/ntobjshex/precomp.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/shellext/ntobjshex/pre…
============================================================================== --- trunk/reactos/dll/shellext/ntobjshex/precomp.h [iso-8859-1] (original) +++ trunk/reactos/dll/shellext/ntobjshex/precomp.h [iso-8859-1] Sun Apr 12 01:34:53 2015 @@ -48,3 +48,6 @@ #include "ntobjns.h" #include "regfolder.h" + +// Workaround for missing entries +#define DISABLE_STRICT_PIDL_CHECKS Modified: trunk/reactos/dll/shellext/ntobjshex/regfolder.cpp URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/shellext/ntobjshex/reg…
============================================================================== --- trunk/reactos/dll/shellext/ntobjshex/regfolder.cpp [iso-8859-1] (original) +++ trunk/reactos/dll/shellext/ntobjshex/regfolder.cpp [iso-8859-1] Sun Apr 12 01:34:53 2015 @@ -194,7 +194,7 @@ return S_OK; } - HRESULT FindPidlInList(PCUITEMID_CHILD pcidl, RegPidlEntry ** pinfo) + HRESULT FindPidlInList(PCUITEMID_CHILD pcidl, const RegPidlEntry ** pinfo) { HRESULT hr; @@ -323,7 +323,7 @@ } - static LPITEMIDLIST CreatePidlFromItem(RegPidlEntry * entry) + static LPITEMIDLIST CreatePidlFromItem(const RegPidlEntry * entry) { LPITEMIDLIST idl = (LPITEMIDLIST) CoTaskMemAlloc(entry->cb + 2); if (!idl) @@ -333,7 +333,7 @@ return idl; } - static HRESULT CompareIDs(LPARAM lParam, RegPidlEntry * first, RegPidlEntry * second) + static HRESULT CompareIDs(LPARAM lParam, const RegPidlEntry * first, const RegPidlEntry * second) { if ((lParam & 0xFFFF0000) == SHCIDS_ALLFIELDS) { @@ -418,7 +418,7 @@ return E_INVALIDARG; } - static HRESULT CompareIDs(LPARAM lParam, RegPidlEntry * first, LPCITEMIDLIST pcidl) + static HRESULT CompareIDs(LPARAM lParam, const RegPidlEntry * first, LPCITEMIDLIST pcidl) { LPCITEMIDLIST p = pcidl; RegPidlEntry * second = (RegPidlEntry*) &(p->mkid); @@ -438,7 +438,7 @@ return CompareIDs(lParam, first, pcidl2); } - static ULONG ConvertAttributes(RegPidlEntry * entry, PULONG inMask) + static ULONG ConvertAttributes(const RegPidlEntry * entry, PULONG inMask) { ULONG mask = inMask ? *inMask : 0xFFFFFFFF; ULONG flags = 0; @@ -452,7 +452,7 @@ BOOL IsFolder(LPCITEMIDLIST pcidl) { - RegPidlEntry * entry; + const RegPidlEntry * entry; HRESULT hr = FindPidlInList(pcidl, &entry); if (FAILED_UNEXPECTEDLY(hr)) return FALSE; @@ -512,7 +512,7 @@ } } - HRESULT FormatContentsForDisplay(RegPidlEntry * info, PCWSTR * strContents) + HRESULT FormatContentsForDisplay(const RegPidlEntry * info, PCWSTR * strContents) { PVOID td = (((PBYTE) info) + FIELD_OFFSET(RegPidlEntry, entryName) + info->entryNameLength + sizeof(WCHAR)); @@ -752,7 +752,7 @@ REFIID riid, void **ppvOut) { - RegPidlEntry * info; + const RegPidlEntry * info; HRESULT hr; if (IsEqualIID(riid, IID_IShellFolder)) @@ -866,8 +866,7 @@ PCUITEMID_CHILD_ARRAY apidl, SFGAOF *rgfInOut) { - RegPidlEntry * info; - HRESULT hr; + const RegPidlEntry * info; TRACE("GetAttributesOf\n"); @@ -881,9 +880,15 @@ { PCUITEMID_CHILD pidl = apidl[i]; - hr = m_PidlManager->FindPidlInList(pidl, &info); +#ifndef DISABLE_STRICT_PIDL_CHECK + HRESULT hr = m_PidlManager->FindPidlInList(pidl, &info); if (FAILED_UNEXPECTEDLY(hr)) return hr; +#else + info = (const RegPidlEntry *) pidl; + if (info->magic != REGISTRY_PIDL_MAGIC) + return E_INVALIDARG; +#endif // Update attributes. *rgfInOut = m_PidlManager->ConvertAttributes(info, rgfInOut); @@ -962,14 +967,20 @@ SHGDNF uFlags, STRRET *lpName) { - RegPidlEntry * info; + const RegPidlEntry * info; HRESULT hr; TRACE("GetDisplayNameOf %p\n", pidl); +#ifndef DISABLE_STRICT_PIDL_CHECK hr = m_PidlManager->FindPidlInList(pidl, &info); if (FAILED_UNEXPECTEDLY(hr)) return hr; +#else + info = (const RegPidlEntry *) pidl; + if (info->magic != REGISTRY_PIDL_MAGIC) + return E_INVALIDARG; +#endif if ((GET_SHGDN_RELATION(uFlags) == SHGDN_NORMAL) && (GET_SHGDN_FOR(uFlags) & SHGDN_FORPARSING)) @@ -1134,16 +1145,22 @@ const SHCOLUMNID *pscid, VARIANT *pv) { - RegPidlEntry * info; + const RegPidlEntry * info; HRESULT hr; TRACE("GetDetailsEx\n"); if (pidl) { +#ifndef DISABLE_STRICT_PIDL_CHECK hr = m_PidlManager->FindPidlInList(pidl, &info); if (FAILED_UNEXPECTEDLY(hr)) return hr; +#else + info = (const RegPidlEntry *) pidl; + if (info->magic != REGISTRY_PIDL_MAGIC) + return E_INVALIDARG; +#endif static const GUID storage = PSGUID_STORAGE; if (IsEqualGUID(pscid->fmtid, storage)) @@ -1208,16 +1225,22 @@ UINT iColumn, SHELLDETAILS *psd) { - RegPidlEntry * info; + const RegPidlEntry * info; HRESULT hr; TRACE("GetDetailsOf\n"); if (pidl) { +#ifndef DISABLE_STRICT_PIDL_CHECK hr = m_PidlManager->FindPidlInList(pidl, &info); if (FAILED_UNEXPECTEDLY(hr)) return hr; +#else + info = (const RegPidlEntry *) pidl; + if (info->magic != REGISTRY_PIDL_MAGIC) + return E_INVALIDARG; +#endif switch (iColumn) {
9 years, 8 months
1
0
0
0
[dreimer] 67165: [RAPPS] Add more recent Setup for Steam (2 years more recent) + localisations for the setup by Radek Liska CORE-4196 #resolve #comment Added to RAPPS, have fun ^^
by dreimer@svn.reactos.org
Author: dreimer Date: Sat Apr 11 14:03:58 2015 New Revision: 67165 URL:
http://svn.reactos.org/svn/reactos?rev=67165&view=rev
Log: [RAPPS] Add more recent Setup for Steam (2 years more recent) + localisations for the setup by Radek Liska CORE-4196 #resolve #comment Added to RAPPS, have fun ^^ Modified: trunk/reactos/base/applications/rapps/rapps/steam.txt Modified: trunk/reactos/base/applications/rapps/rapps/steam.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/rapps/ra…
============================================================================== --- trunk/reactos/base/applications/rapps/rapps/steam.txt [iso-8859-1] (original) +++ trunk/reactos/base/applications/rapps/rapps/steam.txt [iso-8859-1] Sat Apr 11 14:03:58 2015 @@ -5,10 +5,10 @@ Name = Steam License = Freeware Description = Popular Internet game distribution platform and social network. Includes DRM. -Size = 1.59 MB +Size = 1.08 MB Category = 4 -URLSite =
http://steampowered.com/
-URLDownload =
http://storefront.steampowered.com/download/SteamInstall.msi
+URLSite =
http://store.steampowered.com/
+URLDownload =
http://media.steampowered.com/client/installer/SteamSetup.exe
CDPath = none [Section.0407] @@ -21,7 +21,7 @@ [Section.040c] Description = La plateforme de jeu Steam utilisée par beaucoup de jeux de nos jours. -Size = 1,59 Mo +Size = 1,08 Mo URLSite =
http://store.steampowered.com/?l=french
[Section.0410] @@ -39,13 +39,13 @@ [Section.0418] License = GratuitÄ Description = PlatformÄ popularÄ de distribuÈie a jocurilor Èi reÈea de socializare. Include mecanisme de gestiune a drepturilor de autor (DRM). -Size = 1,59 Mo +Size = 1,08 Mo URLSite =
http://store.steampowered.com/?l=romanian
[Section.041f] License = Ãcretsiz Description = Bugünlerde Steam oyun platformu birçok oyun eliyle kullanılmaktadır. -Size = 1,59 MB +Size = 1,08 MB URLSite =
http://store.steampowered.com/?l=turkish
[Section.0422]
9 years, 8 months
1
0
0
0
← Newer
1
...
29
30
31
32
33
34
35
...
49
Older →
Jump to page:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
Results per page:
10
25
50
100
200