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
May 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
15 participants
500 discussions
Start a n
N
ew thread
[tkreuzer] 67724: [LIBSAMPLERATE] Fix build
by tkreuzer@svn.reactos.org
Author: tkreuzer Date: Thu May 14 20:58:41 2015 New Revision: 67724 URL:
http://svn.reactos.org/svn/reactos?rev=67724&view=rev
Log: [LIBSAMPLERATE] Fix build Modified: trunk/reactos/lib/3rdparty/libsamplerate/config.h Modified: trunk/reactos/lib/3rdparty/libsamplerate/config.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/3rdparty/libsamplerate…
============================================================================== --- trunk/reactos/lib/3rdparty/libsamplerate/config.h [iso-8859-1] (original) +++ trunk/reactos/lib/3rdparty/libsamplerate/config.h [iso-8859-1] Thu May 14 20:58:41 2015 @@ -96,10 +96,10 @@ /* #undef HAVE_LIBM */ /* Define if you have C99's lrint function. */ -/* #undef HAVE_LRINT */ +#define HAVE_LRINT 1 /* Define if you have C99's lrintf function. */ -/* #undef HAVE_LRINTF */ +#define HAVE_LRINTF 1 /* Define to 1 if you have the `malloc' function. */ #define HAVE_MALLOC 1
9 years, 7 months
1
0
0
0
[tkreuzer] 67723: [D3DX9_36/WINED3D] Partly revert previous changes, bringing back copysignf. Add global defines copysignf=_copysignf, since we have that now.
by tkreuzer@svn.reactos.org
Author: tkreuzer Date: Thu May 14 20:45:56 2015 New Revision: 67723 URL:
http://svn.reactos.org/svn/reactos?rev=67723&view=rev
Log: [D3DX9_36/WINED3D] Partly revert previous changes, bringing back copysignf. Add global defines copysignf=_copysignf, since we have that now. Modified: trunk/reactos/dll/directx/wine/d3dx9_36/CMakeLists.txt trunk/reactos/dll/directx/wine/d3dx9_36/math.c trunk/reactos/dll/directx/wine/wined3d/CMakeLists.txt trunk/reactos/dll/directx/wine/wined3d/utils.c Modified: trunk/reactos/dll/directx/wine/d3dx9_36/CMakeLists.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/directx/wine/d3dx9_36/…
============================================================================== --- trunk/reactos/dll/directx/wine/d3dx9_36/CMakeLists.txt [iso-8859-1] (original) +++ trunk/reactos/dll/directx/wine/d3dx9_36/CMakeLists.txt [iso-8859-1] Thu May 14 20:45:56 2015 @@ -1,5 +1,5 @@ -add_definitions(-D__WINESRC__) +add_definitions(-D__WINESRC__ -Dcopysignf=_copysignf) include_directories(${REACTOS_SOURCE_DIR}/include/reactos/wine) spec2def(d3dx9_36.dll d3dx9_36.spec ADD_IMPORTLIB) Modified: trunk/reactos/dll/directx/wine/d3dx9_36/math.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/directx/wine/d3dx9_36/…
============================================================================== --- trunk/reactos/dll/directx/wine/d3dx9_36/math.c [iso-8859-1] (original) +++ trunk/reactos/dll/directx/wine/d3dx9_36/math.c [iso-8859-1] Thu May 14 20:45:56 2015 @@ -2118,7 +2118,7 @@ { int exp = 0, origexp; float tmp = fabsf(in); - int sign = (in < 0); + int sign = (copysignf(1, in) < 0); unsigned int mantissa; unsigned short ret; Modified: trunk/reactos/dll/directx/wine/wined3d/CMakeLists.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/directx/wine/wined3d/C…
============================================================================== --- trunk/reactos/dll/directx/wine/wined3d/CMakeLists.txt [iso-8859-1] (original) +++ trunk/reactos/dll/directx/wine/wined3d/CMakeLists.txt [iso-8859-1] Thu May 14 20:45:56 2015 @@ -2,7 +2,8 @@ add_definitions( -D__WINESRC__ -D_USE_MATH_DEFINES - -DUSE_WIN32_OPENGL) + -DUSE_WIN32_OPENGL + -Dcopysignf=_copysignf) include_directories(BEFORE ${REACTOS_SOURCE_DIR}/include/reactos/wine) Modified: trunk/reactos/dll/directx/wine/wined3d/utils.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/directx/wine/wined3d/u…
============================================================================== --- trunk/reactos/dll/directx/wine/wined3d/utils.c [iso-8859-1] (original) +++ trunk/reactos/dll/directx/wine/wined3d/utils.c [iso-8859-1] Thu May 14 20:45:56 2015 @@ -3987,7 +3987,7 @@ { int idx = 1; - if (value < 0.0f) + if (copysignf(1.0f, value) < 0.0f) ++idx; /* Be sure to allocate a buffer of at least 17 characters for the result
9 years, 7 months
1
0
0
0
[tkreuzer] 67722: [CRT] Update / improve math.h a bit
by tkreuzer@svn.reactos.org
Author: tkreuzer Date: Thu May 14 20:21:14 2015 New Revision: 67722 URL:
http://svn.reactos.org/svn/reactos?rev=67722&view=rev
Log: [CRT] Update / improve math.h a bit Modified: trunk/reactos/include/c++/cmath trunk/reactos/include/crt/crtdefs.h trunk/reactos/include/crt/math.h Modified: trunk/reactos/include/c++/cmath URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/c%2B%2B/cmath?rev=…
============================================================================== --- trunk/reactos/include/c++/cmath [iso-8859-1] (original) +++ trunk/reactos/include/c++/cmath [iso-8859-1] Thu May 14 20:21:14 2015 @@ -1,6 +1,7 @@ //Standard C++ math declarations #pragma once +#define _CMATH_ #include <math.h> Modified: trunk/reactos/include/crt/crtdefs.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/crt/crtdefs.h?rev=…
============================================================================== --- trunk/reactos/include/crt/crtdefs.h [iso-8859-1] (original) +++ trunk/reactos/include/crt/crtdefs.h [iso-8859-1] Thu May 14 20:21:14 2015 @@ -226,6 +226,10 @@ #ifndef _CRT_OBSOLETE #define _CRT_OBSOLETE(_NewItem) +#endif + +#ifndef _CRT_JIT_INTRINSIC +#define _CRT_JIT_INTRINSIC #endif Modified: trunk/reactos/include/crt/math.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/crt/math.h?rev=677…
============================================================================== --- trunk/reactos/include/crt/math.h [iso-8859-1] (original) +++ trunk/reactos/include/crt/math.h [iso-8859-1] Thu May 14 20:21:14 2015 @@ -1,25 +1,19 @@ /** * This file has no copyright assigned and is placed in the Public Domain. - * This file is part of the w64 mingw-runtime package. - * No warranty is given; refer to the file DISCLAIMER within this package. */ #ifndef _INC_MATH #define _INC_MATH #include "crtdefs.h" -struct _exception; - #pragma pack(push,_CRT_PACKING) #ifdef __cplusplus extern "C" { #endif -#if defined(__GNUC__) -/* Some 3rd party code needs the declaration of C99 functions */ -#include "mingw_math.h" -#endif +typedef float float_t; +typedef double double_t; #ifndef _EXCEPTION_DEFINED #define _EXCEPTION_DEFINED @@ -37,7 +31,10 @@ struct _complex { double x,y; }; -#endif +#if !__STDC__ && !defined(__cplusplus) +#define complex _complex +#endif /* __STDC__ */ +#endif /* _COMPLEX_DEFINED */ #define _DOMAIN 1 #define _SING 2 @@ -45,191 +42,236 @@ #define _UNDERFLOW 4 #define _TLOSS 5 #define _PLOSS 6 + #define EDOM 33 #define ERANGE 34 - _CRTIMP extern double _HUGE; + _CRTIMP extern double const _HUGE; #define HUGE_VAL _HUGE + +#ifndef _HUGE_ENUF +#define _HUGE_ENUF 1e+300 +#endif +#define INFINITY ((float)(_HUGE_ENUF * _HUGE_ENUF)) +#define HUGE_VALD ((double)INFINITY) +#define HUGE_VALF ((float)INFINITY) +#define HUGE_VALL ((long double)INFINITY) +#define NAN ((float)(INFINITY * 0.0F)) + +#define _DENORM (-2) +#define _FINITE (-1) +#define _INFCODE 1 +#define _NANCODE 2 + +#define FP_INFINITE _INFCODE +#define FP_NAN _NANCODE +#define FP_NORMAL _FINITE +#define FP_SUBNORMAL _DENORM +#define FP_ZERO 0 + +#ifndef __cplusplus #define _matherrl _matherr +#endif #ifndef _CRT_ABS_DEFINED #define _CRT_ABS_DEFINED - int __cdecl abs(_In_ int x); - long __cdecl labs(_In_ long x); -#endif - - double __cdecl acos(_In_ double x); - double __cdecl asin(_In_ double x); - double __cdecl atan(_In_ double x); - double __cdecl atan2(_In_ double y, _In_ double x); - double __cdecl cos(_In_ double x); - double __cdecl cosh(_In_ double x); - double __cdecl exp(_In_ double x); - double __cdecl fabs(_In_ double x); - double __cdecl fmod(_In_ double x, _In_ double y); - double __cdecl log(_In_ double x); - double __cdecl log10(_In_ double x); - double __cdecl pow(_In_ double x, double y); - double __cdecl sin(_In_ double x); - double __cdecl sinh(_In_ double x); - double __cdecl sqrt(_In_ double x); - double __cdecl tan(_In_ double x); - double __cdecl tanh(_In_ double x); +_Check_return_ int __cdecl abs(_In_ int x); +_Check_return_ long __cdecl labs(_In_ long x); +_Check_return_ long long __cdecl llabs(_In_ long long x); +#endif + +_Check_return_ double __cdecl acos(_In_ double x); +_Check_return_ double __cdecl asin(_In_ double x); +_Check_return_ double __cdecl atan(_In_ double x); +_Check_return_ double __cdecl atan2(_In_ double y, _In_ double x); +_Check_return_ double __cdecl cos(_In_ double x); +_Check_return_ double __cdecl cosh(_In_ double x); +_Check_return_ double __cdecl exp(_In_ double x); +_Check_return_ _CRT_JIT_INTRINSIC double __cdecl fabs(_In_ double x); +_Check_return_ double __cdecl fmod(_In_ double x, _In_ double y); +_Check_return_ double __cdecl log(_In_ double x); +_Check_return_ double __cdecl log10(_In_ double x); +_Check_return_ double __cdecl pow(_In_ double x, double y); +_Check_return_ double __cdecl sin(_In_ double x); +_Check_return_ double __cdecl sinh(_In_ double x); +_Check_return_ _CRT_JIT_INTRINSIC double __cdecl sqrt(_In_ double x); +_Check_return_ double __cdecl tan(_In_ double x); +_Check_return_ double __cdecl tanh(_In_ double x); #ifndef _CRT_MATHERR_DEFINED #define _CRT_MATHERR_DEFINED - int __cdecl _matherr(_Inout_ struct _exception *except); +int __CRTDECL _matherr(_Inout_ struct _exception *except); #endif #ifndef _CRT_ATOF_DEFINED #define _CRT_ATOF_DEFINED - - _Check_return_ - _CRTIMP - double - __cdecl - atof( - _In_z_ const char *str); - - _Check_return_ - _CRTIMP - double - __cdecl - _atof_l( - _In_z_ const char *str, - _In_opt_ _locale_t locale); - +_Check_return_ _CRTIMP double __cdecl atof(_In_z_ const char *str); +_Check_return_ _CRTIMP double __cdecl _atof_l(_In_z_ const char *str, _In_opt_ _locale_t locale); // vista+ #endif /* _CRT_ATOF_DEFINED */ #ifndef _SIGN_DEFINED #define _SIGN_DEFINED - _Check_return_ _CRTIMP double __cdecl _copysign(_In_ double x, _In_ double sgn); - _Check_return_ _CRTIMP double __cdecl _chgsign(_In_ double x); -#endif - - _CRTIMP double __cdecl _cabs(_In_ struct _complex a); - _CRTIMP double __cdecl ceil(_In_ double x); - _CRTIMP double __cdecl floor(_In_ double x); - _CRTIMP double __cdecl frexp(_In_ double x, _Out_ int *y); - _CRTIMP double __cdecl _hypot(_In_ double x, _In_ double y); - _CRTIMP double __cdecl _j0(_In_ double x); - _CRTIMP double __cdecl _j1(_In_ double x); - _CRTIMP double __cdecl _jn(_In_ int x, _In_ double y); - _CRTIMP double __cdecl ldexp(_In_ double x, _In_ int y); - _CRTIMP double __cdecl modf(_In_ double x, _Out_ double *y); - _CRTIMP double __cdecl _y0(_In_ double x); - _CRTIMP double __cdecl _y1(_In_ double x); - _CRTIMP double __cdecl _yn(_In_ int x, _In_ double y); - _CRTIMP float __cdecl _hypotf(_In_ float x, _In_ float y); +_Check_return_ _CRTIMP double __cdecl _copysign(_In_ double x, _In_ double sgn); +_Check_return_ _CRTIMP double __cdecl _chgsign(_In_ double x); +#endif + +_Check_return_ _CRTIMP double __cdecl _cabs(_In_ struct _complex a); +_Check_return_ _CRTIMP double __cdecl _hypot(_In_ double x, _In_ double y); +_Check_return_ _CRTIMP double __cdecl _j0(_In_ double x); +_Check_return_ _CRTIMP double __cdecl _j1(_In_ double x); +_Check_return_ _CRTIMP double __cdecl _jn(_In_ int x, _In_ double y); +_Check_return_ _CRTIMP double __cdecl _nextafter(_In_ double x, _In_ double y); +_Check_return_ _CRTIMP double __cdecl _y0(_In_ double x); +_Check_return_ _CRTIMP double __cdecl _y1(_In_ double x); +_Check_return_ _CRTIMP double __cdecl _yn(_In_ int x, _In_ double y); +_Check_return_ _CRTIMP double __cdecl ceil(_In_ double x); +_Check_return_ _CRTIMP double __cdecl floor(_In_ double x); +_Check_return_ _CRTIMP double __cdecl frexp(_In_ double x, _Out_ int *y); +_Check_return_ _CRTIMP double __cdecl ldexp(_In_ double x, _In_ int y); +_Check_return_ _CRTIMP double __cdecl modf(_In_ double x, _Out_ double *y); #if defined(__i386__) || defined(_M_IX86) - _CRTIMP int __cdecl _set_SSE2_enable(_In_ int flag); +_Check_return_ _CRTIMP int __cdecl _set_SSE2_enable(_In_ int flag); #endif #if defined(__x86_64) || defined(_M_AMD64) - _CRTIMP float __cdecl _copysignf(_In_ float x, _In_ float sgn); - _CRTIMP float __cdecl _chgsignf(_In_ float x); - _CRTIMP float __cdecl _logbf(_In_ float x); - _CRTIMP float __cdecl _nextafterf(_In_ float x, _In_ float y); - _CRTIMP int __cdecl _finitef(_In_ float x); - _CRTIMP int __cdecl _isnanf(_In_ float x); - _CRTIMP int __cdecl _fpclassf(_In_ float x); -#endif +_Check_return_ _CRTIMP float __cdecl _nextafterf(_In_ float x, _In_ float y); +_Check_return_ _CRTIMP int __cdecl _isnanf(_In_ float x); +_Check_return_ _CRTIMP int __cdecl _fpclassf(_In_ float x); +#endif + +#if defined(__x86_64) || defined(_M_AMD64) || \ + defined(__arm__) || defined(_M_ARM) || \ + defined(__arm64__) || defined(_M_ARM64) +_Check_return_ _CRTIMP int __cdecl _finitef(_In_ float x); +_Check_return_ _CRTIMP float __cdecl _logbf(_In_ float x); +#endif /* _M_AMD64 || _M_ARM || _M_ARM64 */ #if defined(__ia64__) || defined (_M_IA64) - _CRTIMP float __cdecl fabsf(_In_ float x); - _CRTIMP float __cdecl ldexpf(_In_ float x, _In_ int y); - _CRTIMP long double __cdecl tanl(_In_ long double x); +_Check_return_ _CRTIMP float __cdecl ldexpf(_In_ float x, _In_ int y); +_Check_return_ _CRTIMP long double __cdecl tanl(_In_ long double x); #else - __CRT_INLINE float __cdecl fabsf(_In_ float x) { return ((float)fabs((double)x)); } - __CRT_INLINE float __cdecl ldexpf(_In_ float x, _In_ int expn) { return (float)ldexp(x, expn); } - __CRT_INLINE long double tanl(_In_ long double x) { return (tan((double)x)); } -#endif - -#if (_WIN32_WINNT >= 0x600) && \ - (defined(__x86_64) || defined(_M_AMD64) || \ - defined (__ia64__) || defined (_M_IA64)) - - _CRTIMP float __cdecl acosf(_In_ float x); - _CRTIMP float __cdecl asinf(_In_ float x); - _CRTIMP float __cdecl atanf(_In_ float x); - _CRTIMP float __cdecl atan2f(_In_ float x, _In_ float y); - _CRTIMP float __cdecl ceilf(_In_ float x); - _CRTIMP float __cdecl cosf(_In_ float x); - _CRTIMP float __cdecl coshf(_In_ float x); - _CRTIMP float __cdecl expf(_In_ float x); - _CRTIMP float __cdecl floorf(_In_ float x); - _CRTIMP float __cdecl fmodf(_In_ float x, _In_ float y); - _CRTIMP float __cdecl logf(_In_ float x); - _CRTIMP float __cdecl log10f(_In_ float x); - _CRTIMP float __cdecl modff(_In_ float x, _Out_ float *y); - _CRTIMP float __cdecl powf(_In_ float b, _In_ float e); - _CRTIMP float __cdecl sinf(_In_ float x); - _CRTIMP float __cdecl sinhf(_In_ float x); - _CRTIMP float __cdecl sqrtf(_In_ float x); - _CRTIMP float __cdecl tanf(_In_ float x); - _CRTIMP float __cdecl tanhf(_In_ float x); - +_Check_return_ __CRT_INLINE float __CRTDECL ldexpf(_In_ float x, _In_ int y) { return (float)ldexp(x, y); } +_Check_return_ __CRT_INLINE long double __CRTDECL tanl(_In_ long double x) { return (tan((double)x)); } +#endif + +#if defined(__ia64__) || defined(_M_IA64) || \ + defined(__arm__) || defined(_M_ARM) || \ + defined(__arm64__) || defined(_M_ARM64) +_Check_return_ _CRT_JIT_INTRINSIC _CRTIMP float __cdecl fabsf(_In_ float x); #else - - __CRT_INLINE float acosf(_In_ float x) { return ((float)acos((double)x)); } - __CRT_INLINE float asinf(_In_ float x) { return ((float)asin((double)x)); } - __CRT_INLINE float atanf(_In_ float x) { return ((float)atan((double)x)); } - __CRT_INLINE float atan2f(_In_ float x, _In_ float y) { return ((float)atan2((double)x,(double)y)); } - __CRT_INLINE float ceilf(_In_ float x) { return ((float)ceil((double)x)); } - __CRT_INLINE float cosf(_In_ float x) { return ((float)cos((double)x)); } - __CRT_INLINE float coshf(_In_ float x) { return ((float)cosh((double)x)); } - __CRT_INLINE float expf(_In_ float x) { return ((float)exp((double)x)); } - __CRT_INLINE float floorf(_In_ float x) { return ((float)floor((double)x)); } - __CRT_INLINE float fmodf(_In_ float x, _In_ float y) { return ((float)fmod((double)x,(double)y)); } - __CRT_INLINE float logf(_In_ float x) { return ((float)log((double)x)); } - __CRT_INLINE float log10f(_In_ float x) { return ((float)log10((double)x)); } - __CRT_INLINE float modff(_In_ float x, _Out_ float *y) { - double _Di,_Df = modf((double)x,&_Di); - *y = (float)_Di; - return ((float)_Df); - } - __CRT_INLINE float powf(_In_ float x, _In_ float y) { return ((float)pow((double)x,(double)y)); } - __CRT_INLINE float sinf(_In_ float x) { return ((float)sin((double)x)); } - __CRT_INLINE float sinhf(_In_ float x) { return ((float)sinh((double)x)); } - __CRT_INLINE float sqrtf(_In_ float x) { return ((float)sqrt((double)x)); } - __CRT_INLINE float tanf(_In_ float x) { return ((float)tan((double)x)); } - __CRT_INLINE float tanhf(_In_ float x) { return ((float)tanh((double)x)); } - -#endif - - __CRT_INLINE long double acosl(_In_ long double x) { return (acos((double)x)); } - __CRT_INLINE long double asinl(_In_ long double x) { return (asin((double)x)); } - __CRT_INLINE long double atanl(_In_ long double x) { return (atan((double)x)); } - __CRT_INLINE long double atan2l(_In_ long double y, _In_ long double x) { return (atan2((double)y, (double)x)); } - __CRT_INLINE long double ceill(_In_ long double x) { return (ceil((double)x)); } - __CRT_INLINE long double cosl(_In_ long double x) { return (cos((double)x)); } - __CRT_INLINE long double coshl(_In_ long double x) { return (cosh((double)x)); } - __CRT_INLINE long double expl(_In_ long double x) { return (exp((double)x)); } - __CRT_INLINE long double floorl(_In_ long double x) { return (floor((double)x)); } - __CRT_INLINE long double fmodl(_In_ long double x, _In_ long double y) { return (fmod((double)x, (double)y)); } - __CRT_INLINE long double frexpl(_In_ long double x, _Out_ int *y) { return (frexp((double)x, y)); } - __CRT_INLINE long double logl(_In_ long double x) { return (log((double)x)); } - __CRT_INLINE long double log10l(_In_ long double x) { return (log10((double)x)); } - __CRT_INLINE long double powl(_In_ long double x, _In_ long double y) { return (pow((double)x, (double)y)); } - __CRT_INLINE long double sinl(_In_ long double x) { return (sin((double)x)); } - __CRT_INLINE long double sinhl(_In_ long double x) { return (sinh((double)x)); } - __CRT_INLINE long double sqrtl(_In_ long double x) { return (sqrt((double)x)); } - __CRT_INLINE long double tanhl(_In_ long double x) {return (tanh((double)x)); } - __CRT_INLINE long double __cdecl fabsl(_In_ long double x) { return fabs((double)x); } - __CRT_INLINE long double _chgsignl(_In_ long double _Number) { return _chgsign((double)(_Number)); } - __CRT_INLINE long double _copysignl(_In_ long double _Number, _In_ long double _Sign) { return _copysign((double)(_Number),(double)(_Sign)); } - __CRT_INLINE long double _hypotl(_In_ long double x, _In_ long double y) { return _hypot((double)(x),(double)(y)); } - __CRT_INLINE float frexpf(_In_ float x, _Out_ int *y) { return ((float)frexp((double)x,y)); } - __CRT_INLINE long double ldexpl(_In_ long double x, _In_ int y) { return ldexp((double)x, y); } - __CRT_INLINE long double modfl(_In_ long double x, _Out_ long double *y) { - double _Di,_Df = modf((double)x,&_Di); - *y = (long double)_Di; - return (_Df); - } - -#ifndef NO_OLDNAMES +_Check_return_ __CRT_INLINE float __CRTDECL fabsf(_In_ float x) { return ((float)fabs((double)x)); } +#endif /* _M_IA64 || _M_ARM || _M_ARM64 */ + +#if defined(_CRTBLD) || \ + defined(__x86_64) || defined(_M_AMD64) || \ + defined(__ia64__) || defined(_M_IA64) || \ + defined(__arm__) || defined(_M_ARM) || \ + defined(__arm64__) || defined(_M_ARM64) +_Check_return_ _CRTIMP float __cdecl _chgsignf(_In_ float x); +_Check_return_ _CRTIMP float __cdecl _copysignf(_In_ float x, _In_ float y); +_Check_return_ _CRTIMP float __cdecl _hypotf(_In_ float x, _In_ float y); +_Check_return_ _CRTIMP float __cdecl acosf(_In_ float x); +_Check_return_ _CRTIMP float __cdecl asinf(_In_ float x); +_Check_return_ _CRTIMP float __cdecl atanf(_In_ float x); +_Check_return_ _CRTIMP float __cdecl atan2f(_In_ float x, _In_ float y); +_Check_return_ _CRTIMP float __cdecl ceilf(_In_ float x); +_Check_return_ _CRTIMP float __cdecl cosf(_In_ float x); +_Check_return_ _CRTIMP float __cdecl coshf(_In_ float x); +_Check_return_ _CRTIMP float __cdecl expf(_In_ float x); +_Check_return_ _CRTIMP float __cdecl floorf(_In_ float x); +_Check_return_ _CRTIMP float __cdecl fmodf(_In_ float x, _In_ float y); +_Check_return_ _CRTIMP float __cdecl logf(_In_ float x); +_Check_return_ _CRTIMP float __cdecl log10f(_In_ float x); +_Check_return_ _CRTIMP float __cdecl modff(_In_ float x, _Out_ float *y); +_Check_return_ _CRTIMP float __cdecl powf(_In_ float b, _In_ float e); +_Check_return_ _CRTIMP float __cdecl sinf(_In_ float x); +_Check_return_ _CRTIMP float __cdecl sinhf(_In_ float x); +_Check_return_ _CRTIMP float __cdecl sqrtf(_In_ float x); +_Check_return_ _CRTIMP float __cdecl tanf(_In_ float x); +_Check_return_ _CRTIMP float __cdecl tanhf(_In_ float x); +#else +#if defined(_MSC_VER) && (defined(_M_AMD64) || defined(_M_ARM)) +/* Make sure intrinsics don't get in our way */ +#pragma warning(suppress:4164) /* intrinsic not declared */ +#pragma function(acosf,asinf,atanf,atan2f,ceilf,cosf,coshf,expf,floorf,fmodf,logf,log10f,log10f,powf,sinf,sinhf,sqrtf,tanf,tanhf) +#endif /* _MSC_VER */ +_Check_return_ __CRT_INLINE float _chgsignf(_In_ float x) { return (float)_chgsign((double)x); } +_Check_return_ __CRT_INLINE float _copysignf(_In_ float x, _In_ float y) { return (float)_copysign((double)x, (double)y); } +_Check_return_ __CRT_INLINE float _hypotf(_In_ float x, _In_ float y) { return (float)_hypot((double)x, (double)y); } +_Check_return_ __CRT_INLINE float acosf(_In_ float x) { return (float)acos((double)x); } +_Check_return_ __CRT_INLINE float asinf(_In_ float x) { return (float)asin((double)x); } +_Check_return_ __CRT_INLINE float atanf(_In_ float x) { return (float)atan((double)x); } +_Check_return_ __CRT_INLINE float atan2f(_In_ float x, _In_ float y) { return (float)atan2((double)x,(double)y); } +_Check_return_ __CRT_INLINE float ceilf(_In_ float x) { return (float)ceil((double)x); } +_Check_return_ __CRT_INLINE float cosf(_In_ float x) { return (float)cos((double)x); } +_Check_return_ __CRT_INLINE float coshf(_In_ float x) { return (float)cosh((double)x); } +_Check_return_ __CRT_INLINE float expf(_In_ float x) { return (float)exp((double)x); } +_Check_return_ __CRT_INLINE float floorf(_In_ float x) { return (float)floor((double)x); } +_Check_return_ __CRT_INLINE float fmodf(_In_ float x, _In_ float y) { return (float)fmod((double)x,(double)y); } +_Check_return_ __CRT_INLINE float logf(_In_ float x) { return (float)log((double)x); } +_Check_return_ __CRT_INLINE float log10f(_In_ float x) { return (float)log10((double)x); } +_Check_return_ __CRT_INLINE float modff(_In_ float x, _Out_ float *y) { double _Di,_Df = modf((double)x,&_Di); *y = (float)_Di; return (float)_Df; } +_Check_return_ __CRT_INLINE float powf(_In_ float x, _In_ float y) { return (float)pow((double)x,(double)y); } +_Check_return_ __CRT_INLINE float sinf(_In_ float x) { return (float)sin((double)x); } +_Check_return_ __CRT_INLINE float sinhf(_In_ float x) { return (float)sinh((double)x); } +_Check_return_ __CRT_INLINE float sqrtf(_In_ float x) { return (float)sqrt((double)x); } +_Check_return_ __CRT_INLINE float tanf(_In_ float x) { return (float)tan((double)x); } +_Check_return_ __CRT_INLINE float tanhf(_In_ float x) { return (float)tanh((double)x); } +#endif +_Check_return_ __CRT_INLINE double hypot(_In_ double x, _In_ double y) { return _hypot(x, y); } +_Check_return_ __CRT_INLINE float hypotf(_In_ float x, _In_ float y) { return _hypotf(x, y); } +_Check_return_ __CRT_INLINE float frexpf(_In_ float x, _Out_ int *y) { return ((float)frexp((double)x,y)); } + +/* long double equals double, so just use inline wrappers */ +_Check_return_ __CRT_INLINE long double acosl(_In_ long double x) { return (acos((double)x)); } +_Check_return_ __CRT_INLINE long double asinl(_In_ long double x) { return (asin((double)x)); } +_Check_return_ __CRT_INLINE long double atanl(_In_ long double x) { return (atan((double)x)); } +_Check_return_ __CRT_INLINE long double atan2l(_In_ long double y, _In_ long double x) { return (atan2((double)y, (double)x)); } +_Check_return_ __CRT_INLINE long double ceill(_In_ long double x) { return (ceil((double)x)); } +_Check_return_ __CRT_INLINE long double cosl(_In_ long double x) { return (cos((double)x)); } +_Check_return_ __CRT_INLINE long double coshl(_In_ long double x) { return (cosh((double)x)); } +_Check_return_ __CRT_INLINE long double expl(_In_ long double x) { return (exp((double)x)); } +_Check_return_ __CRT_INLINE long double fabsl(_In_ long double x) { return fabs((double)x); } +_Check_return_ __CRT_INLINE long double floorl(_In_ long double x) { return (floor((double)x)); } +_Check_return_ __CRT_INLINE long double fmodl(_In_ long double x, _In_ long double y) { return (fmod((double)x, (double)y)); } +_Check_return_ __CRT_INLINE long double frexpl(_In_ long double x, _Out_ int *y) { return (frexp((double)x, y)); } +_Check_return_ __CRT_INLINE long double hypotl(_In_ long double x, _In_ long double y) { return _hypot((double)x, (double)y); } +_Check_return_ __CRT_INLINE long double logl(_In_ long double x) { return (log((double)x)); } +_Check_return_ __CRT_INLINE long double log10l(_In_ long double x) { return (log10((double)x)); } +_Check_return_ __CRT_INLINE long double powl(_In_ long double x, _In_ long double y) { return (pow((double)x, (double)y)); } +_Check_return_ __CRT_INLINE long double sinl(_In_ long double x) { return (sin((double)x)); } +_Check_return_ __CRT_INLINE long double sinhl(_In_ long double x) { return (sinh((double)x)); } +_Check_return_ __CRT_INLINE long double sqrtl(_In_ long double x) { return (sqrt((double)x)); } +_Check_return_ __CRT_INLINE long double tanhl(_In_ long double x) {return (tanh((double)x)); } +_Check_return_ __CRT_INLINE long double _chgsignl(_In_ long double number) { return _chgsign((double)number); } +_Check_return_ __CRT_INLINE long double _copysignl(_In_ long double number, _In_ long double sign) { return _copysign((double)number, (double)sign); } +_Check_return_ __CRT_INLINE long double _hypotl(_In_ long double x, _In_ long double y) { return _hypot((double)x, (double)y); } +_Check_return_ __CRT_INLINE long double ldexpl(_In_ long double x, _In_ int y) { return ldexp((double)x, y); } +_Check_return_ __CRT_INLINE long double modfl(_In_ long double x, _Out_ long double *y) { return (long double)modf((double)x, (double *)y); } + +/* Support for some functions, not exported in MSVCRT */ +_Check_return_ __CRT_INLINE double round(_In_ double x) { return (x < 0) ? ceil(x - 0.5f) : floor(x + 0.5); } +_Check_return_ __CRT_INLINE float roundf(_In_ float x) { return (x < 0) ? ceilf(x - 0.5f) : floorf(x + 0.5); } +_Check_return_ __CRT_INLINE long double roundl(_In_ long double x) { return (x < 0) ? ceill(x - 0.5f) : floorl(x + 0.5); } +_Check_return_ __CRT_INLINE long lround(_In_ double x) { return (long)((x < 0) ? (x - 0.5f) : (x + 0.5)); } +_Check_return_ __CRT_INLINE long lroundf(_In_ float x) { return (long)((x < 0) ? (x - 0.5f) : (x + 0.5)); } +_Check_return_ __CRT_INLINE long lroundl(_In_ long double x) { return (long)((x < 0) ? (x - 0.5f) : (x + 0.5)); } +_Check_return_ __CRT_INLINE long long llround(_In_ double x) { return (long long)((x < 0) ? (x - 0.5f) : (x + 0.5)); } +_Check_return_ __CRT_INLINE long long llroundf(_In_ float x) { return (long long)((x < 0) ? (x - 0.5f) : (x + 0.5)); } +_Check_return_ __CRT_INLINE long long llroundl(_In_ long double x) { return (long long)((x < 0) ? (x - 0.5f) : (x + 0.5)); } +_Check_return_ __CRT_INLINE double rint(_In_ double x) { return round(x); } +_Check_return_ __CRT_INLINE float rintf(_In_ float x) { return roundf(x); } +_Check_return_ __CRT_INLINE long double rintl(_In_ long double x) { return roundl(x); } +_Check_return_ __CRT_INLINE long lrint(_In_ double x) { return (long)((x < 0) ? (x - 0.5f) : (x + 0.5)); } +_Check_return_ __CRT_INLINE long lrintf(_In_ float x) { return (long)((x < 0) ? (x - 0.5f) : (x + 0.5)); } +_Check_return_ __CRT_INLINE long lrintl(_In_ long double x) { return (long)((x < 0) ? (x - 0.5f) : (x + 0.5)); } +_Check_return_ __CRT_INLINE long long llrint(_In_ double x) { return (long long)((x < 0) ? (x - 0.5f) : (x + 0.5)); } +_Check_return_ __CRT_INLINE long long llrintf(_In_ float x) { return (long long)((x < 0) ? (x - 0.5f) : (x + 0.5)); } +_Check_return_ __CRT_INLINE long long llrintl(_In_ long double x) { return (long long)((x < 0) ? (x - 0.5f) : (x + 0.5)); } + +#ifndef NO_OLDNAMES /* !__STDC__ */ #define DOMAIN _DOMAIN #define SING _SING @@ -238,35 +280,82 @@ #define TLOSS _TLOSS #define PLOSS _PLOSS #define matherr _matherr +//_CRTIMP extern double HUGE; #define HUGE _HUGE - // _CRTIMP double __cdecl cabs(struct _complex x); - #define cabs _cabs - - _CRTIMP double __cdecl hypot(_In_ double x, _In_ double y); - _CRTIMP double __cdecl j0(_In_ double x); - _CRTIMP double __cdecl j1(_In_ double x); - _CRTIMP double __cdecl jn(_In_ int x, _In_ double y); - _CRTIMP double __cdecl y0(_In_ double x); - _CRTIMP double __cdecl y1(_In_ double x); - _CRTIMP double __cdecl yn(_In_ int x, _In_ double y); - __CRT_INLINE float __cdecl hypotf(_In_ float x, _In_ float y) { return (float) hypot(x, y); } +//_CRT_NONSTDC_DEPRECATE(_cabs) _CRTIMP double __cdecl cabs(_In_ struct _complex x); +#define cabs _cabs + +_CRT_NONSTDC_DEPRECATE(_j0) _CRTIMP double __cdecl j0(_In_ double x); +_CRT_NONSTDC_DEPRECATE(_j1) _CRTIMP double __cdecl j1(_In_ double x); +_CRT_NONSTDC_DEPRECATE(_jn) _CRTIMP double __cdecl jn(_In_ int x, _In_ double y); +_CRT_NONSTDC_DEPRECATE(_y0) _CRTIMP double __cdecl y0(_In_ double x); +_CRT_NONSTDC_DEPRECATE(_y1) _CRTIMP double __cdecl y1(_In_ double x); +_CRT_NONSTDC_DEPRECATE(_yn) _CRTIMP double __cdecl yn(_In_ int x, _In_ double y); #endif /* NO_OLDNAMES */ #ifdef __cplusplus } +#ifndef _CMATH_ extern "C++" { - template<class _Ty> inline _Ty _Pow_int(_Ty x,int y) { - unsigned int _N; - if(y >= 0) _N = (unsigned int)y; - else _N = (unsigned int)(-y); - for(_Ty _Z = _Ty(1);;x *= x) { - if((_N & 1)!=0) _Z *= x; - if((_N >>= 1)==0) return (y < 0 ? _Ty(1) / _Z : _Z); - } - } + +//inline long abs(_In_ long x) { return labs(x); } +_Check_return_ inline double abs(_In_ double x) throw() { return fabs(x); } + +_Check_return_ inline float abs(_In_ float x) throw() { return fabsf(x); } +_Check_return_ inline float acos(_In_ float x) throw() { return acosf(x); } +_Check_return_ inline float asin(_In_ float x) throw() { return asinf(x); } +_Check_return_ inline float atan(_In_ float x) throw() { return atanf(x); } +_Check_return_ inline float atan2(_In_ float y, _In_ float x) throw() { return atan2f(y, x); } +_Check_return_ inline float ceil(_In_ float x) throw() { return ceilf(x); } +_Check_return_ inline float copysign(_In_ float x, _In_ float y) throw() { return _copysignf(x, y); } +_Check_return_ inline float cos(_In_ float x) throw() { return cosf(x); } +_Check_return_ inline float cosh(_In_ float x) throw() { return coshf(x); } +_Check_return_ inline float exp(_In_ float x) throw() { return expf(x); } +_Check_return_ inline float fabs(_In_ float x) throw() { return fabsf(x); } +_Check_return_ inline float floor(_In_ float x) throw() { return floorf(x); } +_Check_return_ inline float fmod(_In_ float x, _In_ float y) throw() { return fmodf(x, y); } +_Check_return_ inline float frexp(_In_ float x, _Out_ int * y) throw() { return frexpf(x, y); } +_Check_return_ inline float hypot(_In_ float x, _In_ float y) throw() { return _hypotf(x, y); } +_Check_return_ inline float ldexp(_In_ float x, _In_ int y) throw() { return ldexpf(x, y); } +_Check_return_ inline float log(_In_ float x) throw() { return logf(x); } +_Check_return_ inline float log10(_In_ float x) throw() { return log10f(x); } +_Check_return_ inline float modf(_In_ float x, _Out_ float * y) throw() { return modff(x, y); } +_Check_return_ inline float pow(_In_ float x, _In_ float y) throw() { return powf(x, y); } +_Check_return_ inline float sin(_In_ float x) throw() { return sinf(x); } +_Check_return_ inline float sinh(_In_ float x) throw() { return sinhf(x); } +_Check_return_ inline float sqrt(_In_ float x) throw() { return sqrtf(x); } +_Check_return_ inline float tan(_In_ float x) throw() { return tanf(x); } +_Check_return_ inline float tanh(_In_ float x) throw() { return tanhf(x); } + +_Check_return_ inline long double abs(_In_ long double x) throw() { return fabsl(x); } +_Check_return_ inline long double acos(_In_ long double x) throw() { return acosl(x); } +_Check_return_ inline long double asin(_In_ long double x) throw() { return asinl(x); } +_Check_return_ inline long double atan(_In_ long double x) throw() { return atanl(x); } +_Check_return_ inline long double atan2(_In_ long double y, _In_ long double x) throw() { return atan2l(y, x); } +_Check_return_ inline long double ceil(_In_ long double x) throw() { return ceill(x); } +_Check_return_ inline long double copysign(_In_ long double x, _In_ long double y) throw() { return _copysignl(x, y); } +_Check_return_ inline long double cos(_In_ long double x) throw() { return cosl(x); } +_Check_return_ inline long double cosh(_In_ long double x) throw() { return coshl(x); } +_Check_return_ inline long double exp(_In_ long double x) throw() { return expl(x); } +_Check_return_ inline long double fabs(_In_ long double x) throw() { return fabsl(x); } +_Check_return_ inline long double floor(_In_ long double x) throw() { return floorl(x); } +_Check_return_ inline long double fmod(_In_ long double x, _In_ long double y) throw() { return fmodl(x, y); } +_Check_return_ inline long double frexp(_In_ long double x, _Out_ int * y) throw() { return frexpl(x, y); } +_Check_return_ inline long double hypot(_In_ long double x, _In_ long double y) throw() { return hypotl(x, y); } +_Check_return_ inline long double ldexp(_In_ long double x, _In_ int y) throw() { return ldexpl(x, y); } +_Check_return_ inline long double log(_In_ long double x) throw() { return logl(x); } +_Check_return_ inline long double log10(_In_ long double x) throw() { return log10l(x); } +_Check_return_ inline long double modf(_In_ long double x, _Out_ long double * y) throw() { return modfl(x, y); } +_Check_return_ inline long double pow(_In_ long double x, _In_ long double y) throw() { return powl(x, y); } +_Check_return_ inline long double sin(_In_ long double x) throw() { return sinl(x); } +_Check_return_ inline long double sinh(_In_ long double x) throw() { return sinhl(x); } +_Check_return_ inline long double sqrt(_In_ long double x) throw() { return sqrtl(x); } +_Check_return_ inline long double tan(_In_ long double x) throw() { return tanl(x); } +_Check_return_ inline long double tanh(_In_ long double x) throw() { return tanhl(x); } } -#endif +#endif /* !_CMATH_ */ +#endif /* __cplusplus */ #pragma pack(pop)
9 years, 7 months
1
0
0
0
[tkreuzer] 67721: [CRT] Make sure to get no errors, when implementing functions that exist as intrinsics.
by tkreuzer@svn.reactos.org
Author: tkreuzer Date: Thu May 14 20:20:59 2015 New Revision: 67721 URL:
http://svn.reactos.org/svn/reactos?rev=67721&view=rev
Log: [CRT] Make sure to get no errors, when implementing functions that exist as intrinsics. Modified: trunk/reactos/lib/sdk/crt/float/isnan.c trunk/reactos/lib/sdk/crt/math/cos.c trunk/reactos/lib/sdk/crt/math/cosf.c trunk/reactos/lib/sdk/crt/math/logf.c trunk/reactos/lib/sdk/crt/math/powf.c trunk/reactos/lib/sdk/crt/math/sin.c trunk/reactos/lib/sdk/crt/math/sinf.c trunk/reactos/lib/sdk/crt/mem/memchr.c trunk/reactos/lib/sdk/crt/mem/memcpy.c trunk/reactos/lib/sdk/crt/mem/memset.c trunk/reactos/lib/sdk/crt/string/tcscat.h trunk/reactos/lib/sdk/crt/string/tcscmp.h trunk/reactos/lib/sdk/crt/string/tcscpy.h trunk/reactos/lib/sdk/crt/string/tcslen.h trunk/reactos/lib/sdk/crt/string/tcsncmp.h trunk/reactos/lib/sdk/crt/string/tcsncpy.h Modified: trunk/reactos/lib/sdk/crt/float/isnan.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/sdk/crt/float/isnan.c?…
============================================================================== --- trunk/reactos/lib/sdk/crt/float/isnan.c [iso-8859-1] (original) +++ trunk/reactos/lib/sdk/crt/float/isnan.c [iso-8859-1] Thu May 14 20:20:59 2015 @@ -18,6 +18,10 @@ */ #include <precomp.h> + +#if defined(_MSC_VER) && defined(_M_ARM) +#pragma function(_isnan) +#endif /* _MSC_VER */ /* * @implemented Modified: trunk/reactos/lib/sdk/crt/math/cos.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/sdk/crt/math/cos.c?rev…
============================================================================== --- trunk/reactos/lib/sdk/crt/math/cos.c [iso-8859-1] (original) +++ trunk/reactos/lib/sdk/crt/math/cos.c [iso-8859-1] Thu May 14 20:20:59 2015 @@ -5,6 +5,11 @@ * PURPOSE: Generic C Implementation of cos * PROGRAMMER: Timo Kreuzer (timo.kreuzer(a)reactos.org) */ + +#ifdef _MSC_VER +#pragma warning(suppress:4164) /* intrinsic not declared */ +#pragma function(cos) +#endif /* _MSC_VER */ #define PRECISION 9 #define M_PI 3.141592653589793238462643 Modified: trunk/reactos/lib/sdk/crt/math/cosf.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/sdk/crt/math/cosf.c?re…
============================================================================== --- trunk/reactos/lib/sdk/crt/math/cosf.c [iso-8859-1] (original) +++ trunk/reactos/lib/sdk/crt/math/cosf.c [iso-8859-1] Thu May 14 20:20:59 2015 @@ -7,7 +7,12 @@ #include <math.h> #undef cosf -float cosf(float _X) +#if defined(_MSC_VER) && (defined(_M_ARM) || defined(_M_AMD64)) +#pragma warning(suppress:4164) /* intrinsic not declared */ +#pragma function(cosf) +#endif /* _MSC_VER */ + +float cosf(float x) { - return ((float)cos((double)_X)); + return ((float)cos((double)x)); } Modified: trunk/reactos/lib/sdk/crt/math/logf.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/sdk/crt/math/logf.c?re…
============================================================================== --- trunk/reactos/lib/sdk/crt/math/logf.c [iso-8859-1] (original) +++ trunk/reactos/lib/sdk/crt/math/logf.c [iso-8859-1] Thu May 14 20:20:59 2015 @@ -7,7 +7,12 @@ #include <math.h> #undef logf -float logf(float _X) +#if defined(_MSC_VER) && (defined(_M_ARM) || defined(_M_AMD64)) +#pragma warning(suppress:4164) /* intrinsic not declared */ +#pragma function(logf) +#endif /* _MSC_VER */ + +float logf(float x) { - return ((float)log((double)_X)); + return ((float)log((double)x)); } Modified: trunk/reactos/lib/sdk/crt/math/powf.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/sdk/crt/math/powf.c?re…
============================================================================== --- trunk/reactos/lib/sdk/crt/math/powf.c [iso-8859-1] (original) +++ trunk/reactos/lib/sdk/crt/math/powf.c [iso-8859-1] Thu May 14 20:20:59 2015 @@ -3,6 +3,11 @@ * This file is part of the w64 mingw-runtime package. * No warranty is given; refer to the file DISCLAIMER.PD within this package. */ + +#if defined(_MSC_VER) && (defined(_M_ARM) || defined(_M_AMD64)) +#pragma warning(suppress:4164) /* intrinsic not declared */ +#pragma function(powf) +#endif /* _MSC_VER */ double __cdecl pow(double x, double y); Modified: trunk/reactos/lib/sdk/crt/math/sin.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/sdk/crt/math/sin.c?rev…
============================================================================== --- trunk/reactos/lib/sdk/crt/math/sin.c [iso-8859-1] (original) +++ trunk/reactos/lib/sdk/crt/math/sin.c [iso-8859-1] Thu May 14 20:20:59 2015 @@ -5,6 +5,11 @@ * PURPOSE: Generic C Implementation of sin * PROGRAMMER: Timo Kreuzer (timo.kreuzer(a)reactos.org) */ + +#ifdef _MSC_VER +#pragma warning(suppress:4164) /* intrinsic not declared */ +#pragma function(sin) +#endif /* _MSC_VER */ #define PRECISION 9 #define M_PI 3.141592653589793238462643 Modified: trunk/reactos/lib/sdk/crt/math/sinf.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/sdk/crt/math/sinf.c?re…
============================================================================== --- trunk/reactos/lib/sdk/crt/math/sinf.c [iso-8859-1] (original) +++ trunk/reactos/lib/sdk/crt/math/sinf.c [iso-8859-1] Thu May 14 20:20:59 2015 @@ -7,7 +7,12 @@ #include <math.h> #undef sinf -float sinf(float _X) +#if defined(_MSC_VER) && (defined(_M_ARM) || defined(_M_AMD64)) +#pragma warning(suppress:4164) /* intrinsic not declared */ +#pragma function(sinf) +#endif /* _MSC_VER */ + +float sinf(float x) { - return ((float) sin ((double) _X)); + return ((float)sin((double)x)); } Modified: trunk/reactos/lib/sdk/crt/mem/memchr.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/sdk/crt/mem/memchr.c?r…
============================================================================== --- trunk/reactos/lib/sdk/crt/mem/memchr.c [iso-8859-1] (original) +++ trunk/reactos/lib/sdk/crt/mem/memchr.c [iso-8859-1] Thu May 14 20:20:59 2015 @@ -1,5 +1,9 @@ #include <string.h> + +#if defined(_MSC_VER) && defined(_M_ARM) +#pragma function(memchr) +#endif /* _MSC_VER */ void* memchr(const void *s, int c, size_t n) { Modified: trunk/reactos/lib/sdk/crt/mem/memcpy.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/sdk/crt/mem/memcpy.c?r…
============================================================================== --- trunk/reactos/lib/sdk/crt/mem/memcpy.c [iso-8859-1] (original) +++ trunk/reactos/lib/sdk/crt/mem/memcpy.c [iso-8859-1] Thu May 14 20:20:59 2015 @@ -1,4 +1,8 @@ #include <string.h> + +#ifdef _MSC_VER +#pragma function(memcpy) +#endif /* _MSC_VER */ /* NOTE: This code is a duplicate of memmove implementation! */ void* memcpy(void* dest, const void* src, size_t count) Modified: trunk/reactos/lib/sdk/crt/mem/memset.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/sdk/crt/mem/memset.c?r…
============================================================================== --- trunk/reactos/lib/sdk/crt/mem/memset.c [iso-8859-1] (original) +++ trunk/reactos/lib/sdk/crt/mem/memset.c [iso-8859-1] Thu May 14 20:20:59 2015 @@ -1,5 +1,9 @@ #include <string.h> + +#ifdef _MSC_VER +#pragma function(memset) +#endif /* _MSC_VER */ void* memset(void* src, int val, size_t count) { Modified: trunk/reactos/lib/sdk/crt/string/tcscat.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/sdk/crt/string/tcscat.…
============================================================================== --- trunk/reactos/lib/sdk/crt/string/tcscat.h [iso-8859-1] (original) +++ trunk/reactos/lib/sdk/crt/string/tcscat.h [iso-8859-1] Thu May 14 20:20:59 2015 @@ -1,5 +1,9 @@ #include <tchar.h> + +#ifdef _MSC_VER +#pragma function(_tcscat) +#endif /* _MSC_VER */ _TCHAR * _tcscat(_TCHAR * s, const _TCHAR * append) { Modified: trunk/reactos/lib/sdk/crt/string/tcscmp.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/sdk/crt/string/tcscmp.…
============================================================================== --- trunk/reactos/lib/sdk/crt/string/tcscmp.h [iso-8859-1] (original) +++ trunk/reactos/lib/sdk/crt/string/tcscmp.h [iso-8859-1] Thu May 14 20:20:59 2015 @@ -1,5 +1,9 @@ #include <tchar.h> + +#if defined(_MSC_VER) +#pragma function(_tcscmp) +#endif /* _MSC_VER */ int _tcscmp(const _TCHAR* s1, const _TCHAR* s2) { Modified: trunk/reactos/lib/sdk/crt/string/tcscpy.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/sdk/crt/string/tcscpy.…
============================================================================== --- trunk/reactos/lib/sdk/crt/string/tcscpy.h [iso-8859-1] (original) +++ trunk/reactos/lib/sdk/crt/string/tcscpy.h [iso-8859-1] Thu May 14 20:20:59 2015 @@ -1,5 +1,9 @@ #include <tchar.h> + +#ifdef _MSC_VER +#pragma function(_tcscpy) +#endif /* _MSC_VER */ _TCHAR * _tcscpy(_TCHAR * to, const _TCHAR * from) { Modified: trunk/reactos/lib/sdk/crt/string/tcslen.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/sdk/crt/string/tcslen.…
============================================================================== --- trunk/reactos/lib/sdk/crt/string/tcslen.h [iso-8859-1] (original) +++ trunk/reactos/lib/sdk/crt/string/tcslen.h [iso-8859-1] Thu May 14 20:20:59 2015 @@ -1,6 +1,10 @@ #include <stddef.h> #include <tchar.h> + +#ifdef _MSC_VER +#pragma function(_tcslen) +#endif /* _MSC_VER */ size_t _tcslen(const _TCHAR * str) { Modified: trunk/reactos/lib/sdk/crt/string/tcsncmp.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/sdk/crt/string/tcsncmp…
============================================================================== --- trunk/reactos/lib/sdk/crt/string/tcsncmp.h [iso-8859-1] (original) +++ trunk/reactos/lib/sdk/crt/string/tcsncmp.h [iso-8859-1] Thu May 14 20:20:59 2015 @@ -1,6 +1,10 @@ #include <stddef.h> #include <tchar.h> + +#if defined(_MSC_VER) && defined(_M_ARM) +#pragma function(_tcsncmp) +#endif /* _MSC_VER */ int _tcsncmp(const _TCHAR * s1, const _TCHAR * s2, size_t n) { Modified: trunk/reactos/lib/sdk/crt/string/tcsncpy.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/sdk/crt/string/tcsncpy…
============================================================================== --- trunk/reactos/lib/sdk/crt/string/tcsncpy.h [iso-8859-1] (original) +++ trunk/reactos/lib/sdk/crt/string/tcsncpy.h [iso-8859-1] Thu May 14 20:20:59 2015 @@ -1,6 +1,10 @@ #include <stddef.h> #include <tchar.h> + +#if defined(_MSC_VER) && defined(_M_ARM) +#pragma function(_tcsncpy) +#endif /* _MSC_VER */ _TCHAR * _tcsncpy(_TCHAR * dst, const _TCHAR * src, size_t n) {
9 years, 7 months
1
0
0
0
[tkreuzer] 67720: [CRT/CPPRT] Add some files for non-x86 to build
by tkreuzer@svn.reactos.org
Author: tkreuzer Date: Thu May 14 20:20:31 2015 New Revision: 67720 URL:
http://svn.reactos.org/svn/reactos?rev=67720&view=rev
Log: [CRT/CPPRT] Add some files for non-x86 to build Modified: trunk/reactos/lib/sdk/cpprt/CMakeLists.txt trunk/reactos/lib/sdk/crt/crt.cmake trunk/reactos/lib/sdk/crt/libcntpr.cmake trunk/reactos/lib/sdk/crt/msvcrtex.cmake Modified: trunk/reactos/lib/sdk/cpprt/CMakeLists.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/sdk/cpprt/CMakeLists.t…
============================================================================== --- trunk/reactos/lib/sdk/cpprt/CMakeLists.txt [iso-8859-1] (original) +++ trunk/reactos/lib/sdk/cpprt/CMakeLists.txt [iso-8859-1] Thu May 14 20:20:31 2015 @@ -15,6 +15,8 @@ list(APPEND SOURCE i386/framehandler.c) elseif(ARCH STREQUAL "amd64") add_asm_files(cpprt_asm amd64/cpprt.s) +elseif(ARCH STREQUAL "arm") + add_asm_files(cpprt_asm arm/cpprt.s) endif() add_library(cpprt ${SOURCE} ${cpprt_asm}) Modified: trunk/reactos/lib/sdk/crt/crt.cmake URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/sdk/crt/crt.cmake?rev=…
============================================================================== --- trunk/reactos/lib/sdk/crt/crt.cmake [iso-8859-1] (original) +++ trunk/reactos/lib/sdk/crt/crt.cmake [iso-8859-1] Thu May 14 20:20:31 2015 @@ -445,23 +445,23 @@ float/amd64/fpreset.S float/amd64/logb.S # math/amd64/acos.S - math/amd64/acosf.S + # math/amd64/acosf.S math/amd64/atan.S math/amd64/atan2.S math/amd64/ceil.S - math/amd64/ceilf.S + # math/amd64/ceilf.S math/amd64/exp.S math/amd64/fabs.S math/amd64/floor.S - math/amd64/floorf.S + # math/amd64/floorf.S math/amd64/fmod.S - math/amd64/fmodf.S + # math/amd64/fmodf.S math/amd64/ldexp.S math/amd64/log.S math/amd64/log10.S math/amd64/pow.S math/amd64/sqrt.S - math/amd64/sqrtf.S + # math/amd64/sqrtf.S math/amd64/tan.S setjmp/amd64/setjmp.s) @@ -511,6 +511,8 @@ math/arm/__dtou64.s math/arm/__i64tod.s math/arm/__i64tos.s + math/arm/__stoi64.s + math/arm/__stou64.s math/arm/__u64tod.s math/arm/__u64tos.s math/arm/__rt_sdiv64.s @@ -526,8 +528,26 @@ if(NOT ARCH STREQUAL "i386") list(APPEND CRT_SOURCE + math/_chgsignf.c + math/_copysignf.c + math/_hypotf.c + math/acosf.c + math/asinf.c + math/atan2f.c + math/atanf.c + math/ceilf.c math/cos.c + math/coshf.c + math/expf.c + math/floorf.c + math/fmodf.c + math/log10f.c + math/modff.c math/sin.c + math/sinhf.c + math/sqrtf.c + math/tanf.c + math/tanhf.c math/stubs.c mem/memchr.c mem/memcpy.c Modified: trunk/reactos/lib/sdk/crt/libcntpr.cmake URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/sdk/crt/libcntpr.cmake…
============================================================================== --- trunk/reactos/lib/sdk/crt/libcntpr.cmake [iso-8859-1] (original) +++ trunk/reactos/lib/sdk/crt/libcntpr.cmake [iso-8859-1] Thu May 14 20:20:31 2015 @@ -171,6 +171,8 @@ math/arm/__dtou64.s math/arm/__i64tod.s math/arm/__i64tos.s + math/arm/__stoi64.s + math/arm/__stou64.s math/arm/__u64tod.s math/arm/__u64tos.s math/arm/__rt_sdiv64.s Modified: trunk/reactos/lib/sdk/crt/msvcrtex.cmake URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/sdk/crt/msvcrtex.cmake…
============================================================================== --- trunk/reactos/lib/sdk/crt/msvcrtex.cmake [iso-8859-1] (original) +++ trunk/reactos/lib/sdk/crt/msvcrtex.cmake [iso-8859-1] Thu May 14 20:20:31 2015 @@ -77,6 +77,8 @@ math/arm/__dtou64.s math/arm/__i64tod.s math/arm/__i64tos.s + math/arm/__stoi64.s + math/arm/__stou64.s math/arm/__u64tod.s math/arm/__u64tos.s math/arm/__rt_sdiv64.s
9 years, 7 months
1
0
0
0
[tkreuzer] 67719: [CRT] Fix build
by tkreuzer@svn.reactos.org
Author: tkreuzer Date: Thu May 14 19:51:12 2015 New Revision: 67719 URL:
http://svn.reactos.org/svn/reactos?rev=67719&view=rev
Log: [CRT] Fix build Modified: trunk/reactos/lib/sdk/crt/crt.cmake Modified: trunk/reactos/lib/sdk/crt/crt.cmake URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/sdk/crt/crt.cmake?rev=…
============================================================================== --- trunk/reactos/lib/sdk/crt/crt.cmake [iso-8859-1] (original) +++ trunk/reactos/lib/sdk/crt/crt.cmake [iso-8859-1] Thu May 14 19:51:12 2015 @@ -56,7 +56,6 @@ math/modf.c math/powf.c math/rand.c - math/sqrtf.c math/s_modf.c math/sinf.c math/sinh.c
9 years, 7 months
1
0
0
0
[tkreuzer] 67718: [CRT] Add simple C implementations for acosf, ceilf, floorf, fmodf and fix sqrtf
by tkreuzer@svn.reactos.org
Author: tkreuzer Date: Thu May 14 19:44:50 2015 New Revision: 67718 URL:
http://svn.reactos.org/svn/reactos?rev=67718&view=rev
Log: [CRT] Add simple C implementations for acosf, ceilf, floorf, fmodf and fix sqrtf Added: trunk/reactos/lib/sdk/crt/math/acosf.c (with props) trunk/reactos/lib/sdk/crt/math/ceilf.c (with props) trunk/reactos/lib/sdk/crt/math/floorf.c (with props) trunk/reactos/lib/sdk/crt/math/fmodf.c (with props) Modified: trunk/reactos/lib/sdk/crt/math/sqrtf.c Added: trunk/reactos/lib/sdk/crt/math/acosf.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/sdk/crt/math/acosf.c?r…
============================================================================== --- trunk/reactos/lib/sdk/crt/math/acosf.c (added) +++ trunk/reactos/lib/sdk/crt/math/acosf.c [iso-8859-1] Thu May 14 19:44:50 2015 @@ -0,0 +1,11 @@ + +#include <math.h> + +_Check_return_ +float +__cdecl +acosf( + _In_ float x) +{ + return (float)acos((double)x); +} Propchange: trunk/reactos/lib/sdk/crt/math/acosf.c ------------------------------------------------------------------------------ svn:eol-style = native Added: trunk/reactos/lib/sdk/crt/math/ceilf.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/sdk/crt/math/ceilf.c?r…
============================================================================== --- trunk/reactos/lib/sdk/crt/math/ceilf.c (added) +++ trunk/reactos/lib/sdk/crt/math/ceilf.c [iso-8859-1] Thu May 14 19:44:50 2015 @@ -0,0 +1,11 @@ + +#include <math.h> + +_Check_return_ +float +__cdecl +ceilf( + _In_ float x) +{ + return (float)ceilf((double)x); +} Propchange: trunk/reactos/lib/sdk/crt/math/ceilf.c ------------------------------------------------------------------------------ svn:eol-style = native Added: trunk/reactos/lib/sdk/crt/math/floorf.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/sdk/crt/math/floorf.c?…
============================================================================== --- trunk/reactos/lib/sdk/crt/math/floorf.c (added) +++ trunk/reactos/lib/sdk/crt/math/floorf.c [iso-8859-1] Thu May 14 19:44:50 2015 @@ -0,0 +1,11 @@ + +#include <math.h> + +_Check_return_ +float +__cdecl +floorf( + _In_ float x) +{ + return (float)floorf((double)x); +} Propchange: trunk/reactos/lib/sdk/crt/math/floorf.c ------------------------------------------------------------------------------ svn:eol-style = native Added: trunk/reactos/lib/sdk/crt/math/fmodf.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/sdk/crt/math/fmodf.c?r…
============================================================================== --- trunk/reactos/lib/sdk/crt/math/fmodf.c (added) +++ trunk/reactos/lib/sdk/crt/math/fmodf.c [iso-8859-1] Thu May 14 19:44:50 2015 @@ -0,0 +1,12 @@ + +#include <math.h> + +_Check_return_ +float +__cdecl +fmodf( + _In_ float x, + _In_ float y) +{ + return (float)fmod((double)x,(double)y); +} Propchange: trunk/reactos/lib/sdk/crt/math/fmodf.c ------------------------------------------------------------------------------ svn:eol-style = native Modified: trunk/reactos/lib/sdk/crt/math/sqrtf.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/sdk/crt/math/sqrtf.c?r…
============================================================================== --- trunk/reactos/lib/sdk/crt/math/sqrtf.c [iso-8859-1] (original) +++ trunk/reactos/lib/sdk/crt/math/sqrtf.c [iso-8859-1] Thu May 14 19:44:50 2015 @@ -5,8 +5,10 @@ */ #include <math.h> +_Check_return_ float -_sqrtf(float x) +__cdecl +sqrtf(float x) { - return ((float)sqrt((double)x)); + return (float)sqrt((double)x); }
9 years, 7 months
1
0
0
0
[tkreuzer] 67717: [CRT] Add simple C implementations for _chgsignf, _copysignf, _hypotf, asinf, atan2f, atanf, coshf, expf, log10f, modff, sinhf, tanf, tanhf
by tkreuzer@svn.reactos.org
Author: tkreuzer Date: Thu May 14 19:06:00 2015 New Revision: 67717 URL:
http://svn.reactos.org/svn/reactos?rev=67717&view=rev
Log: [CRT] Add simple C implementations for _chgsignf, _copysignf, _hypotf, asinf, atan2f, atanf, coshf, expf, log10f, modff, sinhf, tanf, tanhf Added: trunk/reactos/lib/sdk/crt/math/_chgsignf.c (with props) trunk/reactos/lib/sdk/crt/math/_copysignf.c (with props) trunk/reactos/lib/sdk/crt/math/_hypotf.c (with props) trunk/reactos/lib/sdk/crt/math/asinf.c (with props) trunk/reactos/lib/sdk/crt/math/atan2f.c (with props) trunk/reactos/lib/sdk/crt/math/atanf.c (with props) trunk/reactos/lib/sdk/crt/math/coshf.c (with props) trunk/reactos/lib/sdk/crt/math/expf.c (with props) trunk/reactos/lib/sdk/crt/math/log10f.c (with props) trunk/reactos/lib/sdk/crt/math/modff.c (with props) trunk/reactos/lib/sdk/crt/math/sinhf.c (with props) trunk/reactos/lib/sdk/crt/math/tanf.c (with props) trunk/reactos/lib/sdk/crt/math/tanhf.c (with props) Added: trunk/reactos/lib/sdk/crt/math/_chgsignf.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/sdk/crt/math/_chgsignf…
============================================================================== --- trunk/reactos/lib/sdk/crt/math/_chgsignf.c (added) +++ trunk/reactos/lib/sdk/crt/math/_chgsignf.c [iso-8859-1] Thu May 14 19:06:00 2015 @@ -0,0 +1,10 @@ + +#include <math.h> + +_Check_return_ +float +_chgsignf(_In_ float x) +{ + return (float)_chgsign((double)x); +} + Propchange: trunk/reactos/lib/sdk/crt/math/_chgsignf.c ------------------------------------------------------------------------------ svn:eol-style = native Added: trunk/reactos/lib/sdk/crt/math/_copysignf.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/sdk/crt/math/_copysign…
============================================================================== --- trunk/reactos/lib/sdk/crt/math/_copysignf.c (added) +++ trunk/reactos/lib/sdk/crt/math/_copysignf.c [iso-8859-1] Thu May 14 19:06:00 2015 @@ -0,0 +1,12 @@ + +#include <math.h> + +_Check_return_ +float +__cdecl +_copysignf( + _In_ float x, + _In_ float y) +{ + return (float)_copysign((double)x, (double)y); +} Propchange: trunk/reactos/lib/sdk/crt/math/_copysignf.c ------------------------------------------------------------------------------ svn:eol-style = native Added: trunk/reactos/lib/sdk/crt/math/_hypotf.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/sdk/crt/math/_hypotf.c…
============================================================================== --- trunk/reactos/lib/sdk/crt/math/_hypotf.c (added) +++ trunk/reactos/lib/sdk/crt/math/_hypotf.c [iso-8859-1] Thu May 14 19:06:00 2015 @@ -0,0 +1,12 @@ + +#include <math.h> + +_Check_return_ +float +__cdecl +_hypotf( + _In_ float x, + _In_ float y) +{ + return (float)_hypot((double)x, (double)y); +} Propchange: trunk/reactos/lib/sdk/crt/math/_hypotf.c ------------------------------------------------------------------------------ svn:eol-style = native Added: trunk/reactos/lib/sdk/crt/math/asinf.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/sdk/crt/math/asinf.c?r…
============================================================================== --- trunk/reactos/lib/sdk/crt/math/asinf.c (added) +++ trunk/reactos/lib/sdk/crt/math/asinf.c [iso-8859-1] Thu May 14 19:06:00 2015 @@ -0,0 +1,11 @@ + +#include <math.h> + +_Check_return_ +float +__cdecl +asinf( + _In_ float x) +{ + return (float)asin((double)x); +} Propchange: trunk/reactos/lib/sdk/crt/math/asinf.c ------------------------------------------------------------------------------ svn:eol-style = native Added: trunk/reactos/lib/sdk/crt/math/atan2f.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/sdk/crt/math/atan2f.c?…
============================================================================== --- trunk/reactos/lib/sdk/crt/math/atan2f.c (added) +++ trunk/reactos/lib/sdk/crt/math/atan2f.c [iso-8859-1] Thu May 14 19:06:00 2015 @@ -0,0 +1,12 @@ + +#include <math.h> + +_Check_return_ +float +__cdecl +atan2f( + _In_ float x, + _In_ float y) +{ + return (float)atan2((double)x,(double)y); +} Propchange: trunk/reactos/lib/sdk/crt/math/atan2f.c ------------------------------------------------------------------------------ svn:eol-style = native Added: trunk/reactos/lib/sdk/crt/math/atanf.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/sdk/crt/math/atanf.c?r…
============================================================================== --- trunk/reactos/lib/sdk/crt/math/atanf.c (added) +++ trunk/reactos/lib/sdk/crt/math/atanf.c [iso-8859-1] Thu May 14 19:06:00 2015 @@ -0,0 +1,11 @@ + +#include <math.h> + +_Check_return_ +float +__cdecl +atanf( + _In_ float x) +{ + return (float)atan((double)x); +} Propchange: trunk/reactos/lib/sdk/crt/math/atanf.c ------------------------------------------------------------------------------ svn:eol-style = native Added: trunk/reactos/lib/sdk/crt/math/coshf.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/sdk/crt/math/coshf.c?r…
============================================================================== --- trunk/reactos/lib/sdk/crt/math/coshf.c (added) +++ trunk/reactos/lib/sdk/crt/math/coshf.c [iso-8859-1] Thu May 14 19:06:00 2015 @@ -0,0 +1,11 @@ + +#include <math.h> + +_Check_return_ +float +__cdecl +coshf( + _In_ float x) +{ + return (float)cosh((double)x); +} Propchange: trunk/reactos/lib/sdk/crt/math/coshf.c ------------------------------------------------------------------------------ svn:eol-style = native Added: trunk/reactos/lib/sdk/crt/math/expf.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/sdk/crt/math/expf.c?re…
============================================================================== --- trunk/reactos/lib/sdk/crt/math/expf.c (added) +++ trunk/reactos/lib/sdk/crt/math/expf.c [iso-8859-1] Thu May 14 19:06:00 2015 @@ -0,0 +1,11 @@ + +#include <math.h> + +_Check_return_ +float +__cdecl +expf( + _In_ float x) +{ + return (float)exp((double)x); +} Propchange: trunk/reactos/lib/sdk/crt/math/expf.c ------------------------------------------------------------------------------ svn:eol-style = native Added: trunk/reactos/lib/sdk/crt/math/log10f.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/sdk/crt/math/log10f.c?…
============================================================================== --- trunk/reactos/lib/sdk/crt/math/log10f.c (added) +++ trunk/reactos/lib/sdk/crt/math/log10f.c [iso-8859-1] Thu May 14 19:06:00 2015 @@ -0,0 +1,11 @@ + +#include <math.h> + +_Check_return_ +float +__cdecl +log10f( + _In_ float x) +{ + return (float)log10((double)x); +} Propchange: trunk/reactos/lib/sdk/crt/math/log10f.c ------------------------------------------------------------------------------ svn:eol-style = native Added: trunk/reactos/lib/sdk/crt/math/modff.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/sdk/crt/math/modff.c?r…
============================================================================== --- trunk/reactos/lib/sdk/crt/math/modff.c (added) +++ trunk/reactos/lib/sdk/crt/math/modff.c [iso-8859-1] Thu May 14 19:06:00 2015 @@ -0,0 +1,17 @@ + +#include <math.h> + +_Check_return_ +float +__cdecl +modff( + _In_ float x, + _Out_ float *y) +{ + double _Di, _Df; + + _Df = modf((double)x,&_Di); + *y = (float)_Di; + + return (float)_Df; +} Propchange: trunk/reactos/lib/sdk/crt/math/modff.c ------------------------------------------------------------------------------ svn:eol-style = native Added: trunk/reactos/lib/sdk/crt/math/sinhf.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/sdk/crt/math/sinhf.c?r…
============================================================================== --- trunk/reactos/lib/sdk/crt/math/sinhf.c (added) +++ trunk/reactos/lib/sdk/crt/math/sinhf.c [iso-8859-1] Thu May 14 19:06:00 2015 @@ -0,0 +1,11 @@ + +#include <math.h> + +_Check_return_ +float +__cdecl +sinhf( + _In_ float x) +{ + return (float)sinh((double)x); +} Propchange: trunk/reactos/lib/sdk/crt/math/sinhf.c ------------------------------------------------------------------------------ svn:eol-style = native Added: trunk/reactos/lib/sdk/crt/math/tanf.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/sdk/crt/math/tanf.c?re…
============================================================================== --- trunk/reactos/lib/sdk/crt/math/tanf.c (added) +++ trunk/reactos/lib/sdk/crt/math/tanf.c [iso-8859-1] Thu May 14 19:06:00 2015 @@ -0,0 +1,11 @@ + +#include <math.h> + +_Check_return_ +float +__cdecl +tanf( + _In_ float x) +{ + return (float)tan((double)x); +} Propchange: trunk/reactos/lib/sdk/crt/math/tanf.c ------------------------------------------------------------------------------ svn:eol-style = native Added: trunk/reactos/lib/sdk/crt/math/tanhf.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/sdk/crt/math/tanhf.c?r…
============================================================================== --- trunk/reactos/lib/sdk/crt/math/tanhf.c (added) +++ trunk/reactos/lib/sdk/crt/math/tanhf.c [iso-8859-1] Thu May 14 19:06:00 2015 @@ -0,0 +1,11 @@ + +#include <math.h> + +_Check_return_ +float +__cdecl +tanhf( + _In_ float x) +{ + return (float)tanh((double)x); +} Propchange: trunk/reactos/lib/sdk/crt/math/tanhf.c ------------------------------------------------------------------------------ svn:eol-style = native
9 years, 7 months
1
0
0
0
[tkreuzer] 67716: [NTOSKRNL] Rewrite KiSwapContext for ARM
by tkreuzer@svn.reactos.org
Author: tkreuzer Date: Thu May 14 14:50:19 2015 New Revision: 67716 URL:
http://svn.reactos.org/svn/reactos?rev=67716&view=rev
Log: [NTOSKRNL] Rewrite KiSwapContext for ARM Modified: trunk/reactos/ntoskrnl/ke/arm/ctxswtch.s Modified: trunk/reactos/ntoskrnl/ke/arm/ctxswtch.s URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/arm/ctxswtch.s…
============================================================================== --- trunk/reactos/ntoskrnl/ke/arm/ctxswtch.s [iso-8859-1] (original) +++ trunk/reactos/ntoskrnl/ke/arm/ctxswtch.s [iso-8859-1] Thu May 14 14:50:19 2015 @@ -3,124 +3,144 @@ * LICENSE: BSD - See COPYING.ARM in the top level directory * FILE: ntoskrnl/ke/arm/ctxswtch.s * PURPOSE: Context Switch and Idle Thread on ARM - * PROGRAMMERS: ReactOS Portable Systems Group + * PROGRAMMERS: Timo Kreuzer (timo.kreuzer(a)reactos.org) + * ReactOS Portable Systems Group */ - .title "ARM Context Switching" - .include "ntoskrnl/include/internal/arm/kxarm.h" - .include "ntoskrnl/include/internal/arm/ksarm.h" +#include <ksarm.h> + + IMPORT KeLowerIrql TEXTAREA + +/*! + * \name KiSwapContextInternal + * + * \brief + * The KiSwapContextInternal routine switches context to another thread. + * + * \param r0 + * Pointer to the KTHREAD to which the caller wishes to switch to. + * + * \param r1 + * Pointer to the KTHREAD to which the caller wishes to switch from. + * + * \param r2 + * APC bypass + * + * \return + * None. + * + * \remarks + * ... + * + *--*/ + NESTED_ENTRY KiSwapContextInternal + + /* Push a KSWITCH_FRAME on the stack */ + stmdb sp!,{r2,r3,r11,lr} // FIXME: what is the 2nd field? + // PROLOG_PUSH {r2,r3,r11,lr} + + PROLOG_END KiSwapContextInternal + + /* Save kernel stack of old thread */ + str sp, [r1, #ThKernelStack] + + /* Save new thread in R11 */ + mov r11, r0 + + //bl KiSwapContextSuspend + __debugbreak + + /* Load stack of new thread */ + ldr sp, [r11, #ThKernelStack] + + /* Reload APC bypass */ + ldr r2, [sp, #SwApcBypass] + + //bl KiSwapContextResume + __debugbreak + + /* Restore R2, R11 and return */ + ldmia sp!,{r2,r3,r11,pc} + + NESTED_END KiSwapContextInternal + + +/*! + * KiSwapContext + * + * \brief + * The KiSwapContext routine switches context to another thread. + * + * BOOLEAN + * KiSwapContext( + * _In_ KIRQL WaitIrql, + * _Inout_ PKTHREAD CurrentThread); + * + * \param WaitIrql <r0> + * ... + * + * \param CurrentThread <r1> + * Pointer to the KTHREAD of the current thread. + * + * \return + * The WaitStatus of the Target Thread. + * + * \remarks + * This is a wrapper around KiSwapContextInternal which will save all the + * non-volatile registers so that the Internal function can use all of + * them. It will also save the old current thread and set the new one. + * + * The calling thread does not return after KiSwapContextInternal until + * another thread switches to it. + * + *--*/ NESTED_ENTRY KiSwapContext + + /* Push non-volatiles and return address on the stack */ + stmdb sp!,{r4,r5,r6,r7,r8,r9,r10,r11,lr} + // PROLOG_PUSH {r4,r5,r6,r7,r8,r9,r10,r11,lr} + PROLOG_END KiSwapContext - // BUSTEDDDD - b . - - // - // a1 = Old Thread - // a2 = New Thread - // - - // - // Make space for the trap frame - // - sub sp, sp, #ExceptionFrameLength - - // - // Build exception frame - // FIXME-PERF: Change to stmdb later - // - str r4, [sp, #ExR4] - str r5, [sp, #ExR5] - str r6, [sp, #ExR6] - str r7, [sp, #ExR7] - str r8, [sp, #ExR8] - str r9, [sp, #ExR9] - str r10, [sp, #ExR10] - str r11, [sp, #ExR11] - str lr, [sp, #ExLr] - mrs r4, spsr_all - str r4, [sp, #ExSpsr] - - // - // Switch stacks - // - str sp, [a1, #ThKernelStack] - ldr sp, [a2, #ThKernelStack] - - // - // Call the C context switch code - // + /* Do the swap with the registers correctly setup */ + mov32 r0, 0xFFDFF000 // FIXME: properly load the PCR into r0 (PCR should be in CP15, c3, TPIDRPRW) + ldr r0, [r0, #PcCurrentThread] /* Pointer to the new thread */ bl KiSwapContextInternal - // - // Get the SPSR and restore it - // - ldr r4, [sp, #ExSpsr] - msr spsr_all, r4 - - // - // Restore the registers - // FIXME-PERF: Use LDMIA later - // - ldr r4, [sp, #ExR4] - ldr r5, [sp, #ExR5] - ldr r6, [sp, #ExR6] - ldr r7, [sp, #ExR7] - ldr r8, [sp, #ExR8] - ldr r9, [sp, #ExR9] - ldr r10, [sp, #ExR10] - ldr r11, [sp, #ExR11] - ldr lr, [sp, #ExLr] - - // - // Restore stack - // - add sp, sp, #ExceptionFrameLength - - // - // Jump to saved restore address - // - mov pc, lr + /* Restore non-volatiles and return */ + ldmia sp!,{r4,r5,r6,r7,r8,r9,r10,r11,pc} - ENTRY_END KiSwapContext + NESTED_END KiSwapContext + + NESTED_ENTRY KiThreadStartup PROLOG_END KiThreadStartup - - // - // Lower to APC_LEVEL - // + + /* Lower IRQL to APC_LEVEL */ mov a1, #1 bl KeLowerIrql - - // - // Set the start address and startup context - // + + /* Set the start address and startup context */ mov a1, r6 mov a2, r5 blx r7 - - // - // Oh noes, we are back! - // - b . - - ENTRY_END KiThreadStartup + + /* The function must not return! */ + __assertfail + + NESTED_END KiThreadStartup + NESTED_ENTRY KiSwitchThreads PROLOG_END KiSwitchThreads - // BUSTEDDDD - b . + // UNIMPLEMENTED! + __debugbreak - ENTRY_END KiSwitchThreads + NESTED_END KiSwitchThreads - NESTED_ENTRY KiSwapContextInternal - PROLOG_END KiSwapContextInternal - - // BUSTEDDDD - b . - - ENTRY_END KiSwapContextInternal + END +/* EOF */
9 years, 7 months
1
0
0
0
[tkreuzer] 67715: [NTOSKRNL] Fix compilation of some ARM assembler files [NTDLL] Add missing ASM stubs for ARM
by tkreuzer@svn.reactos.org
Author: tkreuzer Date: Thu May 14 14:50:07 2015 New Revision: 67715 URL:
http://svn.reactos.org/svn/reactos?rev=67715&view=rev
Log: [NTOSKRNL] Fix compilation of some ARM assembler files [NTDLL] Add missing ASM stubs for ARM Modified: trunk/reactos/dll/ntdll/dispatch/arm/stubs_asm.s trunk/reactos/ntoskrnl/ke/arm/boot.s trunk/reactos/ntoskrnl/ke/arm/stubs_asm.s trunk/reactos/ntoskrnl/ke/arm/trap.s Modified: trunk/reactos/dll/ntdll/dispatch/arm/stubs_asm.s URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/ntdll/dispatch/arm/stu…
============================================================================== --- trunk/reactos/dll/ntdll/dispatch/arm/stubs_asm.s [iso-8859-1] (original) +++ trunk/reactos/dll/ntdll/dispatch/arm/stubs_asm.s [iso-8859-1] Thu May 14 14:50:07 2015 @@ -1,16 +1,31 @@ -#include "../../../../ntoskrnl/include/internal/arm/asmmacro.S" -// -// Exceptions -// -GENERATE_ARM_STUB LdrInitializeThunk -GENERATE_ARM_STUB RtlGetCallersAddress -GENERATE_ARM_STUB RtlUnwind -GENERATE_ARM_STUB RtlDispatchException -GENERATE_ARM_STUB RtlpGetStackLimits -GENERATE_ARM_STUB DbgUserBreakPoint -GENERATE_ARM_STUB KiFastSystemCall -GENERATE_ARM_STUB KiFastSystemCallRet -GENERATE_ARM_STUB KiIntSystemCall -GENERATE_ARM_STUB KiUserApcDispatcher -GENERATE_ARM_STUB RtlInitializeContext +#include <ksarm.h> + + TEXTAREA + + LEAF_ENTRY LdrInitializeThunk + __assertfail + bx lr + LEAF_END LdrInitializeThunk + + LEAF_ENTRY KiRaiseUserExceptionDispatcher + __assertfail + bx lr + LEAF_END KiRaiseUserExceptionDispatcher + + LEAF_ENTRY KiUserApcDispatcher + __assertfail + bx lr + LEAF_END KiUserApcDispatcher + + LEAF_ENTRY KiUserCallbackDispatcher + __assertfail + bx lr + LEAF_END KiUserCallbackDispatcher + + LEAF_ENTRY KiUserExceptionDispatcher + __assertfail + bx lr + LEAF_END KiUserExceptionDispatcher + + END Modified: trunk/reactos/ntoskrnl/ke/arm/boot.s URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/arm/boot.s?rev…
============================================================================== --- trunk/reactos/ntoskrnl/ke/arm/boot.s [iso-8859-1] (original) +++ trunk/reactos/ntoskrnl/ke/arm/boot.s [iso-8859-1] Thu May 14 14:50:07 2015 @@ -6,40 +6,47 @@ * PROGRAMMERS: ReactOS Portable Systems Group */ - .title "ARM Kernel Entry Point" - .include "ntoskrnl/include/internal/arm/kxarm.h" - .include "ntoskrnl/include/internal/arm/ksarm.h" +#include <ksarm.h> TEXTAREA + + IMPORT KiInitializeSystem + NESTED_ENTRY KiSystemStartup PROLOG_END KiSystemStartup - + /* Put us in FIQ mode, set IRQ stack */ b . mrs r3, cpsr - orr r3, r1, #CPSR_FIQ_MODE - msr cpsr, r3 - ldr sp, [a1, #LpbInterruptStack] - + orr r3, r1, #CPSRM_FIQ + //msr cpsr, r3 + msr cpsr_fc, r3 + ldr sp, [a1, #LpbKernelStack] + /* Repeat for IRQ mode */ - msr cpsr_c, #CPSR_IRQ_MODE - ldr sp, [a1, #LpbInterruptStack] + mov r3, #CPSRM_INT + msr cpsr_c, r3 + ldr sp, [a1, #LpbKernelStack] /* Put us in ABORT mode and set the panic stack */ - msr cpsr_c, #CPSR_ABORT_MODE - ldr sp, [a1, #LpbPanicStack] - - /* Repeat for UND (Undefined) mode */ - msr cpsr_c, #CPSR_UND_MODE - ldr sp, [a1, #LpbPanicStack] - + mov r3, #CPSRM_ABT + msr cpsr_c, r3 + ldr sp, [a1, #LpbKernelStack] + + /* Repeat for UDF (Undefined) mode */ + mov r3, #CPSRM_UDF + msr cpsr_c, r3 + ldr sp, [a1, #LpbKernelStack] + /* Put us into SVC (Supervisor) mode and set the kernel stack */ - msr cpsr_c, #CPSR_SVC_MODE + mov r3, #CPSRM_SVC + msr cpsr_c, r3 ldr sp, [a1, #LpbKernelStack] - + /* Go to C code */ b KiInitializeSystem - - ENTRY_END KiSystemStartup + NESTED_END KiSystemStartup + + END /* EOF */ Modified: trunk/reactos/ntoskrnl/ke/arm/stubs_asm.s URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/arm/stubs_asm.…
============================================================================== --- trunk/reactos/ntoskrnl/ke/arm/stubs_asm.s [iso-8859-1] (original) +++ trunk/reactos/ntoskrnl/ke/arm/stubs_asm.s [iso-8859-1] Thu May 14 14:50:07 2015 @@ -1,38 +1,18 @@ -#include <internal/arm/asmmacro.S> -// -// Exceptions -// -GENERATE_ARM_STUB _abnormal_termination -GENERATE_ARM_STUB _except_handler2 -GENERATE_ARM_STUB _except_handler3 -GENERATE_ARM_STUB _global_unwind2 -GENERATE_ARM_STUB _local_unwind2 -GENERATE_ARM_STUB RtlGetCallersAddress -GENERATE_ARM_STUB RtlUnwind -GENERATE_ARM_STUB RtlDispatchException -GENERATE_ARM_STUB RtlpGetStackLimits -GENERATE_ARM_STUB DbgBreakPointWithStatus -GENERATE_ARM_STUB KeRaiseUserException -GENERATE_ARM_STUB KdpGdbStubInit +#include <ksarm.h> -// -// Driver ISRs -// -GENERATE_ARM_STUB KeConnectInterrupt -GENERATE_ARM_STUB KeDisconnectInterrupt -GENERATE_ARM_STUB KiPassiveRelease -GENERATE_ARM_STUB KiInterruptTemplate -GENERATE_ARM_STUB KiUnexpectedInterrupt -GENERATE_ARM_STUB KeInitializeInterrupt -GENERATE_ARM_STUB KeSynchronizeExecution -// -// User Mode Support -// -GENERATE_ARM_STUB KeSwitchKernelStack -GENERATE_ARM_STUB RtlCreateUserThread -GENERATE_ARM_STUB RtlInitializeContext -GENERATE_ARM_STUB KeUserModeCallback -GENERATE_ARM_STUB KiCallUserMode -GENERATE_ARM_STUB NtCallbackReturn + TEXTAREA + + LEAF_ENTRY KeSwitchKernelStack + __assertfail + bx lr + LEAF_END KeSwitchKernelStack + + LEAF_ENTRY KiPassiveRelease + __assertfail + bx lr + LEAF_END KiPassiveRelease + + END +/* EOF */ Modified: trunk/reactos/ntoskrnl/ke/arm/trap.s URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/arm/trap.s?rev…
============================================================================== --- trunk/reactos/ntoskrnl/ke/arm/trap.s [iso-8859-1] (original) +++ trunk/reactos/ntoskrnl/ke/arm/trap.s [iso-8859-1] Thu May 14 14:50:07 2015 @@ -6,12 +6,18 @@ * PROGRAMMERS: ReactOS Portable Systems Group */ - .title "ARM Trap Dispatching and Handling" - #include "ntoskrnl/include/internal/arm/kxarm.h" - .include "ntoskrnl/include/internal/arm/ksarm.h" +#include <ksarm.h> - .global KiArmVectorTable - KiArmVectorTable: + IMPORT KiUndefinedExceptionHandler + IMPORT KiSoftwareInterruptHandler + IMPORT KiPrefetchAbortHandler + IMPORT KiDataAbortHandler + IMPORT KiInterruptHandler + + TEXTAREA + + EXPORT KiArmVectorTable +KiArmVectorTable b . // Reset ldr pc, _KiUndefinedInstructionJump // Undefined Instruction ldr pc, _KiSoftwareInterruptJump // Software Interrupt @@ -20,117 +26,131 @@ b . // Reserved ldr pc, _KiInterruptJump // Interrupt ldr pc, _KiFastInterruptJump // Fast Interrupt - - _KiUndefinedInstructionJump: .word KiUndefinedInstructionException - _KiSoftwareInterruptJump: .word KiSoftwareInterruptException - _KiPrefetchAbortJump: .word KiPrefetchAbortException - _KiDataAbortJump: .word KiDataAbortException - _KiInterruptJump: .word KiInterruptException - _KiFastInterruptJump: .word KiFastInterruptException - - TEXTAREA + +_KiUndefinedInstructionJump DCD KiUndefinedInstructionException +_KiSoftwareInterruptJump DCD KiSoftwareInterruptException +_KiPrefetchAbortJump DCD KiPrefetchAbortException +_KiDataAbortJump DCD KiDataAbortException +_KiInterruptJump DCD KiInterruptException +_KiFastInterruptJump DCD KiFastInterruptException + + // Might need to move these to a custom header, when used by HAL as well + + MACRO + TRAP_PROLOG $Abort + __debugbreak + MEND + + MACRO + SYSCALL_PROLOG $Abort + __debugbreak + MEND + + MACRO + TRAP_EPILOG $SystemCall + __debugbreak + MEND + NESTED_ENTRY KiUndefinedInstructionException PROLOG_END KiUndefinedInstructionException - // - // Handle trap entry - // + + /* Handle trap entry */ TRAP_PROLOG 0 // NotFromAbort - - // - // Call the C handler - // + + /* Call the C handler */ ldr lr, =KiExceptionExit mov r0, sp ldr pc, =KiUndefinedExceptionHandler - ENTRY_END KiUndefinedInstructionException - - + + NESTED_END KiUndefinedInstructionException + + NESTED_ENTRY KiSoftwareInterruptException PROLOG_END KiSoftwareInterruptException - // - // Handle trap entry - // + + /* Handle trap entry */ SYSCALL_PROLOG - - // - // Call the C handler - // + + /* Call the C handler */ ldr lr, =KiServiceExit mov r0, sp ldr pc, =KiSoftwareInterruptHandler - ENTRY_END KiSoftwareInterruptException + + NESTED_END KiSoftwareInterruptException NESTED_ENTRY KiPrefetchAbortException PROLOG_END KiPrefetchAbortException - // - // Handle trap entry - // + + /* Handle trap entry */ TRAP_PROLOG 0 // NotFromAbort - - // - // Call the C handler - // + + /* Call the C handler */ ldr lr, =KiExceptionExit mov r0, sp ldr pc, =KiPrefetchAbortHandler - ENTRY_END KiPrefetchAbortException + + NESTED_END KiPrefetchAbortException NESTED_ENTRY KiDataAbortException PROLOG_END KiDataAbortException - // - // Handle trap entry - // + + /* Handle trap entry */ TRAP_PROLOG 1 // FromAbort - - // - // Call the C handler - // + + /* Call the C handler */ ldr lr, =KiExceptionExit mov r0, sp ldr pc, =KiDataAbortHandler - ENTRY_END KiDataAbortException + + NESTED_END KiDataAbortException NESTED_ENTRY KiInterruptException PROLOG_END KiInterruptException - // - // Handle trap entry - // + + /* Handle trap entry */ TRAP_PROLOG 0 // NotFromAbort - - // - // Call the C handler - // + + /* Call the C handler */ ldr lr, =KiExceptionExit mov r0, sp mov r1, #0 ldr pc, =KiInterruptHandler - ENTRY_END KiInterruptException + + NESTED_END KiInterruptException NESTED_ENTRY KiFastInterruptException PROLOG_END KiFastInterruptException - // + // FIXME-PERF: Implement FIQ exception - // - b . - ENTRY_END KiFastInterruptException - - + __debugbreak + + NESTED_END KiFastInterruptException + + NESTED_ENTRY KiExceptionExit PROLOG_END KiExceptionExit - // - // Handle trap exit - // + + /* Handle trap exit */ TRAP_EPILOG 0 // NotFromSystemCall - ENTRY_END KiExceptionExit + + NESTED_END KiExceptionExit NESTED_ENTRY KiServiceExit PROLOG_END KiServiceExit - // - // Handle trap exit - // + + /* Handle trap exit */ TRAP_EPILOG 1 // FromSystemCall - ENTRY_END KiServiceExit + + NESTED_END KiServiceExit + + + LEAF_ENTRY KiInterruptTemplate + DCD 0 + LEAF_END KiInterruptTemplate + + END +/* EOF */
9 years, 7 months
1
0
0
0
← Newer
1
...
24
25
26
27
28
29
30
...
50
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
50
Results per page:
10
25
50
100
200