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 2012
----- 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
11 participants
156 discussions
Start a n
N
ew thread
[tkreuzer] 56364: [CRT TEST] for now disable the static test, it needs some fixes first
by tkreuzer@svn.reactos.org
Author: tkreuzer Date: Wed Apr 18 17:37:21 2012 New Revision: 56364 URL:
http://svn.reactos.org/svn/reactos?rev=56364&view=rev
Log: [CRT TEST] for now disable the static test, it needs some fixes first Modified: trunk/rostests/apitests/crt/msvcrt_crt_apitest.cmake Modified: trunk/rostests/apitests/crt/msvcrt_crt_apitest.cmake URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/crt/msvcrt_crt_a…
============================================================================== --- trunk/rostests/apitests/crt/msvcrt_crt_apitest.cmake [iso-8859-1] (original) +++ trunk/rostests/apitests/crt/msvcrt_crt_apitest.cmake [iso-8859-1] Wed Apr 18 17:37:21 2012 @@ -1370,11 +1370,11 @@ ) endif() -add_executable(static_crt_apitest testlist.c ${SOURCE_MSVCRT}) -target_link_libraries(static_crt_apitest wine ${PSEH_LIB} crt msvcrtex wine) -set_module_type(static_crt_apitest win32cui) -add_importlibs(static_crt_apitest kernel32) -add_cd_file(TARGET static_crt_apitest DESTINATION reactos/bin FOR all) +#add_executable(static_crt_apitest testlist.c ${SOURCE_MSVCRT}) +#target_link_libraries(static_crt_apitest wine ${PSEH_LIB} crt msvcrtex wine) +#set_module_type(static_crt_apitest win32cui) +#add_importlibs(static_crt_apitest kernel32) +#add_cd_file(TARGET static_crt_apitest DESTINATION reactos/bin FOR all) add_executable(msvcrt_crt_apitest testlist.c ${SOURCE_MSVCRT}) add_target_compile_definitions(msvcrt_crt_apitest _DLL __USE_CRTIMP)
12 years, 8 months
1
0
0
0
[tkreuzer] 56363: [TESTS] Add a test framework for crt (ntdll, crtdll, msvcrt and static)
by tkreuzer@svn.reactos.org
Author: tkreuzer Date: Wed Apr 18 17:21:18 2012 New Revision: 56363 URL:
http://svn.reactos.org/svn/reactos?rev=56363&view=rev
Log: [TESTS] Add a test framework for crt (ntdll, crtdll, msvcrt and static) Added: trunk/rostests/apitests/crt/ (with props) trunk/rostests/apitests/crt/CMakeLists.txt (with props) trunk/rostests/apitests/crt/crtdll_crt_apitest.cmake (with props) trunk/rostests/apitests/crt/msvcrt_crt_apitest.cmake (with props) trunk/rostests/apitests/crt/msvcrt_mini.spec (with props) trunk/rostests/apitests/crt/ntdll_crt_apitest.cmake (with props) trunk/rostests/apitests/crt/strcpy.c (with props) trunk/rostests/apitests/crt/testlist.c (with props) Modified: trunk/rostests/apitests/CMakeLists.txt Modified: trunk/rostests/apitests/CMakeLists.txt URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/CMakeLists.txt?r…
============================================================================== --- trunk/rostests/apitests/CMakeLists.txt [iso-8859-1] (original) +++ trunk/rostests/apitests/CMakeLists.txt [iso-8859-1] Wed Apr 18 17:21:18 2012 @@ -2,6 +2,7 @@ add_library(apitest apitest.c) add_subdirectory(advapi32) +add_subdirectory(crt) add_subdirectory(dciman32) add_subdirectory(gdi32) add_subdirectory(msvcrt) Propchange: trunk/rostests/apitests/crt/ ------------------------------------------------------------------------------ --- bugtraq:logregex (added) +++ bugtraq:logregex Wed Apr 18 17:21:18 2012 @@ -1,0 +1,2 @@ +([Ii]ssue|[Bb]ug)s? #?(\d+)(,? ?#?(\d+))*(,? ?(and |or )?#?(\d+))? +(\d+) Propchange: trunk/rostests/apitests/crt/ ------------------------------------------------------------------------------ bugtraq:message = See issue #%BUGID% for more details. Propchange: trunk/rostests/apitests/crt/ ------------------------------------------------------------------------------ bugtraq:url =
http://www.reactos.org/bugzilla/show_bug.cgi?id=%BUGID%
Propchange: trunk/rostests/apitests/crt/ ------------------------------------------------------------------------------ tsvn:logminsize = 10 Added: trunk/rostests/apitests/crt/CMakeLists.txt URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/crt/CMakeLists.t…
============================================================================== --- trunk/rostests/apitests/crt/CMakeLists.txt (added) +++ trunk/rostests/apitests/crt/CMakeLists.txt [iso-8859-1] Wed Apr 18 17:21:18 2012 @@ -1,0 +1,6 @@ + +spec2def(msvcrt_mini.dll msvcrt_mini.spec ADD_IMPORTLIB) +remove_definitions(-D_DLL -D__USE_CRTIMP) +include(ntdll_crt_apitest.cmake) +include(crtdll_crt_apitest.cmake) +include(msvcrt_crt_apitest.cmake) Propchange: trunk/rostests/apitests/crt/CMakeLists.txt ------------------------------------------------------------------------------ svn:eol-style = native Added: trunk/rostests/apitests/crt/crtdll_crt_apitest.cmake URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/crt/crtdll_crt_a…
============================================================================== --- trunk/rostests/apitests/crt/crtdll_crt_apitest.cmake (added) +++ trunk/rostests/apitests/crt/crtdll_crt_apitest.cmake [iso-8859-1] Wed Apr 18 17:21:18 2012 @@ -1,0 +1,561 @@ + +list(APPEND SOURCE_CRTDLL +# _CIacos.c +# _CIasin.c +# _CIatan.c +# _CIatan2.c +# _CIcosh.c +# _CIcos.c +# _CIexp.c +# _CIfmod.c +# _CIlog.c +# _CIlog10.c +# _CIpow.c +# _CIsin.c +# _CIsinh.c +# _CIsqrt.c +# _CItan.c +# _CItanh.c +# _HUGE_dll.c +# _XcptFilter.c +# __GetMainArgs.c +# __argc_dll.c +# __argv_dll.c +# __dllonexit.c +# __doserrno.c +# __fpecode.c +# __isascii.c +# __iscsym.c +# __iscsymf.c +# __mb_cur_max_dll.c +# __pxcptinfoptrs.c +# __threadhandle.c +# __threadid.c +# __toascii.c +# _abnormal_termination.c +# _access.c +# _acmdln_dll.c +# _aexit_rtn_dll.c +# _amsg_exit.c +# _assert.c +# _basemajor_dll.c +# _baseminor_dll.c +# _baseversion_dll.c +# _beep.c +# _beginthread.c +# _c_exit.c +# _cabs.c +# _cexit.c +# _cgets.c +# _chdir.c +# _chdrive.c +# _chgsign.c +# _chmod.c +# _chsize.c +# _clearfp.c +# _close.c +# _commit.c +# _commode_dll.c +# _control87.c +# _controlfp.c +# _copysign.c +# _cprintf.c +# _cpumode_dll.c +# _cputs.c +# _creat.c +# _cscanf.c +# _ctype.c +# _cwait.c +# _daylight_dll.c +# _dup.c +# _dup2.c +# _ecvt.c +# _endthread.c +# _environ_dll.c +# _eof.c +# _errno.c +# _except_handler2.c +# _execl.c +# _execle.c +# _execlp.c +# _execlpe.c +# _execv.c +# _execve.c +# _execvp.c +# _execvpe.c +# _exit.c +# _expand.c +# _fcloseall.c +# _fcvt.c +# _fdopen.c +# _fgetchar.c +# _fgetwchar.c +# _filbuf.c +# _fileinfo_dll.c +# _filelength.c +# _fileno.c +# _findclose.c +# _findfirst.c +# _findnext.c +# _finite.c +# _flsbuf.c +# _flushall.c +# _fmode_dll.c +# _fpclass.c +# _fpieee_flt.c +# _fpreset.c +# _fputchar.c +# _fputwchar.c +# _fsopen.c +# _fstat.c +# _ftime.c +# _ftol.c +# _fullpath.c +# _futime.c +# _gcvt.c +# _get_osfhandle.c +# _getch.c +# _getche.c +# _getcwd.c +# _getdcwd.c +# _getdiskfree.c +# _getdllprocaddr.c +# _getdrive.c +# _getdrives.c +# _getpid.c +# _getsystime.c +# _getw.c +# _global_unwind2.c +# _heapchk.c +# _heapmin.c +# _heapset.c +# _heapwalk.c +# _hypot.c +# _initterm.c +# _iob.c +# _isatty.c +# _isctype.c +# _ismbbalnum.c +# _ismbbalpha.c +# _ismbbgraph.c +# _ismbbkalnum.c +# _ismbbkana.c +# _ismbbkpunct.c +# _ismbblead.c +# _ismbbprint.c +# _ismbbpunct.c +# _ismbbtrail.c +# _ismbcalpha.c +# _ismbcdigit.c +# _ismbchira.c +# _ismbckata.c +# _ismbcl0.c +# _ismbcl1.c +# _ismbcl2.c +# _ismbclegal.c +# _ismbclower.c +# _ismbcprint.c +# _ismbcspace.c +# _ismbcsymbol.c +# _ismbcupper.c +# _ismbslead.c +# _ismbstrail.c +# _isnan.c +# _itoa.c +# _itow.c +# _j0.c +# _j1.c +# _jn.c +# _kbhit.c +# _lfind.c +# _loaddll.c +# _local_unwind2.c +# _locking.c +# _logb.c +# _lrotl.c +# _lrotr.c +# _lsearch.c +# _lseek.c +# _ltoa.c +# _ltow.c +# _makepath.c +# _matherr.c +# _mbbtombc.c +# _mbbtype.c +# _mbccpy.c +# _mbcjistojms.c +# _mbcjmstojis.c +# _mbclen.c +# _mbctohira.c +# _mbctokata.c +# _mbctolower.c +# _mbctombb.c +# _mbctoupper.c +# _mbctype.c +# _mbsbtype.c +# _mbscat.c +# _mbschr.c +# _mbscmp.c +# _mbscpy.c +# _mbscspn.c +# _mbsdec.c +# _mbsdup.c +# _mbsicmp.c +# _mbsinc.c +# _mbslen.c +# _mbslwr.c +# _mbsnbcat.c +# _mbsnbcmp.c +# _mbsnbcnt.c +# _mbsnbcpy.c +# _mbsnbicmp.c +# _mbsnbset.c +# _mbsncat.c +# _mbsnccnt.c +# _mbsncmp.c +# _mbsncpy.c +# _mbsnextc.c +# _mbsnicmp.c +# _mbsninc.c +# _mbsnset.c +# _mbspbrk.c +# _mbsrchr.c +# _mbsrev.c +# _mbsset.c +# _mbsspn.c +# _mbsspnp.c +# _mbsstr.c +# _mbstok.c +# _mbstrlen.c +# _mbsupr.c +# _memccpy.c +# _memicmp.c +# _mkdir.c +# _mktemp.c +# _msize.c +# _nextafter.c +# _onexit.c +# _open.c +# _open_osfhandle.c +# _osmajor_dll.c +# _osminor_dll.c +# _osmode_dll.c +# _osver_dll.c +# _osversion_dll.c +# _pclose.c +# _pctype_dll.c +# _pgmptr_dll.c +# _pipe.c +# _popen.c +# _purecall.c +# _putch.c +# _putenv.c +# _putw.c +# _pwctype_dll.c +# _read.c +# _rmdir.c +# _rmtmp.c +# _rotl.c +# _rotr.c +# _scalb.c +# _searchenv.c +# _seterrormode.c +# _setjmp.c +# _setmode.c +# _setsystime.c +# _sleep.c +# _snprintf.c +# _snwprintf.c +# _sopen.c +# _spawnl.c +# _spawnle.c +# _spawnlp.c +# _spawnlpe.c +# _spawnv.c +# _spawnve.c +# _spawnvp.c +# _spawnvpe.c +# _splitpath.c +# _stat.c +# _statusfp.c +# _strcmpi.c +# _strdate.c +# _strdec.c +# _strdup.c +# _strerror.c +# _stricmp.c +# _stricoll.c +# _strinc.c +# _strlwr.c +# _strncnt.c +# _strnextc.c +# _strnicmp.c +# _strninc.c +# _strnset.c +# _strrev.c +# _strset.c +# _strspnp.c) +# _strtime.c +# _strupr.c +# _swab.c +# _sys_errlist.c +# _sys_nerr_dll.c +# _tell.c +# _tempnam.c +# _timezone_dll.c +# _tolower.c +# _toupper.c +# _tzname.c +# _tzset.c +# _ultoa.c +# _ultow.c +# _umask.c +# _ungetch.c +# _unlink.c +# _unloaddll.c +# _utime.c +# _vsnprintf.c +# _vsnwprintf.c +# _wcsdup.c +# _wcsicmp.c +# _wcsicoll.c +# _wcslwr.c +# _wcsnicmp.c +# _wcsnset.c +# _wcsrev.c +# _wcsset.c +# _wcsupr.c +# _winmajor_dll.c +# _winminor_dll.c +# _winver_dll.c +# _write.c +# _wtoi.c +# _wtol.c +# _y0.c +# _y1.c +# _yn.c +# abort.c +# abs.c +# acos.c +# asctime.c +# asin.c +# atan.c +# atan2.c +# atexit.c +# atof.c +# atoi.c +# atol.c +# bsearch.c +# calloc.c +# ceil.c +# clearerr.c +# clock.c +# cos.c +# cosh.c +# ctime.c +# difftime.c +# div.c +# exit.c +# exp.c +# fabs.c +# fclose.c +# feof.c +# ferror.c +# fflush.c +# fgetc.c +# fgetpos.c +# fgets.c +# fgetwc.c +# floor.c +# fmod.c +# fopen.c +# fprintf.c +# fputc.c +# fputs.c +# fputwc.c +# fread.c +# free.c +# freopen.c +# frexp.c +# fscanf.c +# fseek.c +# fsetpos.c +# ftell.c +# fwprintf.c +# fwrite.c +# fwscanf.c +# getc.c +# getchar.c +# getenv.c +# gets.c +# gmtime.c +# is_wctype.c +# isalnum.c +# isalpha.c +# iscntrl.c +# isdigit.c +# isgraph.c +# isleadbyte.c +# islower.c +# isprint.c +# ispunct.c +# isspace.c +# isupper.c +# iswalnum.c +# iswalpha.c +# iswascii.c +# iswcntrl.c +# iswctype.c +# iswdigit.c +# iswgraph.c +# iswlower.c +# iswprint.c +# iswpunct.c +# iswspace.c +# iswupper.c +# iswxdigit.c +# isxdigit.c +# labs.c +# ldexp.c +# ldiv.c +# localeconv.c +# localtime.c +# log.c +# log10.c +# longjmp.c +# malloc.c +# mblen.c +# mbstowcs.c +# mbtowc.c +# memchr.c +# memcmp.c +# memcpy.c +# memmove.c +# memset.c +# mktime.c +# modf.c +# perror.c +# pow.c +# printf.c +# putc.c +# putchar.c +# puts.c +# qsort.c +# raise.c +# rand.c +# realloc.c +# remove.c +# rename.c +# rewind.c +# scanf.c +# setbuf.c +# setlocale.c +# setvbuf.c +# signal.c +# sin.c +# sinh.c +# sprintf.c +# sqrt.c +# srand.c +# sscanf.c +# strcat.c +# strchr.c +# strcmp.c +# strcoll.c + strcpy.c +# strcspn.c +# strerror.c +# strftime.c +# strlen.c +# strncat.c +# strncmp.c +# strncpy.c +# strpbrk.c +# strrchr.c +# strspn.c +# strstr.c +# strtod.c +# strtok.c +# strtol.c +# strtoul.c +# strxfrm.c +# swprintf.c +# swscanf.c +# system.c +# tan.c +# tanh.c +# time.c +# tmpfile.c +# tmpnam.c +# tolower.c +# toupper.c +# towlower.c +# towupper.c +# ungetc.c +# ungetwc.c +# vfprintf.c +# vfwprintf.c +# vprintf.c +# vsprintf.c +# vswprintf.c +# vwprintf.c +# wcscat.c +# wcschr.c +# wcscmp.c +# wcscoll.c +# wcscpy.c +# wcscspn.c +# wcsftime.c +# wcslen.c +# wcsncat.c +# wcsncmp.c +# wcsncpy.c +# wcspbrk.c +# wcsrchr.c +# wcsspn.c +# wcsstr.c +# wcstod.c +# wcstok.c +# wcstol.c +# wcstombs.c +# wcstoul.c +# wcsxfrm.c +# wctomb.c +# wprintf.c +# wscanf.c +) + +if (ARCH MATCHES i386) + list(APPEND SOURCE_CRTDLL + # _CIpow.c + # _ftol.c + # _alldiv.c + # _alldvrm.c + # _allmul.c + # _allrem.c + # _allshl.c + # _allshr.c + # _alloca_probe.c + # _aulldiv.c + # _aulldvrm.c + # _aullrem.c + # _aullshr.c + # _chkstk.c + ) +elseif (ARCH MATCHES amd64) + list(APPEND SOURCE_CRTDLL + # __C_specific_handler + # _setjmp.c + # _setjmpex.c + # _local_unwind.c + # longjmp.c + ) +endif() + + +add_executable(crtdll_crt_apitest testlist.c ${SOURCE_CRTDLL}) +add_target_compile_definitions(crtdll_crt_apitest _DLL __USE_CRTIMP) +target_link_libraries(crtdll_crt_apitest wine ${PSEH_LIB}) +set_module_type(crtdll_crt_apitest win32cui) +add_importlibs(crtdll_crt_apitest crtdll msvcrt_mini kernel32) +add_cd_file(TARGET crtdll_crt_apitest DESTINATION reactos/bin FOR all) Propchange: trunk/rostests/apitests/crt/crtdll_crt_apitest.cmake ------------------------------------------------------------------------------ svn:eol-style = native Added: trunk/rostests/apitests/crt/msvcrt_crt_apitest.cmake URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/crt/msvcrt_crt_a…
============================================================================== --- trunk/rostests/apitests/crt/msvcrt_crt_apitest.cmake (added) +++ trunk/rostests/apitests/crt/msvcrt_crt_apitest.cmake [iso-8859-1] Wed Apr 18 17:21:18 2012 @@ -1,0 +1,1384 @@ + +list(APPEND SOURCE_MSVCRT +# _CrtCheckMemory.c +# _CrtDbgBreak.c +# _CrtDbgReport.c +# _CrtDbgReportV.c +# _CrtDbgReportW.c +# _CrtDbgReportWV.c +# _CrtDoForAllClientObjects.c +# _CrtDumpMemoryLeaks.c +# _CrtIsMemoryBlock.c +# _CrtIsValidHeapPointer.c +# _CrtIsValidPointer.c +# _CrtMemCheckpoint.c +# _CrtMemDifference.c +# _CrtMemDumpAllObjectsSince.c +# _CrtMemDumpStatistics.c +# _CrtReportBlockType.c +# _CrtSetAllocHook.c +# _CrtSetBreakAlloc.c +# _CrtSetDbgBlockType.c +# _CrtSetDbgFlag.c +# _CrtSetDumpClient.c +# _CrtSetReportFile.c +# _CrtSetReportHook.c +# _CrtSetReportHook2.c +# _CrtSetReportMode.c +# _CxxThrowException.c +# _Getdays.c +# _Getmonths.c +# _Gettnames.c +# _HUGE.c +# _Strftime.c +# _XcptFilter.c +# __CppXcptFilter.c +# __CxxCallUnwindDelDtor.c +# __CxxCallUnwindDtor.c +# __CxxCallUnwindVecDtor.c +# __CxxDetectRethrow.c +# __CxxExceptionFilter.c +# __CxxQueryExceptionSize.c +# __CxxRegisterExceptionObject +# __CxxUnregisterExceptionObject +# __DestructExceptionObject +# __RTCastToVoid.c MSVCRT___RTCastToVoid +# __RTDynamicCast.c MSVCRT___RTDynamicCast +# __RTtypeid.c MSVCRT___RTtypeid +# __STRINGTOLD.c +# ___lc_codepage_func.c +# ___lc_collate_cp_func.c +# ___lc_handle_func.c +# ___mb_cur_max_func.c MSVCRT___mb_cur_max_func +# ___setlc_active_func.c +# ___unguarded_readlc_active_add_func.c +# __argc +# __argv +# __badioinfo __badioinfo +# __crtCompareStringA.c kernel32.CompareStringA +# __crtCompareStringW.c kernel32.CompareStringW +# __crtGetLocaleInfoW.c kernel32.GetLocaleInfoW +# __crtGetStringTypeW.c +# __crtLCMapStringA.c +# __crtLCMapStringW +# __daylight.c __p__daylight +# __dllonexit.c +# __doserrno.c +# __fpecode.c +# __get_app_type.c +# __getmainargs.c +# __initenv +# __iob_func.c +# __isascii.c +# __iscsym.c +# __iscsymf.c +# __lc_codepage MSVCRT___lc_codepage +# __lc_collate # not in XP / 7 +# __lc_collate_cp MSVCRT___lc_collate_cp +# __lc_handle MSVCRT___lc_handle +# __lconv_init.c +# __libm_sse2_acos +# __libm_sse2_acosf +# __libm_sse2_asin +# __libm_sse2_asinf +# __libm_sse2_atan +# __libm_sse2_atan2 +# __libm_sse2_atanf +# __libm_sse2_cos +# __libm_sse2_cosf +# __libm_sse2_exp +# __libm_sse2_expf +# __libm_sse2_log +# __libm_sse2_log10 +# __libm_sse2_log10f +# __libm_sse2_logf +# __libm_sse2_pow +# __libm_sse2_powf +# __libm_sse2_sin +# __libm_sse2_sinf +# __libm_sse2_tan +# __libm_sse2_tanf +# __mb_cur_max +# __pctype_func.c +# __pioinfo +# __pwctype_func.c +# __pxcptinfoptrs.c +# __set_app_type.c +# __setlc_active +# __setusermatherr.c +# __strncnt +# __threadhandle.c kernel32.GetCurrentThread +# __threadid.c kernel32.GetCurrentThreadId +# __toascii.c +# __uncaught_exception.c +# __unDName.c +# __unDNameEx.c +# __unguarded_readlc_active +# __wargv __wargv +# __wcserror.c +# __wcserror_s.c +# __wcsncnt +# __wgetmainargs.c +# __winitenv +# _abnormal_termination.c +# _abs64 +# _access.c +# _access_s.c +# _acmdln +# _aexit_rtn +# _aligned_free.c +# _aligned_free_dbg +# _aligned_malloc.c +# _aligned_malloc_dbg +# _aligned_offset_malloc.c +# _aligned_offset_malloc_dbg +# _aligned_offset_realloc.c +# _aligned_offset_realloc_dbg +# _aligned_realloc.c +# _aligned_realloc_dbg +# _amsg_exit.c +# _assert.c +# _atodbl.c +# _atodbl_l +# _atof_l.c +# _atoflt_l +# -ret64 _atoi64.c +# _atoi64_l +# _atoi_l +# _atol_l +# _atoldbl.c +# _atoldbl_l +# _beep.c +# _beginthread.c +# _beginthreadex.c +# _c_exit.c +# _cabs.c +# _callnewh.c +# _calloc_dbg +# _cexit.c +# _cgets.c +# _cgets_s +# _cgetws +# _cgetws_s +# _chdir.c +# _chdrive.c +# _chgsign.c +# _chmod.c +# _chsize.c +# _chsize_s +# _chvalidator +# _chvalidator_l +# _clearfp.c +# _close.c +# _commit.c +# _commode +# _control87.c +# _controlfp.c +# _controlfp_s.c +# _copysign.c +# _cprintf.c +# _cprintf_l +# _cprintf_p +# _cprintf_p_l +# _cprintf_s +# _cprintf_s_l +# _cputs.c +# _cputws +# _creat.c +# _crtAssertBusy +# _crtBreakAlloc +# _crtDbgFlag +# _cscanf.c +# _cscanf_l.c +# _cscanf_s.c +# _cscanf_s_l.c +# _ctime32.c +# _ctime32_s.c +# _ctime64.c +# _ctime64_s.c +# _ctype +# _cwait.c +# _cwprintf.c +# _cwprintf_l +# _cwprintf_p +# _cwprintf_p_l +# _cwprintf_s +# _cwprintf_s_l +# _cwscanf.c +# _cwscanf_l.c +# _cwscanf_s.c +# _cwscanf_s_l.c +# _daylight +# _difftime32.c +# _difftime64.c +# _dstbias +# _dup.c +# _dup2.c +# _ecvt.c +# _ecvt_s +# _endthread.c +# _endthreadex.c +# _environ +# _eof.c +# _errno.c +# _execl.c +# _execle.c +# _execlp.c +# _execlpe.c +# _execv.c +# _execve.c +# _execvp.c +# _execvpe.c +# _exit.c +# _expand.c +# _expand_dbg +# _fcloseall.c +# _fcvt.c +# _fcvt_s +# _fdopen.c +# _fgetchar.c +# _fgetwchar.c +# _filbuf.c +# _fileinfo +# _filelength.c +# -ret64 _filelengthi64.c +# _fileno.c +# _findclose.c +# _findfirst.c +# _findfirst64.c +# _findfirsti64.c +# _findnext.c +# _findnext64.c +# _findnexti64.c +# _finite.c +# _flsbuf.c +# _flushall.c +# _fmode +# _fpclass.c +# _fpieee_flt.c +# _fpreset.c +# _fprintf_l +# _fprintf_p +# _fprintf_p_l +# _fprintf_s_l +# _fputchar.c +# _fputwchar.c +# _free_dbg +# _freea +# _freea_s +# _fscanf_l +# _fscanf_l.c +# _fscanf_s_l.c +# _fseeki64.c +# _fsopen.c +# _fstat.c +# _fstat64.c +# _fstati64.c +# -ret64 _ftelli64.c +# _ftime.c +# _ftime32.c +# _ftime32_s +# _ftime64.c +# _ftime64_s +# _ftol2_sse_excpt +# _fullpath.c +# _fullpath_dbg +# _futime.c +# _futime32.c +# _futime64.c +# _fwprintf_l +# _fwprintf_p +# _fwprintf_p_l +# _fwprintf_s_l +# _fwscanf_l.c +# _fwscanf_s_l.c +# _gcvt.c +# _gcvt_s +# _get_doserrno.c +# _get_environ +# _get_errno.c +# _get_fileinfo +# _get_fmode +# _get_heap_handle.c +# _get_osfhandle.c +# _get_osplatform.c +# _get_osver +# _get_output_format.c +# _get_pgmptr.c +# _get_sbh_threshold.c +# _get_wenviron +# _get_winmajor +# _get_winminor +# _get_winver +# _get_wpgmptr.c +# _get_terminate.c +# _get_tzname.c +# _get_unexpected.c +# _getch.c +# _getche.c +# _getcwd.c +# _getdcwd.c +# _getdiskfree.c +# _getdllprocaddr.c +# _getdrive.c +# _getdrives.c kernel32.GetLogicalDrives +# _getmaxstdio.c +# _getmbcp.c +# _getpid.c kernel32.GetCurrentProcessId +# _getsystime.c +# _getw.c +# _getwch +# _getwche +# _getws.c +# _gmtime32.c +# _gmtime32_s.c +# _gmtime64.c +# _gmtime64_s.c +# _heapadd.c +# _heapchk.c +# _heapmin.c +# _heapset.c +# _heapused.c +# _heapwalk.c +# _hypot.c +# _i64toa.c +# _i64toa_s.c +# _i64tow.c +# _i64tow_s.c +# _initterm.c +# _initterm_e.c +# _invalid_parameter.c +# _iob +# _isalnum_l +# _isalpha_l +# _isatty.c +# _iscntrl_l +# _isctype.c +# _isctype_l +# _isdigit_l +# _isgraph_l +# _isleadbyte_l +# _islower_l +# _ismbbalnum.c +# _ismbbalnum_l +# _ismbbalpha.c +# _ismbbalpha_l +# _ismbbgraph.c +# _ismbbgraph_l +# _ismbbkalnum.c +# _ismbbkalnum_l +# _ismbbkana.c +# _ismbbkana_l +# _ismbbkprint.c +# _ismbbkprint_l +# _ismbbkpunct.c +# _ismbbkpunct_l +# _ismbblead.c +# _ismbblead_l +# _ismbbprint.c +# _ismbbprint_l +# _ismbbpunct.c +# _ismbbpunct_l +# _ismbbtrail.c +# _ismbbtrail_l +# _ismbcalnum.c +# _ismbcalnum_l +# _ismbcalpha.c +# _ismbcalpha_l +# _ismbcdigit.c +# _ismbcdigit_l +# _ismbcgraph.c +# _ismbcgraph_l +# _ismbchira.c +# _ismbchira_l +# _ismbckata.c +# _ismbckata_l +# _ismbcl0.c +# _ismbcl0_l +# _ismbcl1.c +# _ismbcl1_l +# _ismbcl2.c +# _ismbcl2_l +# _ismbclegal.c +# _ismbclegal_l +# _ismbclower.c +# _ismbclower_l +# _ismbcprint.c +# _ismbcprint_l +# _ismbcpunct.c +# _ismbcpunct_l +# _ismbcspace.c +# _ismbcspace_l +# _ismbcsymbol.c +# _ismbcsymbol_l +# _ismbcupper.c +# _ismbcupper_l +# _ismbslead.c +# _ismbslead_l +# _ismbstrail.c +# _ismbstrail_l +# _isnan.c +# _isprint_l +# _isspace_l +# _isupper_l +# _iswalnum_l +# _iswalpha_l +# _iswcntrl_l +# _iswctype_l +# _iswdigit_l +# _iswgraph_l +# _iswlower_l +# _iswprint_l +# _iswpunct_l +# _iswspace_l +# _iswupper_l +# _iswxdigit_l +# _isxdigit_l +# _itoa.c +# _itoa_s.c +# _itow.c +# _itow_s.c +# _j0.c +# _j1.c +# _jn.c +# _kbhit.c +# _lfind.c +# _lfind_s +# _loaddll.c +# _localtime32.c +# _localtime32_s.c +# _localtime64.c +# _localtime64_s.c +# _lock.c +# _locking.c +# _logb.c +# _longjmpex.c longjmp +# _lrotl.c +# _lrotr.c +# _lsearch.c +# _lsearch_s +# _lseek.c +# -ret64 _lseeki64.c +# _ltoa.c +# _ltoa_s.c +# _ltow.c +# _ltow_s.c +# _makepath.c +# _makepath_s.c +# _malloc_dbg +# _mbbtombc.c +# _mbbtombc_l +# _mbbtype.c +# _mbcasemap +# _mbccpy .c +# _mbccpy_l +# _mbccpy_s +# _mbccpy_s_l +# _mbcjistojms.c +# _mbcjistojms_l +# _mbcjmstojis.c +# _mbcjmstojis_l +# _mbclen.c +# _mbclen_l +# _mbctohira.c +# _mbctohira_l +# _mbctokata.c +# _mbctokata_l +# _mbctolower.c +# _mbctolower_l +# _mbctombb.c +# _mbctombb_l +# _mbctoupper.c +# _mbctoupper_l +# _mbctype +# _mblen_l +# _mbsbtype.c +# _mbsbtype_l +# _mbscat.c +# _mbscat_s +# _mbscat_s_l +# _mbschr.c +# _mbschr_l +# _mbscmp.c +# _mbscmp_l +# _mbscoll.c +# _mbscoll_l +# _mbscpy.c +# _mbscpy_s +# _mbscpy_s_l +# _mbscspn.c +# _mbscspn_l +# _mbsdec.c +# _mbsdec_l +# _mbsdup.c +# _strdup_dbg +# _mbsicmp.c +# _mbsicmp_l +# _mbsicoll.c +# _mbsicoll_l +# _mbsinc.c +# _mbsinc_l +# _mbslen.c +# _mbslen_l +# _mbslwr.c +# _mbslwr_l +# _mbslwr_s +# _mbslwr_s_l +# _mbsnbcat.c +# _mbsnbcat_l +# _mbsnbcat_s +# _mbsnbcat_s_l +# _mbsnbcmp.c +# _mbsnbcmp_l +# _mbsnbcnt.c +# _mbsnbcnt_l +# _mbsnbcoll.c +# _mbsnbcoll_l +# _mbsnbcpy.c +# _mbsnbcpy_l +# _mbsnbcpy_s.c +# _mbsnbcpy_s_l +# _mbsnbicmp.c +# _mbsnbicmp_l +# _mbsnbicoll.c +# _mbsnbicoll_l +# _mbsnbset.c +# _mbsnbset_l +# _mbsnbset_s +# _mbsnbset_s_l +# _mbsncat.c +# _mbsncat_l +# _mbsncat_s +# _mbsncat_s_l +# _mbsnccnt.c +# _mbsnccnt_l +# _mbsncmp.c +# _mbsncmp_l +# _mbsncoll.c +# _mbsncoll_l +# _mbsncpy.c +# _mbsncpy_l +# _mbsncpy_s +# _mbsncpy_s_l +# _mbsnextc.c +# _mbsnextc_l +# _mbsnicmp.c +# _mbsnicmp_l +# _mbsnicoll.c +# _mbsnicoll_l +# _mbsninc.c +# _mbsninc_l +# _mbsnlen +# _mbsnlen_l +# _mbsnset.c +# _mbsnset_l +# _mbsnset_s +# _mbsnset_s_l +# _mbspbrk.c +# _mbspbrk_l +# _mbsrchr.c +# _mbsrchr_l +# _mbsrev.c +# _mbsrev_l +# _mbsset.c +# _mbsset_l +# _mbsset_s +# _mbsset_s_l +# _mbsspn.c +# _mbsspn_l +# _mbsspnp.c +# _mbsspnp_l +# _mbsstr.c +# _mbsstr_l +# _mbstok.c +# _mbstok_l +# _mbstok_s +# _mbstok_s_l +# _mbstowcs_l +# _mbstowcs_s_l +# _mbstrlen.c +# _mbstrlen_l +# _mbstrnlen +# _mbstrnlen_l +# _mbsupr.c +# _mbsupr_l +# _mbsupr_s +# _mbsupr_s_l +# _mbtowc_l +# _memccpy.c +# _memicmp.c +# _memicmp_l +# _mkdir.c +# _mkgmtime.c +# _mkgmtime32.c +# _mkgmtime64.c +# _mktemp.c +# _mktemp_s +# _mktime32.c +# _mktime64.c +# _msize.c +# _msize_debug +# _nextafter.c +# _onexit.c +# _open.c +# _open_osfhandle.c +# _osplatform +# _osver +# _outp.c +# _outpd.c +# _outpw.c +# _pclose.c +# _pctype +# _pgmptr +# _pipe.c +# _popen.c +# _printf_l +# _printf_p +# _printf_p_l +# _printf_s_l +# _purecall.c +# _putch.c +# _putenv.c +# _putenv_s +# _putw.c +# _putwch.c +# _putws.c +# _pwctype +# _read.c +# _realloc_dbg +# _resetstkoflw.c +# _rmdir.c +# _rmtmp.c +# _rotl.c +# _rotl64 +# _rotr.c +# _rotr64 +# _scalb.c +# _scanf_l.c +# _scanf_s_l.c +# _scprintf +# _scprintf_l +# _scprintf_p_l +# _scwprintf +# _scwprintf_l +# _scwprintf_p_l +# _searchenv.c +# _searchenv_s.c +# _set_SSE2_enable +# _set_controlfp +# _set_doserrno.c +# _set_errno.c +# _set_error_mode.c +# _set_fileinfo +# _set_fmode +# _set_output_format +# _set_sbh_threshold.c +# _seterrormode.c +# _setmaxstdio.c +# _setmbcp.c +# _setmode.c +# _setsystime.c +# _sleep.c +# _snprintf.c +# _snprintf_c +# _snprintf_c_l +# _snprintf_l +# _snprintf_s +# _snprintf_s_l +# _snscanf +# _snscanf_l +# _snscanf_s +# _snscanf_s_l +# _snwprintf.c +# _snwprintf_l +# _snwprintf_s +# _snwprintf_s_l +# _snwscanf +# _snwscanf_l +# _snwscanf_s +# _snwscanf_s_l +# _sopen.c +# _sopen_s.c +# _spawnl.c +# _spawnle.c +# _spawnlp.c +# _spawnlpe.c +# _spawnv.c +# _spawnve.c +# _spawnvp.c +# _spawnvpe.c +# _splitpath.c +# _splitpath_s +# _sprintf_l +# _sprintf_p_l +# _sprintf_s_l +# _sscanf_l.c +# _sscanf_s_l.c +# _stat.c +# _stat64.c +# _stati64.c +# _statusfp.c +# _strcmpi.c +# _strcoll_l +# _strdate.c +# _strdate_s +# _strdup.c +# _strdup_dbg +# _strerror.c +# _strerror_s +# _stricmp.c +# _stricmp_l +# _stricoll.c +# _stricoll_l +# _strlwr.c +# _strlwr_l +# _strlwr_s +# _strlwr_s_l +# _strncoll.c +# _strncoll_l +# _strnicmp.c +# _strnicmp_l +# _strnicoll.c +# _strnicoll_l +# _strnset.c +# _strnset_s +# _strrev.c +# _strset.c +# _strset_s +# _strtime.c +# _strtime_s +# _strtod_l.c +# _strtoi64.c +# _strtoi64_l.c +# _strtol_l +# _strtoui64.c strtoull +# _strtoui64_l.c +# _strtoul_l +# _strupr.c +# _strupr_l +# _strupr_s +# _strupr_s_l +# _strxfrm_l +# _swab.c +# _swprintf.c swprintf +# _swprintf_c +# _swprintf_c_l +# _swprintf_p_l +# _swprintf_s_l +# _swscanf_l.c +# _swscanf_s_l.c +# _sys_errlist +# _sys_nerr +# _tell.c +# -ret64 _telli64.c +# _tempnam.c +# _tempnam_dbg +# _time32.c +# _time64.c +# _timezone +# _tolower.c +# _tolower_l +# _toupper.c +# _toupper_l +# _towlower_l +# _towupper_l +# _tzname +# _tzset.c +# _ui64toa.c +# _ui64toa_s.c +# _ui64tow.c +# _ui64tow_s.c +# _ultoa.c +# _ultoa_s +# _ultow.c +# _ultow_s +# _umask.c +# _umask_s +# _ungetch.c +# _ungetwch +# _unlink.c +# _unloaddll.c +# _unlock.c +# _utime32.c +# _utime64.c +# _vcprintf +# _vcprintf_l +# _vcprintf_p +# _vcprintf_p_l +# _vcprintf_s +# _vcprintf_s_l +# _vcwprintf.c +# _vcwprintf_l +# _vcwprintf_p +# _vcwprintf_p_l +# _vcwprintf_s +# _vcwprintf_s_l +# _vfprintf_l +# _vfprintf_p +# _vfprintf_p_l +# _vfprintf_s_l +# _vfwprintf_l +# _vfwprintf_p +# _vfwprintf_p_l +# _vfwprintf_s_l +# _vprintf_l +# _vprintf_p +# _vprintf_p_l +# _vprintf_s_l +# _utime.c +# _vscprintf.c +# _vscprintf_l +# _vscprintf_p_l +# _vscwprintf.c +# _vscwprintf_l +# _vscwprintf_p_l +# _vsnprintf.c +# _vsnprintf_c.c _vsnprintf +# _vsnprintf_c_l.c _vsnprintf_l +# _vsnprintf_l.c +# _vsnprintf_s.c +# _vsnprintf_s_l.c +# _vsnwprintf.c +# _vsnwprintf_l.c +# _vsnwprintf_s.c +# _vsnwprintf_s_l.c +# _vsprintf_l +# _vsprintf_p.c +# _vsprintf_p_l +# _vsprintf_s_l +# _vswprintf.c +# _vswprintf_c.c _vsnwprintf +# _vswprintf_c_l.c _vsnwprintf_l +# _vswprintf_l.c +# _vswprintf_p_l.c _vsnwprintf_l +# _vswprintf_s_l.c +# _vwprintf_l +# _vwprintf_p +# _vwprintf_p_l +# _vwprintf_s_l +# _waccess.c +# _waccess_s.c +# _wasctime.c +# _wasctime_s +# _wassert +# _wchdir.c +# _wchmod.c +# _wcmdln +# _wcreat.c +# _wcscoll_l +# _wcsdup.c +# _wcsdup_dbg +# _wcserror.c +# _wcserror_s.c +# _wcsftime_l +# _wcsicmp.c +# _wcsicmp_l +# _wcsicoll.c +# _wcsicoll_l +# _wcslwr.c +# _wcslwr_l +# _wcslwr_s +# _wcslwr_s_l +# _wcsncoll.c +# _wcsncoll_l +# _wcsnicmp.c +# _wcsnicmp_l +# _wcsnicoll.c +# _wcsnicoll_l +# _wcsnset.c +# _wcsnset_s +# _wcsrev.c +# _wcsset.c +# _wcsset_s +# _wcstoi64.c +# _wcstoi64_l.c +# _wcstol_l +# _wcstombs_l +# _wcstombs_s_l.c +# _wcstoui64.c +# _wcstoui64_l.c +# _wcstoul_l +# _wcsupr.c +# _wcsupr_l +# _wcsupr_s.c +# _wcsupr_s_l +# _wcsxfrm_l +# _wctime.c +# _wctime32.c +# _wctime32_s +# _wctime64.c +# _wctime64_s +# _wctomb_l +# _wctomb_s_l +# _wctype +# _wenviron +# _wexecl.c +# _wexecle.c +# _wexeclp.c +# _wexeclpe.c +# _wexecv.c +# _wexecve.c +# _wexecvp.c +# _wexecvpe.c +# _wfdopen.c +# _wfindfirst.c +# _wfindfirst64 +# _wfindfirsti64.c +# _wfindnext.c +# _wfindnext64 +# _wfindnexti64.c +# _wfopen.c +# _wfopen_s.c +# _wfreopen.c +# _wfreopen_s +# _wfsopen.c +# _wfullpath.c +# _wfullpath_dbg +# _wgetcwd.c +# _wgetdcwd.c +# _wgetenv.c +# _wgetenv_s +# _winmajor +# _winminor +# _winput_s +# _winver +# _wmakepath.c +# _wmakepath_s.c +# _wmkdir.c +# _wmktemp.c +# _wmktemp_s +# _wopen.c +# _woutput_s +# _wperror.c +# _wpgmptr +# _wpopen.c +# _wprintf_l +# _wprintf_p +# _wprintf_p_l +# _wprintf_s_l +# _wputenv.c +# _wputenv_s +# _wremove.c +# _wrename.c +# _write.c +# _wrmdir.c +# _wscanf_l.c +# _wscanf_s_l.c +# _wsearchenv.c +# _wsearchenv_s +# _wsetlocale.c +# _wsopen.c +# _wsopen_s.c +# _wspawnl.c +# _wspawnle.c +# _wspawnlp.c +# _wspawnlpe.c +# _wspawnv.c +# _wspawnve.c +# _wspawnvp.c +# _wspawnvpe.c +# _wsplitpath.c +# _wsplitpath_s.c +# _wstat.c +# _wstati64.c +# _wstat64.c +# _wstrdate.c +# _wstrdate_s +# _wstrtime.c +# _wstrtime_s +# _wsystem.c +# _wtempnam.c +# _wtempnam_dbg +# _wtmpnam.c +# _wtmpnam_s +# _wtof.c +# _wtof_l.c +# _wtoi.c +# _wtoi64.c +# _wtoi64_l +# _wtoi_l +# _wtol.c +# _wtol_l +# _wunlink.c +# _wutime.c +# _wutime32.c +# _wutime64.c +# _y0.c +# _y1.c +# _yn.c +# abort.c +# abs.c +# acos.c +# asctime.c +# asctime_s +# asin.c +# atan.c +# atan2.c +# atexit # <-- keep this as an extern, thank you +# atof.c +# atoi.c +# atol.c +# bsearch.c +# bsearch_s +# btowc.c +# calloc.c +# ceil.c +# clearerr.c +# clearerr_s +# clock.c +# cos.c +# cosh.c +# ctime.c +# difftime.c +# div.c +# exit.c +# exp.c +# fabs.c +# fclose.c +# feof.c +# ferror.c +# fflush.c +# fgetc.c +# fgetpos.c +# fgets.c +# fgetwc.c +# fgetws.c +# floor.c +# fmod.c +# fopen.c +# fopen_s.c +# fprintf.c +# fprintf_s.c +# fputc.c +# fputs.c +# fputwc.c +# fputws.c +# fread.c +# free.c +# freopen.c +# freopen_s +# frexp.c +# fscanf.c +# fscanf_s.c +# fseek.c +# fsetpos.c +# ftell.c +# fwprintf.c +# fwprintf_s.c +# fwrite.c +# fwscanf.c +# fwscanf_s.c +# getc.c +# getchar.c +# getenv.c +# getenv_s +# gets.c +# getwc.c +# getwchar.c +# gmtime.c +# is_wctype.c +# isalnum.c +# isalpha.c +# iscntrl.c +# isdigit.c +# isgraph.c +# isleadbyte.c +# islower.c +# isprint.c +# ispunct.c +# isspace.c +# isupper.c +# iswalnum.c +# iswalpha.c +# iswascii.c +# iswcntrl.c +# iswctype.c +# iswdigit.c +# iswgraph.c +# iswlower.c +# iswprint.c +# iswpunct.c +# iswspace.c +# iswupper.c +# iswxdigit.c +# isxdigit.c +# labs.c +# ldexp.c +# ldiv.c +# localeconv.c +# localtime.c +# log.c +# log10.c +# longjmp.c +# malloc.c +# mblen.c +# mbrlen +# mbrtowc +# mbsdup_dbg +# mbsrtowcs +# mbsrtowcs_s +# mbstowcs.c +# mbstowcs_s +# mbtowc.c +# memchr.c +# memcmp.c +# memcpy.c +# memcpy_s.c memmove_s +# memmove.c +# memmove_s.c +# memset.c +# mktime.c +# modf.c +# perror.c +# pow.c +# printf.c +# printf_s.c +# putc.c +# putchar.c +# puts.c +# putwc.c fputwc +# putwchar.c _fputwchar +# qsort.c +# qsort_s +# raise.c +# rand.c +# rand_s.c +# realloc.c +# remove.c +# rename.c +# rewind.c +# scanf.c +# scanf_s.c +# setbuf.c +# _setjmp.c +# setlocale.c +# setvbuf.c +# signal.c +# sin.c +# sinh.c +# sprintf.c +# sprintf_s.c +# sqrt.c +# srand.c +# sscanf.c +# sscanf_s.c +# strcat.c +# strcat_s.c +# strchr.c +# strcmp.c +# strcoll.c + strcpy.c +# strcpy_s.c +# strcspn.c +# strerror.c +# strerror_s.c +# strftime.c +# strlen.c +# strncat.c +# strncat_s +# strncmp.c +# strncpy.c +# strncpy_s.c +# strnlen.c +# strpbrk.c +# strrchr.c +# strspn.c +# strstr.c +# strtod.c +# strtok.c +# strtok_s.c +# strtol.c +# strtoul.c +# strxfrm.c +# swprintf.c +# swprintf_s.c +# swscanf.c +# swscanf_s.c +# system.c +# tan.c +# tanh.c +# time.c +# tmpfile.c +# tmpfile_s +# tmpnam.c +# tmpnam_s +# tolower.c +# toupper.c +# towlower.c +# towupper.c +# ungetc.c +# ungetwc.c +# utime +# vfprintf.c +# vfprintf_s.c +# vfwprintf.c +# vfwprintf_s.c +# vprintf.c +# vprintf_s.c +# vsnprintf +# vsprintf.c +# vsprintf_s.c +# vswprintf.c +# vswprintf_s.c +# vwprintf.c +# vwprintf_s.c +# wcrtomb +# wcrtomb_s +# wcscat.c +# wcscat_s.c +# wcschr.c +# wcscmp.c +# wcscoll.c +# wcscpy.c +# wcscpy_s.c +# wcscspn.c +# wcsftime.c +# wcslen.c +# wcsncat.c +# wcsncat_s.c +# wcsncmp.c +# wcsncpy.c +# wcsncpy_s.c +# wcsnlen +# wcspbrk.c +# wcsrchr.c +# wcsrtombs +# wcsrtombs_s +# wcsspn.c +# wcsstr.c +# wcstod.c +# wcstok.c +# wcstok_s.c +# wcstol.c +# wcstombs.c +# wcstombs_s.c +# wcstoul.c +# wcsxfrm.c +# wctob +# wctomb.c +# wctomb_s +# wprintf.c +# wprintf_s.c +# wscanf.c +# wscanf_s.c +) + +if (ARCH MATCHES i386) + list(APPEND SOURCE_MSVCRT + # _CIacos.c + # _CIasin.c + # _CIatan.c + # _CIatan2.c + # _CIcos.c + # _CIcosh.c + # _CIexp.c + # _CIfmod.c + # _CIlog.c + # _CIlog10.c + # _CIpow.c + # _CIsin.c + # _CIsinh.c + # _CIsqrt.c + # _CItan.c + # _CItanh.c + # _chkesp.c + # _EH_prolog.c + # __CxxFrameHandler.c + # __CxxFrameHandler2.c + # __CxxFrameHandler3.c + # __CxxLongjmpUnwind.c + # __p___argc.c + # __p___argv.c + # __p___initenv.c + # __p___mb_cur_max.c + # __p___wargv.c + # __p___winitenv.c + # __p__acmdln.c + # __p__amblksiz.c + # __p__commode.c + # __p__daylight.c + # __p__dstbias.c + # __p__environ.c + # __p__fileinfo.c + # __p__fmode.c + # __p__iob.c + # __p__mbcasemap.c + # __p__mbctype.c + # __p__osver.c + # __p__pctype.c + # __p__pgmptr.c + # __p__pwctype.c + # __p__timezone.c + # __p__tzname.c + # __p__wcmdln.c + # __p__wenviron.c + # __p__winmajor.c + # __p__winminor.c + # __p__winver.c + # __p__wpgmptr.c + # _adj_fdiv_m16i.c + # _adj_fdiv_m32.c + # _adj_fdiv_m32i.c + # _adj_fdiv_m64.c + # _adj_fdiv_r.c + # _adj_fdivr_m16i.c + # _adj_fdivr_m32.c + # _adj_fdivr_m32i.c + # _adj_fdivr_m64.c + # _adj_fpatan.c + # _adj_fprem.c + # _adj_fprem1.c + # _adj_fptan.c + # _adjust_fdiv + # _except_handler2.c + # _except_handler3.c + # _except_handler4_common.c + # _ftol.c + # _ftol2.c _ftol + # _ftol2_sse.c + # _global_unwind2.c + # _inp.c + # _inpd.c + # _inpw.c + # _local_unwind2.c + # _local_unwind4.c + # _safe_fdiv.c + # _safe_fdivr.c + # _safe_fprem.c + # _safe_fprem1.c + # _seh_longjmp_unwind4.c + # _seh_longjmp_unwind.c + # -norelay _setjmp3.c + ) +elseif (ARCH MATCHES amd64) + list(APPEND SOURCE_MSVCRT + # __C_specific_handler + # _setjmp.c + # _setjmpex.c + # _local_unwind.c + # longjmp.c + # __C_specific_handler.c + # _setjmpex.c + # ceilf.c + # cosf.c + # floorf.c + # fmodf.c + # logf.c + # powf.c + # sinf.c + # sqrtf.c + ) +endif() + +add_executable(static_crt_apitest testlist.c ${SOURCE_MSVCRT}) +target_link_libraries(static_crt_apitest wine ${PSEH_LIB} crt msvcrtex wine) +set_module_type(static_crt_apitest win32cui) +add_importlibs(static_crt_apitest kernel32) +add_cd_file(TARGET static_crt_apitest DESTINATION reactos/bin FOR all) + +add_executable(msvcrt_crt_apitest testlist.c ${SOURCE_MSVCRT}) +add_target_compile_definitions(msvcrt_crt_apitest _DLL __USE_CRTIMP) +target_link_libraries(msvcrt_crt_apitest wine ${PSEH_LIB}) +set_module_type(msvcrt_crt_apitest win32cui) +add_importlibs(msvcrt_crt_apitest msvcrt kernel32) +add_cd_file(TARGET msvcrt_crt_apitest DESTINATION reactos/bin FOR all) Propchange: trunk/rostests/apitests/crt/msvcrt_crt_apitest.cmake ------------------------------------------------------------------------------ svn:eol-style = native Added: trunk/rostests/apitests/crt/msvcrt_mini.spec URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/crt/msvcrt_mini.…
============================================================================== --- trunk/rostests/apitests/crt/msvcrt_mini.spec (added) +++ trunk/rostests/apitests/crt/msvcrt_mini.spec [iso-8859-1] Wed Apr 18 17:21:18 2012 @@ -1,0 +1,30 @@ + +@ cdecl fputs(str ptr) MSVCRT.fputs +@ extern _iob MSVCRT._iob +@ varargs fprintf(ptr str) MSVCRT.fprintf +@ cdecl vfprintf(ptr str ptr) MSVCRT.vfprintf +@ cdecl fflush(ptr) MSVCRT.fflush +@ cdecl setvbuf(ptr str long long) MSVCRT.setvbuf +@ cdecl _strdup(str) MSVCRT._strdup +@ cdecl __getmainargs(ptr ptr ptr long ptr) MSVCRT.__getmainargs +@ cdecl __setusermatherr(ptr) MSVCRT.__setusermatherr +@ cdecl _amsg_exit(long) MSVCRT._amsg_exit +@ cdecl __set_app_type(long) MSVCRT.__set_app_type +@ extern _fmode MSVCRT._fmode +@ cdecl _initterm(ptr ptr) MSVCRT._initterm +@ extern _acmdln MSVCRT._acmdln +@ cdecl signal(long long) MSVCRT.signal +@ cdecl _fpreset() MSVCRT._fpreset +@ cdecl _onexit(ptr) MSVCRT._onexit +@ cdecl __dllonexit(ptr ptr ptr) MSVCRT.__dllonexit +@ cdecl _unlock(long) MSVCRT._unlock +@ cdecl abort() MSVCRT.abort +@ cdecl calloc(long long) MSVCRT.calloc +@ cdecl malloc(long) MSVCRT.malloc +@ extern __initenv MSVCRT.__initenv +@ cdecl _cexit() MSVCRT._cexit +@ extern _winmajor MSVCRT._winmajor +@ cdecl __lconv_init() MSVCRT.__lconv_init +@ cdecl _lock(long) MSVCRT._lock +@ cdecl free(ptr) MSVCRT.free +@ cdecl exit(long) MSVCRT.exit Propchange: trunk/rostests/apitests/crt/msvcrt_mini.spec ------------------------------------------------------------------------------ svn:eol-style = native Added: trunk/rostests/apitests/crt/ntdll_crt_apitest.cmake URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/crt/ntdll_crt_ap…
============================================================================== --- trunk/rostests/apitests/crt/ntdll_crt_apitest.cmake (added) +++ trunk/rostests/apitests/crt/ntdll_crt_apitest.cmake [iso-8859-1] Wed Apr 18 17:21:18 2012 @@ -1,0 +1,161 @@ + +list(APPEND SOURCE_NTDLL +# _CIcos.c +# _CIlog.c +# _CIsin.c +# _CIsqrt.c +# __isascii.c +# __iscsym.c +# __iscsymf.c +# __toascii.c +# _atoi64.c +# _fltused.c +# _i64toa.c +# _i64tow.c +# _itoa.c +# _itow.c +# _lfind.c +# _ltoa.c +# _ltow.c +# _memccpy.c +# _memicmp.c +# _snprintf.c +# _snwprintf.c +# _splitpath.c + # _strcmpi == _stricmp +# _stricmp.c +# _strlwr.c +# _strnicmp.c +# _strupr.c +# _tolower.c +# _toupper.c +# _ui64toa.c +# _ui64tow.c +# _ultoa.c +# _ultow.c +# _vscwprintf.c +# _vsnprintf.c +# _vsnwprintf.c +# _wcsicmp.c +# _wcslwr.c +# _wcsnicmp.c +# _wcsupr.c +# _wtoi.c +# _wtoi64.c +# _wtol.c +# abs.c +# atan.c +# atoi.c +# atol.c +# bsearch.c +# ceil.c +# cos.c +# fabs.c +# floor.c +# isalnum.c +# isalpha.c +# iscntrl.c +# isdigit.c +# isgraph.c +# islower.c +# isprint.c +# ispunct.c +# isspace.c +# isupper.c +# iswalpha.c +# iswctype.c +# iswdigit.c +# iswlower.c +# iswspace.c +# iswxdigit.c +# isxdigit.c +# labs.c +# log.c +# mbstowcs.c +# memchr.c +# memcmp.c + # memcpy == memmove +# memmove.c +# memset.c +# pow.c +# qsort.c +# sin.c +# sprintf.c +# sqrt.c +# sscanf.c +# strcat.c +# strchr.c +# strcmp.c + strcpy.c +# strcspn.c +# strlen.c +# strncat.c +# strncmp.c +# strncpy.c +# strpbrk.c +# strrchr.c +# strspn.c +# strstr.c +# strtol.c +# strtoul.c +# swprintf.c +# tan.c +# tolower.c +# toupper.c +# towlower.c +# towupper.c +# vsprintf.c +# wcscat.c +# wcschr.c +# wcscmp.c +# wcscpy.c +# wcscspn.c +# wcslen.c +# wcsncat.c +# wcsncmp.c +# wcsncpy.c +# wcspbrk.c +# wcsrchr.c +# wcsspn.c +# wcsstr.c +# wcstok.c +# wcstol.c +# wcstombs.c +# wcstoul.c +) + +if (ARCH MATCHES i386) + list(APPEND SOURCE_NTDLL + # _CIpow.c + # _ftol.c + # _alldiv.c + # _alldvrm.c + # _allmul.c + # _allrem.c + # _allshl.c + # _allshr.c + # _alloca_probe.c + # _aulldiv.c + # _aulldvrm.c + # _aullrem.c + # _aullshr.c + # _chkstk.c + ) +elseif (ARCH MATCHES amd64) + list(APPEND SOURCE_NTDLL + # __C_specific_handler + # _setjmp.c + # _setjmpex.c + # _local_unwind.c + # longjmp.c + ) +endif() + + +add_executable(ntdll_crt_apitest testlist.c ${SOURCE_NTDLL}) +add_target_compile_definitions(ntdll_crt_apitest _DLL __USE_CRTIMP) +target_link_libraries(ntdll_crt_apitest wine ${PSEH_LIB}) +set_module_type(ntdll_crt_apitest win32cui) +add_importlibs(ntdll_crt_apitest ntdll msvcrt_mini kernel32) +add_cd_file(TARGET ntdll_crt_apitest DESTINATION reactos/bin FOR all) + Propchange: trunk/rostests/apitests/crt/ntdll_crt_apitest.cmake ------------------------------------------------------------------------------ svn:eol-style = native Added: trunk/rostests/apitests/crt/strcpy.c URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/crt/strcpy.c?rev…
============================================================================== --- trunk/rostests/apitests/crt/strcpy.c (added) +++ trunk/rostests/apitests/crt/strcpy.c [iso-8859-1] Wed Apr 18 17:21:18 2012 @@ -1,0 +1,8 @@ + +#include <stdio.h> +#include <wine/test.h> + +START_TEST(strcpy) +{ +} + Propchange: trunk/rostests/apitests/crt/strcpy.c ------------------------------------------------------------------------------ svn:eol-style = native Added: trunk/rostests/apitests/crt/testlist.c URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/crt/testlist.c?r…
============================================================================== --- trunk/rostests/apitests/crt/testlist.c (added) +++ trunk/rostests/apitests/crt/testlist.c [iso-8859-1] Wed Apr 18 17:21:18 2012 @@ -1,0 +1,21 @@ +#define WIN32_LEAN_AND_MEAN +#define __ROS_LONG64__ +#include <windows.h> + +#define STANDALONE +#include "wine/test.h" + +extern void func_strcpy(void); + +const struct test winetest_testlist[] = +{ + { "strcpy", func_strcpy }, +#if defined(TEST_CRTDLL) || defined(TEST_MSVCRT) + // ... +#elif defined(TEST_MSVCRT) +#elif defined(TEST_NTDLL) +#elif defined(TEST_CRTDLL) +#endif + { 0, 0 } +}; + Propchange: trunk/rostests/apitests/crt/testlist.c ------------------------------------------------------------------------------ svn:eol-style = native
12 years, 8 months
1
0
0
0
[tkreuzer] 56362: [CRTDLL] Create an import lib (needed for upcoming test)
by tkreuzer@svn.reactos.org
Author: tkreuzer Date: Wed Apr 18 17:18:11 2012 New Revision: 56362 URL:
http://svn.reactos.org/svn/reactos?rev=56362&view=rev
Log: [CRTDLL] Create an import lib (needed for upcoming test) Modified: trunk/reactos/dll/win32/crtdll/CMakeLists.txt Modified: trunk/reactos/dll/win32/crtdll/CMakeLists.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/crtdll/CMakeList…
============================================================================== --- trunk/reactos/dll/win32/crtdll/CMakeLists.txt [iso-8859-1] (original) +++ trunk/reactos/dll/win32/crtdll/CMakeLists.txt [iso-8859-1] Wed Apr 18 17:18:11 2012 @@ -1,5 +1,5 @@ -spec2def(crtdll.dll crtdll.spec) +spec2def(crtdll.dll crtdll.spec ADD_IMPORTLIB) add_definitions( -DUSE_MSVCRT_PREFIX
12 years, 8 months
1
0
0
0
[tkreuzer] 56361: [NTDLL] Mark _chkstk as extern to avoid duplication with msvcrtex library (using alloca will cause _alloca_probe to be linked, which aliases _chkstk)
by tkreuzer@svn.reactos.org
Author: tkreuzer Date: Wed Apr 18 16:26:41 2012 New Revision: 56361 URL:
http://svn.reactos.org/svn/reactos?rev=56361&view=rev
Log: [NTDLL] Mark _chkstk as extern to avoid duplication with msvcrtex library (using alloca will cause _alloca_probe to be linked, which aliases _chkstk) Modified: trunk/reactos/dll/ntdll/def/ntdll.spec Modified: trunk/reactos/dll/ntdll/def/ntdll.spec URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/ntdll/def/ntdll.spec?r…
============================================================================== --- trunk/reactos/dll/ntdll/def/ntdll.spec [iso-8859-1] (original) +++ trunk/reactos/dll/ntdll/def/ntdll.spec [iso-8859-1] Wed Apr 18 16:26:41 2012 @@ -83,7 +83,7 @@ @ stdcall LdrFindResource_U(long ptr long ptr) ;@ stdcall LdrFlushAlternateResourceModules @ stdcall LdrGetDllHandle(wstr long ptr ptr) -@ stdcall LdrGetDllHandleEx(long wstr long ptr ptr) +@ stdcall LdrGetDllHandleEx(long wstr long ptr ptr) @ stdcall LdrGetProcedureAddress(ptr ptr long ptr) ;@ stdcall LdrHotPatchRoutine ;@ stdcall LdrInitShimEngineDynamic @@ -1314,7 +1314,7 @@ @ cdecl -arch=i386 _aulldvrm() @ cdecl -arch=i386 -ret64 _aullrem(double double) @ cdecl -arch=i386 _aullshr() -@ cdecl -arch=i386 -norelay _chkstk() +@ extern -arch=i386 _chkstk @ cdecl -arch=i386,x86_64 _fltused() @ cdecl -arch=i386 -ret64 _ftol() @ cdecl _i64toa(double ptr long)
12 years, 8 months
1
0
0
0
[tkreuzer] 56360: [CRT] Fix warnings
by tkreuzer@svn.reactos.org
Author: tkreuzer Date: Wed Apr 18 15:30:36 2012 New Revision: 56360 URL:
http://svn.reactos.org/svn/reactos?rev=56360&view=rev
Log: [CRT] Fix warnings Modified: trunk/reactos/lib/sdk/crt/include/internal/mingw-w64/internal.h Modified: trunk/reactos/lib/sdk/crt/include/internal/mingw-w64/internal.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/sdk/crt/include/intern…
============================================================================== --- trunk/reactos/lib/sdk/crt/include/internal/mingw-w64/internal.h [iso-8859-1] (original) +++ trunk/reactos/lib/sdk/crt/include/internal/mingw-w64/internal.h [iso-8859-1] Wed Apr 18 15:30:36 2012 @@ -18,6 +18,7 @@ #ifdef __REACTOS__ #include "malloc.h" +struct _exception; __declspec(dllimport) void __setusermatherr(int (__cdecl *)(struct _exception *)); #define __mingw_fprintf fprintf #define __mingw_vfprintf vfprintf
12 years, 8 months
1
0
0
0
[tkreuzer] 56359: [CRT] Sync startup code with mingw-w64, reduce difference a bit, remaining changes were passed upstream
by tkreuzer@svn.reactos.org
Author: tkreuzer Date: Wed Apr 18 15:12:45 2012 New Revision: 56359 URL:
http://svn.reactos.org/svn/reactos?rev=56359&view=rev
Log: [CRT] Sync startup code with mingw-w64, reduce difference a bit, remaining changes were passed upstream Added: trunk/reactos/lib/sdk/crt/startup/reactos.c (with props) Modified: trunk/reactos/lib/sdk/crt/include/internal/mingw-w64/internal.h trunk/reactos/lib/sdk/crt/msvcrtex.cmake trunk/reactos/lib/sdk/crt/startup/crtdll.c trunk/reactos/lib/sdk/crt/startup/crtexe.c trunk/reactos/lib/sdk/crt/startup/gs_support.c trunk/reactos/lib/sdk/crt/startup/merr.c trunk/reactos/lib/sdk/crt/startup/mscmain.c trunk/reactos/lib/sdk/crt/startup/pesect.c trunk/reactos/lib/sdk/crt/startup/pseudo-reloc.c trunk/reactos/lib/sdk/crt/startup/tlsmcrt.c trunk/reactos/lib/sdk/crt/startup/wcrtexe.c Modified: trunk/reactos/lib/sdk/crt/include/internal/mingw-w64/internal.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/sdk/crt/include/intern…
============================================================================== --- trunk/reactos/lib/sdk/crt/include/internal/mingw-w64/internal.h [iso-8859-1] (original) +++ trunk/reactos/lib/sdk/crt/include/internal/mingw-w64/internal.h [iso-8859-1] Wed Apr 18 15:12:45 2012 @@ -15,6 +15,13 @@ #include <limits.h> #include <windows.h> + +#ifdef __REACTOS__ +#include "malloc.h" +__declspec(dllimport) void __setusermatherr(int (__cdecl *)(struct _exception *)); +#define __mingw_fprintf fprintf +#define __mingw_vfprintf vfprintf +#endif #pragma pack(push,_CRT_PACKING) @@ -155,7 +162,7 @@ #define _GUI_APP 2 typedef enum __enative_startup_state { - __uninitialized, __initializing, __initialized + __uninitialized = 0, __initializing, __initialized } __enative_startup_state; extern volatile __enative_startup_state __native_startup_state; 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] Wed Apr 18 15:12:45 2012 @@ -34,6 +34,7 @@ startup/crt0_c.c startup/crt0_w.c startup/dllentry.c + startup/reactos.c misc/fltused.c misc/ofmt_stub.c ) Modified: trunk/reactos/lib/sdk/crt/startup/crtdll.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/sdk/crt/startup/crtdll…
============================================================================== --- trunk/reactos/lib/sdk/crt/startup/crtdll.c [iso-8859-1] (original) +++ trunk/reactos/lib/sdk/crt/startup/crtdll.c [iso-8859-1] Wed Apr 18 15:12:45 2012 @@ -33,12 +33,8 @@ #include <locale.h> extern void __cdecl _initterm(_PVFV *,_PVFV *); - -#if defined(__GNUC__) -extern void __main (void); +extern void __main (); extern void _pei386_runtime_relocator (void); -#endif - extern _CRTALLOC(".CRT$XIA") _PIFV __xi_a[]; extern _CRTALLOC(".CRT$XIZ") _PIFV __xi_z[]; extern _CRTALLOC(".CRT$XCA") _PVFV __xc_a[]; @@ -101,16 +97,19 @@ } Sleep(1000); } - if (__native_startup_state != __uninitialized) - { - _amsg_exit(31); - } - else + if (__native_startup_state == __initializing) + { + _amsg_exit (31); + } + else if (__native_startup_state == __uninitialized) { __native_startup_state = __initializing; _initterm ((_PVFV *) (void *) __xi_a, (_PVFV *) (void *) __xi_z); - _initterm (__xc_a,__xc_z); + } + if (__native_startup_state == __initializing) + { + _initterm (__xc_a, __xc_z); __native_startup_state = __initialized; } if (! nested) @@ -130,7 +129,7 @@ { Sleep(1000); } - if(__native_startup_state!=__initialized) + if (__native_startup_state != __initialized) { _amsg_exit (31); } @@ -183,9 +182,7 @@ retcode = FALSE; goto i__leave; } -#if defined(__GNUC__) _pei386_runtime_relocator (); -#endif if (dwReason == DLL_PROCESS_ATTACH || dwReason == DLL_THREAD_ATTACH) { retcode = _CRT_INIT (hDllHandle, dwReason, lpreserved); @@ -199,10 +196,8 @@ goto i__leave; } } -#if defined(__GNUC__) if (dwReason == DLL_PROCESS_ATTACH) __main (); -#endif retcode = DllMain(hDllHandle,dwReason,lpreserved); if (dwReason == DLL_PROCESS_ATTACH && ! retcode) { Modified: trunk/reactos/lib/sdk/crt/startup/crtexe.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/sdk/crt/startup/crtexe…
============================================================================== --- trunk/reactos/lib/sdk/crt/startup/crtexe.c [iso-8859-1] (original) +++ trunk/reactos/lib/sdk/crt/startup/crtexe.c [iso-8859-1] Wed Apr 18 15:12:45 2012 @@ -20,7 +20,6 @@ #include <tchar.h> #include <sect_attribs.h> #include <locale.h> -#include <malloc.h> #ifndef __winitenv extern wchar_t *** __MINGW_IMP_SYMBOL(__winitenv); @@ -43,8 +42,6 @@ extern void _fpreset (void); #define SPACECHAR _T(' ') #define DQUOTECHAR _T('\"') - -__declspec(dllimport) void __setusermatherr(int (__cdecl *)(struct _exception *)); extern int * __MINGW_IMP_SYMBOL(_fmode); extern int * __MINGW_IMP_SYMBOL(_commode); @@ -55,14 +52,6 @@ #define _commode (* __MINGW_IMP_SYMBOL(_commode)) extern int _dowildcard; -#if defined(__GNUC__) -int _MINGW_INSTALL_DEBUG_MATHERR __attribute__((weak)) = 0; -#else -int __declspec(selectany) _MINGW_INSTALL_DEBUG_MATHERR = 0; -#endif - -extern int __defaultmatherr; - extern _CRTIMP void __cdecl _initterm(_PVFV *, _PVFV *); static int __cdecl check_managed_app (void); @@ -85,12 +74,7 @@ DWORD __mingw_winmain_nShowCmd; static int argc; - -#if defined(__GNUC__) extern void __main(void); -extern void _pei386_runtime_relocator (void); -#endif - #ifdef WPRFLAG static wchar_t **argv; static wchar_t **envp; @@ -106,7 +90,7 @@ static _startupinfo startinfo; extern LPTOP_LEVEL_EXCEPTION_FILTER __mingw_oldexcpt_handler; - +extern void _pei386_runtime_relocator (void); long CALLBACK _gnu_exception_handler (EXCEPTION_POINTERS * exception_data); #ifdef WPRFLAG static void duplicate_ppstrings (int ac, wchar_t ***av); @@ -117,8 +101,10 @@ static int __cdecl pre_c_init (void); static void __cdecl pre_cpp_init (void); static void __cdecl __mingw_prepare_except_for_msvcr80_and_higher (void); -_CRTALLOC(".CRT$XIAA") _PIFV __declspec(selectany) mingw_pcinit = pre_c_init; -_CRTALLOC(".CRT$XCAA") _PVFV __declspec(selectany) mingw_pcppinit = pre_cpp_init; +_CRTALLOC(".CRT$XIAA") _PIFV mingw_pcinit = pre_c_init; +_CRTALLOC(".CRT$XCAA") _PVFV mingw_pcppinit = pre_cpp_init; + +extern int _MINGW_INSTALL_DEBUG_MATHERR; static int __cdecl pre_c_init (void) @@ -138,7 +124,7 @@ #else _setargv(); #endif - if (_MINGW_INSTALL_DEBUG_MATHERR) + if (_MINGW_INSTALL_DEBUG_MATHERR == 1) { __setusermatherr (_matherr); } @@ -224,13 +210,15 @@ WINBOOL inDoubleQuote = FALSE; memset (&StartupInfo, 0, sizeof (STARTUPINFO)); -#if !defined(_WIN64) && defined(__GNUC__) +#ifndef _WIN64 /* We need to make sure that this function is build with frame-pointer and that we align the stack to 16 bytes for the sake of SSE ops in main or in functions inlined into main. */ lpszCommandLine = (_TCHAR *) alloca (32); memset (lpszCommandLine, 0xcc, 32); +#ifdef __GNUC__ asm __volatile__ ("andl $-16, %%esp" : : : "%esp"); +#endif #endif if (mingw_app_type) @@ -269,19 +257,17 @@ _ASSERTE(__native_startup_state == __initialized); if (! nested) (VOID)InterlockedExchangePointer ((volatile PVOID *) &__native_startup_lock, 0); - + if (__dyn_tls_init_callback != NULL) __dyn_tls_init_callback (NULL, DLL_THREAD_ATTACH, NULL); - -#if defined(__GNUC__) + _pei386_runtime_relocator (); -#endif __mingw_oldexcpt_handler = SetUnhandledExceptionFilter (_gnu_exception_handler); -#if defined(_WIN64) && !defined(_MSC_VER) +#ifdef _WIN64 __mingw_init_ehandler (); #endif __mingw_prepare_except_for_msvcr80_and_higher (); - + _fpreset (); if (mingw_app_type) @@ -313,9 +299,7 @@ StartupInfo.wShowWindow : SW_SHOWDEFAULT; } duplicate_ppstrings (argc, &argv); -#if defined(__GNUC__) __main (); -#endif #ifdef WPRFLAG __winitenv = envp; /* C++ initialization. @@ -395,7 +379,7 @@ avl=*av; for (i=0; i < ac; i++) { - int l = wbytelen (avl[i]); + size_t l = wbytelen (avl[i]); n[i] = (wchar_t *) malloc (l); memcpy (n[i], avl[i], l); } @@ -408,11 +392,11 @@ char **avl; int i; char **n = (char **) malloc (sizeof (char *) * (ac + 1)); - + avl=*av; for (i=0; i < ac; i++) { - int l = strlen (avl[i]) + 1; + size_t l = strlen (avl[i]) + 1; n[i] = (char *) malloc (l); memcpy (n[i], avl[i], l); } @@ -439,21 +423,14 @@ #endif } -static void __cdecl +HANDLE __mingw_get_msvcrt_handle(void); + +static void __cdecl __mingw_prepare_except_for_msvcr80_and_higher (void) { _invalid_parameter_handler (*fIPH)(_invalid_parameter_handler) = NULL; - HMODULE hmsv = GetModuleHandleA ("msvcr80.dll"); - if(!hmsv) - hmsv = GetModuleHandleA ("msvcr70.dll"); - if (!hmsv) - hmsv = GetModuleHandleA ("msvcrt.dll"); - if (!hmsv) - hmsv = LoadLibraryA ("msvcrt.dll"); - if (!hmsv) - return; - fIPH = (_invalid_parameter_handler (*)(_invalid_parameter_handler)) - GetProcAddress (hmsv, "_set_invalid_parameter_handler"); + + fIPH = (void*)GetProcAddress (__mingw_get_msvcrt_handle(), "_set_invalid_parameter_handler"); if (fIPH) (*fIPH)(__mingw_invalidParameterHandler); } Modified: trunk/reactos/lib/sdk/crt/startup/gs_support.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/sdk/crt/startup/gs_sup…
============================================================================== --- trunk/reactos/lib/sdk/crt/startup/gs_support.c [iso-8859-1] (original) +++ trunk/reactos/lib/sdk/crt/startup/gs_support.c [iso-8859-1] Wed Apr 18 15:12:45 2012 @@ -97,10 +97,10 @@ #define _AddressOfReturnAddress() __builtin_frame_address (0) #endif /* __GNUC__ */ -__declspec(noreturn) void __cdecl __report_gsfailure (ULONGLONG); +__declspec(noreturn) void __cdecl __report_gsfailure (ULONG_PTR); __declspec(noreturn) void __cdecl -__report_gsfailure (ULONGLONG StackCookie) +__report_gsfailure (ULONG_PTR StackCookie) { volatile UINT_PTR cookie[2] __MINGW_ATTRIB_UNUSED; #ifdef _WIN64 Modified: trunk/reactos/lib/sdk/crt/startup/merr.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/sdk/crt/startup/merr.c…
============================================================================== --- trunk/reactos/lib/sdk/crt/startup/merr.c [iso-8859-1] (original) +++ trunk/reactos/lib/sdk/crt/startup/merr.c [iso-8859-1] Wed Apr 18 15:12:45 2012 @@ -7,8 +7,6 @@ #include <internal.h> #include <math.h> #include <stdio.h> - -int __defaultmatherr = 0; typedef int (__cdecl *fUserMathErr)(struct _exception *); static fUserMathErr stUserMathErr; @@ -20,7 +18,7 @@ if (!stUserMathErr) return; ex.type = typ; - ex.name = name; + ex.name = (char*)name; ex.arg1 = a1; ex.arg2 = a2; ex.retval = rslt; @@ -71,7 +69,7 @@ break; } - fprintf(stderr, "_matherr(): %s in %s(%g, %g) (retval=%g)\n", + __mingw_fprintf (stderr, "_matherr(): %s in %s(%g, %g) (retval=%g)\n", type, pexcept->name, pexcept->arg1, pexcept->arg2, pexcept->retval); return 0; } Modified: trunk/reactos/lib/sdk/crt/startup/mscmain.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/sdk/crt/startup/mscmai…
============================================================================== --- trunk/reactos/lib/sdk/crt/startup/mscmain.c [iso-8859-1] (original) +++ trunk/reactos/lib/sdk/crt/startup/mscmain.c [iso-8859-1] Wed Apr 18 15:12:45 2012 @@ -7,20 +7,24 @@ #include <windows.h> #include <stdlib.h> -int __mingw_init_ehandler (void) +void _pei386_runtime_relocator(void) +{ +} + +int __mingw_init_ehandler(void) { /* Nothing to do */ return 1; } void -__do_global_dtors (void) +__do_global_dtors(void) { } void -__do_global_ctors (void) +__do_global_ctors(void) { } @@ -35,7 +39,7 @@ static int initialized = 0; void -__main (void) +__main(void) { if (!initialized) { Modified: trunk/reactos/lib/sdk/crt/startup/pesect.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/sdk/crt/startup/pesect…
============================================================================== --- trunk/reactos/lib/sdk/crt/startup/pesect.c [iso-8859-1] (original) +++ trunk/reactos/lib/sdk/crt/startup/pesect.c [iso-8859-1] Wed Apr 18 15:12:45 2012 @@ -10,8 +10,8 @@ #if defined (_WIN64) && defined (__ia64__) #error FIXME: Unsupported __ImageBase implementation. #else +#ifdef __GNUC__ /* Hack, for bug in ld. Will be removed soon. */ -#ifndef _MSC_VER #define __ImageBase __MINGW_LSYMBOL(_image_base__) #endif /* This symbol is defined by the linker. */ @@ -184,3 +184,75 @@ return FALSE; return (pSection->Characteristics & IMAGE_SCN_MEM_WRITE) == 0; } + +const char * +__mingw_enum_import_library_names (int); + +const char * +__mingw_enum_import_library_names (int i) +{ + PBYTE pImageBase; + PIMAGE_NT_HEADERS pNTHeader; + PIMAGE_IMPORT_DESCRIPTOR importDesc; + PIMAGE_SECTION_HEADER pSection; + DWORD importsStartRVA; + + pImageBase = (PBYTE) &__ImageBase; + if (! _ValidateImageBase (pImageBase)) + return NULL; + + pNTHeader = (PIMAGE_NT_HEADERS) (pImageBase + ((PIMAGE_DOS_HEADER) pImageBase)->e_lfanew); + + importsStartRVA = pNTHeader->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].VirtualAddress; + if (!importsStartRVA) + return NULL; + + pSection = _FindPESection (pImageBase, importsStartRVA); + if (!pSection) + return NULL; + + importDesc = (PIMAGE_IMPORT_DESCRIPTOR) (pImageBase + importsStartRVA); + if (!importDesc) + return NULL; + + for (;;) + { + if (importDesc->TimeDateStamp == 0 && importDesc->Name == 0) + break; + + if (i <= 0) + return (char *) (pImageBase + importDesc->Name); + --i; + importDesc++; + } + + return NULL; +} + +HMODULE __mingw_get_msvcrt_handle(void); +HMODULE __mingw_get_msvcrt_handle(void) +{ + static HANDLE msvcrt_handle; + + if(!msvcrt_handle) { + const char *lib_name; + int i = 0; + + while ((lib_name = __mingw_enum_import_library_names (i++))) { + if((lib_name[0] == 'm' || lib_name[0] == 'M') + && (lib_name[1] == 's' || lib_name[1] == 'S') + && (lib_name[2] == 'v' || lib_name[2] == 'V') + && (lib_name[3] == 'c' || lib_name[3] == 'C') + && (lib_name[4] == 'r' || lib_name[4] == 'R') + && (lib_name[5] == 't' || lib_name[5] == 'T' || ('0' <= lib_name[5] && lib_name[5] <= '9'))) + break; + } + + if(lib_name) + msvcrt_handle = GetModuleHandleA(lib_name); + if(!msvcrt_handle) + msvcrt_handle = LoadLibraryW(L"msvcrt.dll"); + } + + return msvcrt_handle; +} Modified: trunk/reactos/lib/sdk/crt/startup/pseudo-reloc.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/sdk/crt/startup/pseudo…
============================================================================== --- trunk/reactos/lib/sdk/crt/startup/pseudo-reloc.c [iso-8859-1] (original) +++ trunk/reactos/lib/sdk/crt/startup/pseudo-reloc.c [iso-8859-1] Wed Apr 18 15:12:45 2012 @@ -3,7 +3,7 @@ Contributed by Egor Duda <deo(a)logos-m.ru> Modified by addition of runtime_pseudo_reloc version 2 by Kai Tietz <kai.tietz(a)onevision.com> - + THIS SOFTWARE IS NOT COPYRIGHTED This source code is offered for use in the public domain. You may @@ -20,7 +20,7 @@ #include <stdlib.h> #include <stdarg.h> #include <memory.h> -#include <malloc.h> +#include <internal.h> #if defined(__CYGWIN__) #include <wchar.h> @@ -146,11 +146,12 @@ va_list argp; va_start (argp, msg); # ifdef __MINGW64_VERSION_MAJOR - fprintf (stderr, "Mingw-w64 runtime failure:\n"); + __mingw_fprintf (stderr, "Mingw-w64 runtime failure:\n"); + __mingw_vfprintf (stderr, msg, argp); # else fprintf (stderr, "Mingw runtime failure:\n"); -# endif vfprintf (stderr, msg, argp); +#endif va_end (argp); abort (); #endif @@ -206,8 +207,13 @@ } if (b.Protect != PAGE_EXECUTE_READWRITE && b.Protect != PAGE_READWRITE) - VirtualProtect (b.BaseAddress, b.RegionSize, PAGE_EXECUTE_READWRITE, - &the_secs[i].old_protect); + { + if (!VirtualProtect (b.BaseAddress, b.RegionSize, + PAGE_EXECUTE_READWRITE, + &the_secs[i].old_protect)) + __report_error (" VirtualProtect failed with code 0x%x", + (int) GetLastError ()); + } ++maxSections; return; } @@ -253,15 +259,17 @@ static void __write_memory (void *addr, const void *src, size_t len) { -#ifndef __MINGW64_VERSION_MAJOR MEMORY_BASIC_INFORMATION b; DWORD oldprot; -#endif /* ! __MINGW64_VERSION_MAJOR */ + int call_unprotect = 0; if (!len) return; -#ifndef __MINGW64_VERSION_MAJOR +#ifdef __MINGW64_VERSION_MAJOR + mark_section_writable ((LPVOID) addr); +#endif + if (!VirtualQuery (addr, &b, sizeof(b))) { __report_error (" VirtualQuery failed for %d bytes at address %p", @@ -270,19 +278,17 @@ /* Temporarily allow write access to read-only protected memory. */ if (b.Protect != PAGE_EXECUTE_READWRITE && b.Protect != PAGE_READWRITE) - VirtualProtect (b.BaseAddress, b.RegionSize, PAGE_EXECUTE_READWRITE, - &oldprot); -#else /* ! __MINGW64_VERSION_MAJOR */ - mark_section_writable ((LPVOID) addr); -#endif /* __MINGW64_VERSION_MAJOR */ + { + call_unprotect = 1; + VirtualProtect (b.BaseAddress, b.RegionSize, PAGE_EXECUTE_READWRITE, + &oldprot); + } /* write the data. */ memcpy (addr, src, len); /* Restore original protection. */ -#ifndef __MINGW64_VERSION_MAJOR - if (b.Protect != PAGE_EXECUTE_READWRITE && b.Protect != PAGE_READWRITE) + if (call_unprotect && b.Protect != PAGE_EXECUTE_READWRITE && b.Protect != PAGE_READWRITE) VirtualProtect (b.BaseAddress, b.RegionSize, oldprot, &oldprot); -#endif /* !__MINGW64_VERSION_MAJOR */ } #define RP_VERSION_V1 0 Added: trunk/reactos/lib/sdk/crt/startup/reactos.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/sdk/crt/startup/reacto…
============================================================================== --- trunk/reactos/lib/sdk/crt/startup/reactos.c (added) +++ trunk/reactos/lib/sdk/crt/startup/reactos.c [iso-8859-1] Wed Apr 18 15:12:45 2012 @@ -1,0 +1,3 @@ + +int _MINGW_INSTALL_DEBUG_MATHERR = 0; + Propchange: trunk/reactos/lib/sdk/crt/startup/reactos.c ------------------------------------------------------------------------------ svn:eol-style = native Modified: trunk/reactos/lib/sdk/crt/startup/tlsmcrt.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/sdk/crt/startup/tlsmcr…
============================================================================== --- trunk/reactos/lib/sdk/crt/startup/tlsmcrt.c [iso-8859-1] (original) +++ trunk/reactos/lib/sdk/crt/startup/tlsmcrt.c [iso-8859-1] Wed Apr 18 15:12:45 2012 @@ -10,3 +10,4 @@ otherwise we do tls cleanup in runtime and _CRT_MT has value 2. */ int _CRT_MT = 2; + Modified: trunk/reactos/lib/sdk/crt/startup/wcrtexe.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/sdk/crt/startup/wcrtex…
============================================================================== --- trunk/reactos/lib/sdk/crt/startup/wcrtexe.c [iso-8859-1] (original) +++ trunk/reactos/lib/sdk/crt/startup/wcrtexe.c [iso-8859-1] Wed Apr 18 15:12:45 2012 @@ -9,5 +9,7 @@ #define _UNICODE #define mainCRTStartup wmainCRTStartup #define WinMainCRTStartup wWinMainCRTStartup +#define mingw_pcinit mingw_pwcinit +#define mingw_pcppinit mingw_pwcppinit #include "crtexe.c"
12 years, 8 months
1
0
0
0
[spetreolle] 56358: [DXDIAG] Fix warning in Turkish translation.
by spetreolle@svn.reactos.org
Author: spetreolle Date: Wed Apr 18 14:35:42 2012 New Revision: 56358 URL:
http://svn.reactos.org/svn/reactos?rev=56358&view=rev
Log: [DXDIAG] Fix warning in Turkish translation. Modified: trunk/reactos/base/applications/dxdiag/lang/tr-TR.rc Modified: trunk/reactos/base/applications/dxdiag/lang/tr-TR.rc URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/dxdiag/l…
============================================================================== --- trunk/reactos/base/applications/dxdiag/lang/tr-TR.rc [iso-8859-1] (original) +++ trunk/reactos/base/applications/dxdiag/lang/tr-TR.rc [iso-8859-1] Wed Apr 18 14:35:42 2012 @@ -22,7 +22,7 @@ FONT 8, "MS Shell Dlg" BEGIN LTEXT "Bu araç, sisteminizde yüklü ReactX bileÅenleri ve sürücüleri hakkında detaylı bilgi raporlar. Ä°ÅlevselliÄi sınamanızı, sorunları tanımanızı en iyi Åekilde çalıÅmak için sistem yapılandırmanızı deÄiÅtirmenizi saÄlar.", -1, 10, 10, 443, 17 - LTEXT "Hangi alanın soruna neden olduÄunu biliyorsanız, yukarıda uygun sekmeyi tıklatın. Aksi halde, sırayla her sayfaya gitmek için aÅaÄıdaki \"Sonraki Sayfa\" düÄmesini kullanabilirsiniz.", -1, 10, 30, 443, 25 + LTEXT "Hangi alanın soruna neden olduÄunu biliyorsanız, yukarıda uygun sekmeyi tıklatın. Aksi halde, sırayla her sayfaya gitmek için aÅaÄıdaki ""Sonraki Sayfa"" düÄmesini kullanabilirsiniz.", -1, 10, 30, 443, 25 GROUPBOX "Sistem Bilgisi", -1, 10, 55, 443, 130, SS_RIGHT LTEXT "Geçerli Tarih/Saat:", -1, 70, 70, 80, 10, SS_RIGHT LTEXT "Bilgisayar Adı:", -1, 70, 80, 80, 10, SS_RIGHT
12 years, 8 months
1
0
0
0
[tkreuzer] 56357: [NTOSKRNL] - Implement saving / restoring debug registers on traps - Replace the loop in KeContextToTrapFrame with something less ridiculous - fixes a number of ntdd exception win...
by tkreuzer@svn.reactos.org
Author: tkreuzer Date: Wed Apr 18 13:39:19 2012 New Revision: 56357 URL:
http://svn.reactos.org/svn/reactos?rev=56357&view=rev
Log: [NTOSKRNL] - Implement saving / restoring debug registers on traps - Replace the loop in KeContextToTrapFrame with something less ridiculous - fixes a number of ntdd exception winetests Modified: trunk/reactos/ntoskrnl/include/internal/i386/ke.h trunk/reactos/ntoskrnl/include/internal/i386/trap_x.h trunk/reactos/ntoskrnl/ke/i386/exp.c trunk/reactos/ntoskrnl/ke/i386/traphdlr.c trunk/reactos/ntoskrnl/ke/i386/v86vdm.c Modified: trunk/reactos/ntoskrnl/include/internal/i386/ke.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/include/internal/…
============================================================================== --- trunk/reactos/ntoskrnl/include/internal/i386/ke.h [iso-8859-1] (original) +++ trunk/reactos/ntoskrnl/include/internal/i386/ke.h [iso-8859-1] Wed Apr 18 13:39:19 2012 @@ -540,28 +540,6 @@ } // -// Gets a DR register from a CONTEXT structure -// -FORCEINLINE -PVOID -KiDrFromContext(IN ULONG Dr, - IN PCONTEXT Context) -{ - return *(PVOID*)((ULONG_PTR)Context + KiDebugRegisterContextOffsets[Dr]); -} - -// -// Gets a DR register from a KTRAP_FRAME structure -// -FORCEINLINE -PVOID* -KiDrFromTrapFrame(IN ULONG Dr, - IN PKTRAP_FRAME TrapFrame) -{ - return (PVOID*)((ULONG_PTR)TrapFrame + KiDebugRegisterTrapOffsets[Dr]); -} - -// // Sanitizes a Debug Register // FORCEINLINE Modified: trunk/reactos/ntoskrnl/include/internal/i386/trap_x.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/include/internal/…
============================================================================== --- trunk/reactos/ntoskrnl/include/internal/i386/trap_x.h [iso-8859-1] (original) +++ trunk/reactos/ntoskrnl/include/internal/i386/trap_x.h [iso-8859-1] Wed Apr 18 13:39:19 2012 @@ -95,18 +95,37 @@ TrapFrame->PreviousPreviousMode = -1; } +#define DR7_RESERVED_READ_AS_1 0x400 + +#define CheckDr(DrNumner, ExpectedValue) \ + { \ + ULONG DrValue = __readdr(DrNumner); \ + if (DrValue != (ExpectedValue)) \ + { \ + DbgPrint("Dr%ld: expected %.8lx, got %.8lx\n", \ + DrNumner, ExpectedValue, DrValue); \ + __debugbreak(); \ + } \ + } + +extern BOOLEAN StopChecking; + VOID FORCEINLINE KiExitTrapDebugChecks(IN PKTRAP_FRAME TrapFrame, IN BOOLEAN SkipPreviousMode) { + /* Don't check recursively */ + if (StopChecking) return; + StopChecking = TRUE; + /* Make sure interrupts are disabled */ if (__readeflags() & EFLAGS_INTERRUPT_MASK) { DbgPrint("Exiting with interrupts enabled: %lx\n", __readeflags()); __debugbreak(); } - + /* Make sure this is a real trap frame */ if (TrapFrame->DbgArgMark != 0xBADB0D00) { @@ -114,34 +133,61 @@ KiDumpTrapFrame(TrapFrame); __debugbreak(); } - + /* Make sure we're not in user-mode or something */ if (Ke386GetFs() != KGDT_R0_PCR) { DbgPrint("Exiting with an invalid FS: %lx\n", Ke386GetFs()); __debugbreak(); } - + /* Make sure we have a valid SEH chain */ if (KeGetPcr()->NtTib.ExceptionList == 0) { DbgPrint("Exiting with NULL exception chain: %p\n", KeGetPcr()->NtTib.ExceptionList); __debugbreak(); } - + /* Make sure we're restoring a valid SEH chain */ if (TrapFrame->ExceptionList == 0) { DbgPrint("Entered a trap with a NULL exception chain: %p\n", TrapFrame->ExceptionList); __debugbreak(); } - + /* If we're ignoring previous mode, make sure caller doesn't actually want it */ if (SkipPreviousMode && (TrapFrame->PreviousPreviousMode != -1)) { DbgPrint("Exiting a trap witout restoring previous mode, yet previous mode seems valid: %lx\n", TrapFrame->PreviousPreviousMode); __debugbreak(); } + + /* Check DR values */ + if (TrapFrame->SegCs & MODE_MASK) + { + /* Check for active debugging */ + if (KeGetCurrentThread()->Header.DebugActive) + { + if ((TrapFrame->Dr7 & ~DR7_RESERVED_MASK) == 0) __debugbreak(); + + CheckDr(0, TrapFrame->Dr0); + CheckDr(1, TrapFrame->Dr1); + CheckDr(2, TrapFrame->Dr2); + CheckDr(3, TrapFrame->Dr3); + CheckDr(7, TrapFrame->Dr7 | DR7_RESERVED_READ_AS_1); + } + } + else + { + PKPRCB Prcb = KeGetCurrentPrcb(); + CheckDr(0, Prcb->ProcessorState.SpecialRegisters.KernelDr0); + CheckDr(1, Prcb->ProcessorState.SpecialRegisters.KernelDr1); + CheckDr(2, Prcb->ProcessorState.SpecialRegisters.KernelDr2); + CheckDr(3, Prcb->ProcessorState.SpecialRegisters.KernelDr3); + //CheckDr(7, Prcb->ProcessorState.SpecialRegisters.KernelDr7); + } + + StopChecking = FALSE; } VOID @@ -150,7 +196,7 @@ IN PKTRAP_FRAME TrapFrame) { KIRQL OldIrql; - + /* Check if this was a user call */ if (KiUserTrap(TrapFrame)) { @@ -161,7 +207,7 @@ /* Forcibly put us in a sane state */ KeGetPcr()->Irql = PASSIVE_LEVEL; _disable(); - + /* Fail */ KeBugCheckEx(IRQL_GT_ZERO_AT_SYSTEM_SERVICE, SystemCall, @@ -209,6 +255,53 @@ extern PFAST_SYSTEM_CALL_EXIT KiFastCallExitHandler; // +// Save user mode debug registers and restore kernel values +// +VOID +FORCEINLINE +KiHandleDebugRegistersOnTrapEntry( + IN PKTRAP_FRAME TrapFrame) +{ + PKPRCB Prcb = KeGetCurrentPrcb(); + + /* Save all debug registers in the trap frame */ + TrapFrame->Dr0 = __readdr(0); + TrapFrame->Dr1 = __readdr(1); + TrapFrame->Dr2 = __readdr(2); + TrapFrame->Dr3 = __readdr(3); + TrapFrame->Dr6 = __readdr(6); + TrapFrame->Dr7 = __readdr(7); + + /* Disable all active debugging */ + __writedr(7, 0); + + /* Restore kernel values */ + __writedr(0, Prcb->ProcessorState.SpecialRegisters.KernelDr0); + __writedr(1, Prcb->ProcessorState.SpecialRegisters.KernelDr1); + __writedr(2, Prcb->ProcessorState.SpecialRegisters.KernelDr2); + __writedr(3, Prcb->ProcessorState.SpecialRegisters.KernelDr3); + __writedr(6, Prcb->ProcessorState.SpecialRegisters.KernelDr6); + __writedr(7, Prcb->ProcessorState.SpecialRegisters.KernelDr7); +} + +VOID +FORCEINLINE +KiHandleDebugRegistersOnTrapExit( + PKTRAP_FRAME TrapFrame) +{ + /* Disable all active debugging */ + __writedr(7, 0); + + /* Load all debug registers from the trap frame */ + __writedr(0, TrapFrame->Dr0); + __writedr(1, TrapFrame->Dr1); + __writedr(2, TrapFrame->Dr2); + __writedr(3, TrapFrame->Dr3); + __writedr(6, TrapFrame->Dr6); + __writedr(7, TrapFrame->Dr7); +} + +// // Virtual 8086 Mode Optimized Trap Exit // VOID @@ -218,7 +311,7 @@ { PKTHREAD Thread; KIRQL OldIrql; - + /* Get the thread */ Thread = KeGetCurrentThread(); while (TRUE) @@ -243,15 +336,14 @@ KfLowerIrql(OldIrql); _disable(); } - + /* If we got here, we're still in a valid V8086 context, so quit it */ if (__builtin_expect(TrapFrame->Dr7 & ~DR7_RESERVED_MASK, 0)) { - /* Not handled yet */ - DbgPrint("Need Hardware Breakpoint Support!\n"); - while (TRUE); - } - + /* Restore debug registers from the trap frame */ + KiHandleDebugRegistersOnTrapExit(TrapFrame); + } + /* Return from interrupt */ KiTrapReturnNoSegments(TrapFrame); } @@ -270,8 +362,8 @@ TrapFrame->Dr7 = __readdr(7); if (__builtin_expect(TrapFrame->Dr7 & ~DR7_RESERVED_MASK, 0)) { - DbgPrint("Need Hardware Breakpoint Support!\n"); - while (TRUE); + /* Handle debug registers */ + KiHandleDebugRegistersOnTrapEntry(TrapFrame); } } @@ -286,14 +378,21 @@ TrapFrame->ExceptionList = KeGetPcr()->NtTib.ExceptionList; KeGetPcr()->NtTib.ExceptionList = EXCEPTION_CHAIN_END; - /* Flush DR7 and check for debugging */ + /* Default to debugging disabled */ TrapFrame->Dr7 = 0; - if (__builtin_expect(KeGetCurrentThread()->Header.DebugActive & 0xFF, 0)) - { - DbgPrint("Need Hardware Breakpoint Support!\n"); - while (TRUE); - } - + + /* Check if the frame was from user mode or v86 mode */ + if ((TrapFrame->SegCs & MODE_MASK) || + (TrapFrame->EFlags & EFLAGS_V86_MASK)) + { + /* Check for active debugging */ + if (KeGetCurrentThread()->Header.DebugActive & 0xFF) + { + /* Handle debug registers */ + KiHandleDebugRegistersOnTrapEntry(TrapFrame); + } + } + /* Set debug header */ KiFillTrapFrameDebug(TrapFrame); } @@ -307,15 +406,22 @@ { /* Save exception list */ TrapFrame->ExceptionList = KeGetPcr()->NtTib.ExceptionList; - - /* Flush DR7 and check for debugging */ + + /* Default to debugging disabled */ TrapFrame->Dr7 = 0; - if (__builtin_expect(KeGetCurrentThread()->Header.DebugActive & 0xFF, 0)) - { - DbgPrint("Need Hardware Breakpoint Support!\n"); - while (TRUE); - } - + + /* Check if the frame was from user mode or v86 mode */ + if ((TrapFrame->SegCs & MODE_MASK) || + (TrapFrame->EFlags & EFLAGS_V86_MASK)) + { + /* Check for active debugging */ + if (KeGetCurrentThread()->Header.DebugActive & 0xFF) + { + /* Handle debug registers */ + KiHandleDebugRegistersOnTrapEntry(TrapFrame); + } + } + /* Set debug header */ KiFillTrapFrameDebug(TrapFrame); } Modified: trunk/reactos/ntoskrnl/ke/i386/exp.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/i386/exp.c?rev…
============================================================================== --- trunk/reactos/ntoskrnl/ke/i386/exp.c [iso-8859-1] (original) +++ trunk/reactos/ntoskrnl/ke/i386/exp.c [iso-8859-1] Wed Apr 18 13:39:19 2012 @@ -14,35 +14,6 @@ #define NDEBUG #include <debug.h> -/* GLOBALS *******************************************************************/ - -/* DR Registers in the CONTEXT structure */ -UCHAR KiDebugRegisterContextOffsets[9] = -{ - FIELD_OFFSET(CONTEXT, Dr0), - FIELD_OFFSET(CONTEXT, Dr1), - FIELD_OFFSET(CONTEXT, Dr2), - FIELD_OFFSET(CONTEXT, Dr3), - 0, - 0, - FIELD_OFFSET(CONTEXT, Dr6), - FIELD_OFFSET(CONTEXT, Dr7), - 0, -}; - -/* DR Registers in the KTRAP_FRAME structure */ -UCHAR KiDebugRegisterTrapOffsets[9] = -{ - FIELD_OFFSET(KTRAP_FRAME, Dr0), - FIELD_OFFSET(KTRAP_FRAME, Dr1), - FIELD_OFFSET(KTRAP_FRAME, Dr2), - FIELD_OFFSET(KTRAP_FRAME, Dr3), - 0, - 0, - FIELD_OFFSET(KTRAP_FRAME, Dr6), - FIELD_OFFSET(KTRAP_FRAME, Dr7), - 0, -}; /* FUNCTIONS *****************************************************************/ @@ -153,8 +124,7 @@ if (Mask != NewMask) { /* Update it */ - KeGetCurrentThread()->Header.DebugActive = - (BOOLEAN)NewMask; + KeGetCurrentThread()->Header.DebugActive = (UCHAR)NewMask; } } @@ -312,11 +282,11 @@ PKTHREAD Thread; ULONG_PTR Stack; ULONG EFlags; - + /* Get the current thread's stack */ Thread = KeGetCurrentThread(); Stack = (ULONG_PTR)Thread->InitialStack; - + /* Check if we are in V8086 mode */ if (!(TrapFrame->EFlags & EFLAGS_V86_MASK)) { @@ -324,17 +294,17 @@ Stack -= (FIELD_OFFSET(KTRAP_FRAME, V86Gs) - FIELD_OFFSET(KTRAP_FRAME, HardwareSegSs)); } - + /* Bias the stack for the FPU area */ Stack -= sizeof(FX_SAVE_AREA); - + /* Disable interrupts */ EFlags = __readeflags(); _disable(); - + /* Set new ESP0 value in the TSS */ KeGetPcr()->TSS->Esp0 = Stack; - + /* Restore old interrupt state */ __writeeflags(EFlags); } @@ -352,7 +322,6 @@ BOOLEAN V86Switch = FALSE; KIRQL OldIrql; ULONG DrMask = 0; - PVOID SafeDr; /* Do this at APC_LEVEL */ OldIrql = KeGetCurrentIrql(); @@ -584,26 +553,35 @@ } /* Handle the Debug Registers */ - if (0 && (ContextFlags & CONTEXT_DEBUG_REGISTERS) == CONTEXT_DEBUG_REGISTERS) - { - /* Loop DR registers */ - for (i = 0; i < 4; i++) - { - /* Sanitize the context DR Address */ - SafeDr = Ke386SanitizeDr(KiDrFromContext(i, Context), PreviousMode); - - /* Save it in the trap frame */ - *KiDrFromTrapFrame(i, TrapFrame) = SafeDr; - - /* Check if this DR address is active and add it in the DR mask */ - if (SafeDr) DrMask |= DR_MASK(i); - } - - /* Now save and sanitize DR6 */ + if ((ContextFlags & CONTEXT_DEBUG_REGISTERS) == CONTEXT_DEBUG_REGISTERS) + { + /* Copy Dr0 - Dr4 */ + TrapFrame->Dr0 = Context->Dr0; + TrapFrame->Dr1 = Context->Dr1; + TrapFrame->Dr2 = Context->Dr2; + TrapFrame->Dr3 = Context->Dr3; + + /* If we're in user-mode */ + if (PreviousMode != KernelMode) + { + /* Make sure, no Dr address is above user space */ + if (Context->Dr0 > (ULONG)MmHighestUserAddress) TrapFrame->Dr0 = 0; + if (Context->Dr1 > (ULONG)MmHighestUserAddress) TrapFrame->Dr1 = 0; + if (Context->Dr2 > (ULONG)MmHighestUserAddress) TrapFrame->Dr2 = 0; + if (Context->Dr3 > (ULONG)MmHighestUserAddress) TrapFrame->Dr3 = 0; + } + + /* Now sanitize and save DR6 */ TrapFrame->Dr6 = Context->Dr6 & DR6_LEGAL; + + /* Update the Dr active mask */ + if (TrapFrame->Dr0) DrMask |= DR_MASK(0); + if (TrapFrame->Dr1) DrMask |= DR_MASK(1); + if (TrapFrame->Dr2) DrMask |= DR_MASK(2); + if (TrapFrame->Dr3) DrMask |= DR_MASK(3); if (TrapFrame->Dr6) DrMask |= DR_MASK(6); - /* Save and sanitize DR7 */ + /* Sanitize and save DR7 */ TrapFrame->Dr7 = Context->Dr7 & DR7_LEGAL; KiRecordDr7(&TrapFrame->Dr7, &DrMask); @@ -611,7 +589,7 @@ if (PreviousMode != KernelMode) { /* Save the mask */ - KeGetCurrentThread()->Header.DebugActive = (DrMask != 0); + KeGetCurrentThread()->Header.DebugActive = (UCHAR)DrMask; } } @@ -962,7 +940,7 @@ /* User mode exception, was it first-chance? */ if (FirstChance) { - /* + /* * Break into the kernel debugger unless a user mode debugger * is present or user mode exceptions are ignored, except if this * is a debug service which we must always pass to KD @@ -1132,7 +1110,7 @@ ExceptionRecord.ExceptionInformation[1] = Parameter2; ExceptionRecord.ExceptionInformation[2] = Parameter3; } - + /* Now go dispatch the exception */ KiDispatchException(&ExceptionRecord, NULL, Modified: trunk/reactos/ntoskrnl/ke/i386/traphdlr.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/i386/traphdlr.…
============================================================================== --- trunk/reactos/ntoskrnl/ke/i386/traphdlr.c [iso-8859-1] (original) +++ trunk/reactos/ntoskrnl/ke/i386/traphdlr.c [iso-8859-1] Wed Apr 18 13:39:19 2012 @@ -50,6 +50,9 @@ PKDBG_PRESERVICEHOOK KeWin32PreServiceHook = NULL; PKDBG_POSTSERVICEHOOK KeWin32PostServiceHook = NULL; #endif +#if TRAP_DEBUG +BOOLEAN StopChecking = FALSE; +#endif /* TRAP EXIT CODE *************************************************************/ @@ -86,24 +89,27 @@ { /* Disable interrupts until we return */ _disable(); - + /* Check for APC delivery */ KiCheckForApcDelivery(TrapFrame); - + + /* Restore the SEH handler chain */ + KeGetPcr()->NtTib.ExceptionList = TrapFrame->ExceptionList; + + /* Check if there are active debug registers */ + if (__builtin_expect(TrapFrame->Dr7 & ~DR7_RESERVED_MASK, 0)) + { + /* Check if the frame was from user mode or v86 mode */ + if ((TrapFrame->SegCs & MODE_MASK) || + (TrapFrame->EFlags & EFLAGS_V86_MASK)) + { + /* Handle debug registers */ + KiHandleDebugRegistersOnTrapExit(TrapFrame); + } + } + /* Debugging checks */ KiExitTrapDebugChecks(TrapFrame, SkipPreviousMode); - - /* Restore the SEH handler chain */ - KeGetPcr()->NtTib.ExceptionList = TrapFrame->ExceptionList; - - /* Check if there are active debug registers */ - if (__builtin_expect(TrapFrame->Dr7 & ~DR7_RESERVED_MASK, 0)) - { - /* Not handled yet */ - DbgPrint("Need Hardware Breakpoint Support!\n"); - DbgBreakPoint(); - while (TRUE); - } } DECLSPEC_NORETURN @@ -841,7 +847,7 @@ /* Check for VDM trap */ ASSERT((KiVdmTrap(TrapFrame)) == FALSE); - + /* Kill the system */ KiSystemFatalException(EXCEPTION_INVALID_TSS, TrapFrame); } @@ -1068,7 +1074,7 @@ UNIMPLEMENTED; while (TRUE); } - + /* * NOTE: The ASM trap exit code would restore segment registers by doing * a POP <SEG>, which could cause an invalid segment if someone had messed @@ -1524,12 +1530,18 @@ TrapFrame->ExceptionList = KeGetPcr()->NtTib.ExceptionList; KeGetPcr()->NtTib.ExceptionList = EXCEPTION_CHAIN_END; - /* Clear DR7 and check for debugging */ + /* Default to debugging disabled */ TrapFrame->Dr7 = 0; - if (__builtin_expect(Thread->Header.DebugActive & 0xFF, 0)) - { - UNIMPLEMENTED; - while (TRUE); + + /* Check if the frame was from user mode */ + if (TrapFrame->SegCs & MODE_MASK) + { + /* Check for active debugging */ + if (KeGetCurrentThread()->Header.DebugActive & 0xFF) + { + /* Handle debug registers */ + KiHandleDebugRegistersOnTrapEntry(TrapFrame); + } } /* Set thread fields */ Modified: trunk/reactos/ntoskrnl/ke/i386/v86vdm.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/i386/v86vdm.c?…
============================================================================== --- trunk/reactos/ntoskrnl/ke/i386/v86vdm.c [iso-8859-1] (original) +++ trunk/reactos/ntoskrnl/ke/i386/v86vdm.c [iso-8859-1] Wed Apr 18 13:39:19 2012 @@ -528,10 +528,7 @@ TrapFrame->Dr7 = 0; /* Set some debug fields if trap debugging is enabled */ -#if TRAP_DEBUG - TrapFrame->DbgArgMark = 0xBADB0D00; - TrapFrame->PreviousPreviousMode = -1; -#endif + KiFillTrapFrameDebug(TrapFrame); /* Disable interrupts */ _disable();
12 years, 8 months
1
0
0
0
[tkreuzer] 56356: [NTOSKRNL] Fix SepGet*FromDescriptor, returning NULL, when the relative offset is 0. Fixes VMware tools installer.
by tkreuzer@svn.reactos.org
Author: tkreuzer Date: Wed Apr 18 11:27:03 2012 New Revision: 56356 URL:
http://svn.reactos.org/svn/reactos?rev=56356&view=rev
Log: [NTOSKRNL] Fix SepGet*FromDescriptor, returning NULL, when the relative offset is 0. Fixes VMware tools installer. Modified: trunk/reactos/ntoskrnl/se/sd.c Modified: trunk/reactos/ntoskrnl/se/sd.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/se/sd.c?rev=56356…
============================================================================== --- trunk/reactos/ntoskrnl/se/sd.c [iso-8859-1] (original) +++ trunk/reactos/ntoskrnl/se/sd.c [iso-8859-1] Wed Apr 18 11:27:03 2012 @@ -38,6 +38,7 @@ if (Descriptor->Control & SE_SELF_RELATIVE) { SdRel = (PISECURITY_DESCRIPTOR_RELATIVE)Descriptor; + if (!SdRel->Group) return NULL; return (PSID)((ULONG_PTR)Descriptor + SdRel->Group); } else @@ -56,6 +57,7 @@ if (Descriptor->Control & SE_SELF_RELATIVE) { SdRel = (PISECURITY_DESCRIPTOR_RELATIVE)Descriptor; + if (!SdRel->Owner) return NULL; return (PSID)((ULONG_PTR)Descriptor + SdRel->Owner); } else @@ -74,6 +76,7 @@ if (Descriptor->Control & SE_SELF_RELATIVE) { SdRel = (PISECURITY_DESCRIPTOR_RELATIVE)Descriptor; + if (!SdRel->Dacl) return NULL; return (PACL)((ULONG_PTR)Descriptor + SdRel->Dacl); } else @@ -92,6 +95,7 @@ if (Descriptor->Control & SE_SELF_RELATIVE) { SdRel = (PISECURITY_DESCRIPTOR_RELATIVE)Descriptor; + if (!SdRel->Sacl) return NULL; return (PACL)((ULONG_PTR)Descriptor + SdRel->Sacl); } else
12 years, 8 months
1
0
0
0
[tkreuzer] 56354: [PSDK/NDK] - Add missing PEXCEPTION_ROUTINE, RtlLookupFunctionEntry, RtlVirtualUnwind to winnt.h - Remove PEXCEPTION_ROUTINE from NDK - delete obsolete reactos/mingw-w64 folder
by tkreuzer@svn.reactos.org
Author: tkreuzer Date: Mon Apr 16 12:47:36 2012 New Revision: 56354 URL:
http://svn.reactos.org/svn/reactos?rev=56354&view=rev
Log: [PSDK/NDK] - Add missing PEXCEPTION_ROUTINE, RtlLookupFunctionEntry, RtlVirtualUnwind to winnt.h - Remove PEXCEPTION_ROUTINE from NDK - delete obsolete reactos/mingw-w64 folder Removed: trunk/reactos/include/reactos/mingw-w64/ Modified: trunk/reactos/include/ndk/rtltypes.h trunk/reactos/include/psdk/winnt.h Modified: trunk/reactos/include/ndk/rtltypes.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/ndk/rtltypes.h?rev…
============================================================================== --- trunk/reactos/include/ndk/rtltypes.h [iso-8859-1] (original) +++ trunk/reactos/include/ndk/rtltypes.h [iso-8859-1] Mon Apr 16 12:47:36 2012 @@ -453,17 +453,6 @@ ); #else /* !NTOS_MODE_USER */ - -// -// Handler during regular RTL Exceptions -// -typedef EXCEPTION_DISPOSITION -(NTAPI *PEXCEPTION_ROUTINE)( - IN struct _EXCEPTION_RECORD *ExceptionRecord, - IN PVOID EstablisherFrame, - IN OUT struct _CONTEXT *ContextRecord, - IN OUT PVOID DispatcherContext -); // // RTL Library Allocation/Free Routines Modified: trunk/reactos/include/psdk/winnt.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/winnt.h?rev=5…
============================================================================== --- trunk/reactos/include/psdk/winnt.h [iso-8859-1] (original) +++ trunk/reactos/include/psdk/winnt.h [iso-8859-1] Mon Apr 16 12:47:36 2012 @@ -2218,6 +2218,17 @@ DWORD AclBytesFree; } ACL_SIZE_INFORMATION, *PACL_SIZE_INFORMATION; +typedef +EXCEPTION_DISPOSITION +NTAPI +EXCEPTION_ROUTINE( + _Inout_ struct _EXCEPTION_RECORD *ExceptionRecord, + _In_ PVOID EstablisherFrame, + _Inout_ struct _CONTEXT *ContextRecord, + _In_ PVOID DispatcherContext); + +typedef EXCEPTION_ROUTINE *PEXCEPTION_ROUTINE; + #ifndef _LDT_ENTRY_DEFINED #define _LDT_ENTRY_DEFINED @@ -2546,6 +2557,27 @@ BOOLEAN __cdecl RtlDeleteFunctionTable(PRUNTIME_FUNCTION FunctionTable); + +NTSYSAPI +PRUNTIME_FUNCTION +NTAPI +RtlLookupFunctionEntry( + _In_ DWORD64 ControlPc, + _Out_ PDWORD64 ImageBase, + _Inout_opt_ PUNWIND_HISTORY_TABLE HistoryTable); + +NTSYSAPI +PEXCEPTION_ROUTINE +NTAPI +RtlVirtualUnwind( + _In_ DWORD HandlerType, + _In_ DWORD64 ImageBase, + _In_ DWORD64 ControlPc, + _In_ PRUNTIME_FUNCTION FunctionEntry, + _Inout_ struct _CONTEXT *ContextRecord, + _Out_ PVOID *HandlerData, + _Out_ PDWORD64 EstablisherFrame, + _Inout_opt_ PKNONVOLATILE_CONTEXT_POINTERS ContextPointers); #elif defined(_PPC_) #define CONTEXT_CONTROL 1L
12 years, 8 months
1
0
0
0
← Newer
1
...
7
8
9
10
11
12
13
...
16
Older →
Jump to page:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Results per page:
10
25
50
100
200