Commit graph

657 commits

Author SHA1 Message Date
Mark Jansen a414c88dae
[ATL] Prohibit the use of AddRef/Release on objects inside CComPtr
This mimics what MS's CComPtr is doing:
https://learn.microsoft.com/en-us/cpp/atl/reference/ccomptrbase-class?view=msvc-170#operator_ptr
The reasoning behind this is that AddRef/Release is handled by the CComPtr,
so anyone calling that is most likely not using the CComPtr correct.
2022-10-02 00:38:23 +02:00
Jose Carlos Jesus e215a088f9
[ATL] Fix window position to fit in screen area (#4512)
Clicking "Edit compatibility modes" button in the "Compatibility" tab
opens a window centered on the parent window. If we move the parent
window to one of the screen edges and then click this button again,
the new window will appear off screen.

Adjust position of created window, so now it would be completely visible.

CORE-17089

Reviewed-by: Mark Jansen <mark.jansen@reactos.org>
Reviewed-by: Hermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
2022-09-13 18:00:45 +03:00
Timo Kreuzer 3aa3b3af56 [CRT] Implement portable ceil/floor 2022-08-26 00:44:46 +02:00
Hermès Bélusca-Maïto 5cadc268ef
[BOOT][SDK:CMLIB] Compile a CMLIB for FreeLdr / NT bootloader with correct definitions. (#4619)
This also allows using the CMLIB with any reduced functionality
that could be required at boot-time.
2022-08-22 22:08:02 +02:00
Timo Kreuzer 76086220fa [CRT] Fix amd64 floating point control functions 2022-08-22 11:22:08 +02:00
Timo Kreuzer 39f11249ff [NTOS][RTL] Initialize MxCsr where missing 2022-08-22 11:22:08 +02:00
Timo Kreuzer 2881b77302 [CMLIB] Don't redefine PAGED_CODE() to nothing in cmlib.h except for cmlib_host
This header is included by ntoskrnl which effectively disabled all PAGED_CODE checks since 2015. Thanks Alex.
Instead define _BLDR_ when building cmlib, which will avoid trying to import KeGetCurrentIrql()
2022-07-20 20:36:22 +02:00
Timo Kreuzer bc9409daba [CRT] Add round and roundf and add it to msvcrtex to make clang v14 happy 2022-07-17 17:32:32 +02:00
Timo Kreuzer 45f75d5d32 [NTOS:KE/x64] Handle user faults in KiGeneralProtectionFaultHandler 2022-07-14 18:35:28 +02:00
George Bișoc 54a00aa8eb
[CMLIB][NTOS:CM] Deduplicate other common definitions between CMLIB and the NTOS CM
Addendum to commit 8c2454e (r70605). Credits and courtesy go to Hermès BÉLUSCA - MAÏTO.

CORE-10802 CORE-10793
2022-07-10 14:35:53 +02:00
Timo Kreuzer b85afdfd25 [CRT] Implement portable + amd64 asm version of fabs/fabsf
Note: older versions of ML64 are broken and don't understand the register form of movq.
See https://stackoverflow.com/questions/24789339/move-quadword-between-xmm-and-general-purpose-register-in-ml64
2022-06-26 19:13:47 +02:00
Timo Kreuzer 8521f6d7b5 [RTL] Implement dynamic function tables for x64 2022-06-25 21:45:47 +02:00
Serge Gautherie ef1311b7a4
[IP] AddrCountPrefixBits(): Fix loop condition (#4556)
Properly handle BitTest reaching 0.

CORE-18225
2022-06-25 17:14:03 +02:00
Victor Perevertkin 447ef2aa4a
[CMAKE] Do not use USE_CLANG_CL variable in CMake scripts 2022-05-27 01:37:37 +03:00
Victor Perevertkin f155b9377f
[CMAKE] Elimitate the use of GCC and CLANG variables 2022-05-27 01:37:34 +03:00
Justin Miller 4363e74ddc
[REACTOS] Finally get some ARM64 applications building (#4517)
- Add some missing ARM64 exports to ntdll, kernel32 and user32
- Create mmtypes header file based on WoA debug symbols
- Get the remaining headers in order, so we can build ARM64 apps
- Adjust subsystem version for binaries so they can run on WoA host
- Get calc, notepad and more base apps to build for ARM64 platform

CORE-17518

Reviewed-by: Hermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
Reviewed-by: Stanislav Motylkov <x86corez@gmail.com>
2022-05-25 17:06:32 +03:00
Hermès Bélusca-Maïto cfbb734799
[NTOS] Remove ROS-specific __NTOSKRNL__
See https://reactos.org/archives/public/ros-kernel/2004-June/003878.html
> In the source files one set of headers is included if
__NTDLL__ is defines and onother set if __NTOSKRNL__ is defines (dirty
workaround for our messy headers).
2022-05-07 17:53:51 +02:00
Vincent Franchomme 3cfd8ab775 [BTRFS][UBTRFS][SHELLBTRFS] Upgrade to 1.7.8 (#4417)
v1.7.8.1 (2021-06-13):

- Fixed bug preventing new directories from appearing in listings
- Fixed Release version of driver still not working on XP

v1.7.8 (2021-06-09):

- ~~Upgraded zstd to version 1.5.0~~ Not in ReactOS as it introduces deprecated code
- Fixed regression stopping driver from working under XP
- Fixed compilation on clang
- Fixed corruption issue when Linux mount option inode_cache had been used
- Fixed recursion issue involving virtual directory \$Root
2022-05-03 17:30:11 +02:00
Vincent Franchomme c982533ea9 [BTRFS][UBTRFS][SHELLBTRFS] Upgrade to 1.7.6 (#4417)
v1.7.6 (2021-01-14):

- Fixed race condition when booting with Quibble
- No longer need to restart Windows after initial installation
- Forced maximum file name to 255 UTF-8 characters, to match Linux driver
- Fixed issue where directories could be created with trailing backslash
- Fixed potential deadlock when Windows calls NtCreateSection during flush
- Miscellaneous bug fixes
2022-05-03 17:30:11 +02:00
Vincent Franchomme 0604273535 [BTRFS][UBTRFS][SHELLBTRFS] Upgrade to 1.7.4 (#4417)
v1.7.4 (2020-08-23):

- Fixed issue when running compressed EXEs
- Changed build system to cmake
- Upgraded zstd to version 1.4.5
- Added support for FSCTL_GET_RETRIEVAL_POINTERS
- Miscellaneous bug fixes
2022-05-03 17:30:11 +02:00
Hermès Bélusca-Maïto 8ed7d4b341
[SDK:CMLIB][FREELDR:NTLDR] Revert commit 168fea0ee and provide a better fix. Addendum to 93d8a1b7b.
Correct fix was to fix the HCELL_INDEX <-> HKEY conversions, much like
is being done with UlongToHandle / HandleToUlong.

The on-disk/in-memory hive file structures are platform-independent:
their layout must not depend on whether code is compiled in 32 or 64
bits.
2022-04-17 16:46:47 +02:00
Stanislav Motylkov 168fea0eee
[CMLIB] Fix 64-bit build. Addendum to 93d8a1b7b.
Thanks to Hervé Poussineau for help.
2022-04-17 16:16:41 +03:00
Hermès Bélusca-Maïto 6a03fb7099
[SDK:CMLIB] Use Hive->Allocate / Hive->Free where possible. 2022-04-16 18:33:24 +02:00
Justin Miller 2204695f0a
[SDK] Fix some arm64 stuff that was discovered during testing
Addendum to 6dfc13e4. CORE-17518
2022-04-07 19:50:43 +03:00
Hermès Bélusca-Maïto 24cb57fdea
[BOOT][SDK:RTL] Compile a reduced RTL library for FreeLdr / NT bootloader...
... as it should have always been done (and must be done for NTDLL
and NTOS kernel as well). This allows using the RTL with the correct
definitions and the reduced functionality available at boot-time.

+ Make the RTL main header compatible.

In addition, this will permit re-using existing code that already
uses the RTL (mostly string conversions).

See commits 427c90af3 (r36761) and b46e8cc18 (r36980) for some
background.
2022-04-07 03:19:09 +02:00
Hermès Bélusca-Maïto 2ac49f0824
[SDK:RTL] Minimal formatting for NLS functions + Remove inadequate assert in RtlUpcaseUnicodeToOemN(). 2022-04-07 03:19:06 +02:00
Hermès Bélusca-Maïto 7416328523
[SDK:NTOS_VISTA] Fix GCC AMD64 build. Addendum to commit 6f559e9c5. (#4426)
Instead of adding the rtl_vista library to the target, manually add
the related source files to compilation. That's not the best, but
this should definitively fix the linking problem.
2022-04-07 01:52:33 +02:00
Hermès Bélusca-Maïto 6f559e9c54
[RTL][NTOS_VISTA] Move the RTL UTF8 functions to the main RTL library, to be linked in the rtl_vista target instead.
The reason is that both RtlUTF8ToUnicodeN() and RtlUnicodeToUTF8N() are
exported in both kernel and user-mode (ntdll) in Windows 7+.

Conversion from and to UTF8 are fundamental enough that they indeed
deserve to be in a separate file.
2022-04-03 20:41:11 +02:00
Hermès Bélusca-Maïto d873865971
[SDK:CMLIB] Const-ify the unicode strings that are only used as input and not modified. 2022-03-27 19:38:54 +02:00
Hermès Bélusca-Maïto 8ccd435eb0
[SDK:CMLIB] HvGetCell is a macro calling the hive's GetCellRoutine callback.
In principle there should be different get-cell routines, depending
on the type of the hive (given by the OperationType parameter of
HvInitialize): for flat hives, memory-mapped hives, etc.
For now in ReactOS we only support a restricted subset of these,
therefore we are still happy with a single get-cell callback...
This may change in the future.
2022-03-27 18:37:16 +02:00
Hermès Bélusca-Maïto a4cad7be6b
[SDK:CMLIB][MKHIVE][BOOT:ENVIRON][NTOS:CONFIG] Add missing HvGetCell casts. Replace some ASSERT(FALSE). 2022-03-27 18:37:16 +02:00
Hermès Bélusca-Maïto e51c305f51
[SDK:RTL] Consistently use the Allocate/FreeStringMemory helpers when allocating/freeing string buffers. 2022-03-25 18:54:21 +01:00
Hermès Bélusca-Maïto ab827f5225
[SDK:RTL] Don't copy-paste rtl.h into rtl_vista.h; just include it instead. 2022-03-25 18:54:20 +01:00
Hermès Bélusca-Maïto fa404fb2b4
[SDK:RTL] Place source files in alphabetical order in CMakeLists.txt 2022-03-25 18:54:19 +01:00
Hermès Bélusca-Maïto 9d3c3a757a
[SDK:REACTOS][CMLIB][BOOT] Get rid of the FreeLdr-specific __FREELDR_H define, and use the standard NT _BLDR_ instead.
This standard _BLDR_ define is already defined for both FreeLdr and
boot/environ UEFI bootloader lib, so no actual behavioural changes
should occur.
2022-03-25 18:54:18 +01:00
winesync 7cface09ce
[WINESYNC] winecrt0: Add a default implementation DllRegisterServer()/DllUnregisterServer().
Signed-off-by: Alexandre Julliard <julliard@winehq.org>

wine commit id 5d82baf9747b7b133cad3be77c0cc9e24cc09582 by Alexandre Julliard <julliard@winehq.org>
2022-03-20 19:28:38 +01:00
Thomas Faber be33631629
[COMSUPP] Relicense as BSD. 2022-03-15 22:54:17 -04:00
Katayama Hirofumi MZ dd5a634611
[ATL] Add atlsync.h (#4382)
- Add atlsync.h and implement CCriticalSection, CEvent, CMutex and CSemaphore classes.
CORE-13950
2022-03-07 11:02:42 +09:00
Serge Gautherie 25bff3a1e0 [NDK][NTDLL][RTL] RtlCreateTagHeap(): Fix types and annotations
According to
https://processhacker.sourceforge.io/doc/ntrtl_8h.html
2022-02-03 20:21:40 +01:00
Katayama Hirofumi MZ 7014cf04b1
[ATL][MSPAINT] Add ATLTRACE and fix assertion failures (#4299)
- Implement ATLTRACE and AtlTrace in atlbase.h.
- Fix assertion failures in mspaint.
CORE-17969, CORE-18012
2022-01-23 00:59:12 +09:00
Thomas Faber 4cf9b7985e
[CRT] Fix MSVC version of call_handler 2022-01-21 20:00:41 -05:00
Hermès Bélusca-Maïto c1a8dce23c
[CPORTLIB] Remove any usage of debug.h since this lib implements the support for said debugging output. 2022-01-11 22:45:14 +01:00
Serge Gautherie 724774505e [CRT/arm64] Build wine/except_arm64.c
Follow-up to 9efafd6 (0.4.14-dev-934).
CORE-17518
2022-01-11 20:52:34 +03:00
Vadim Galyant fec440d8b8
[SDK:DDK][NTOS:PNP] Implement PnP arbiters initialization 2022-01-10 06:35:45 +03:00
Hermès Bélusca-Maïto 14dbd66d88
[SDK:ATL] Implement GetDlgItemText(BSTR&), GetTopLevelParent(), GetWindowText(CSimpleString&). (#4207)
And add SAL annotations to the Get***Text family of functions.
2021-12-31 02:28:10 +01:00
Hermès Bélusca-Maïto e60a4f00b5
[ATL] atlwin.h: Formatting, and add a comment in IsParentDialog(). 2021-12-31 02:26:53 +01:00
Serge Gautherie 1449523c6d [CRT] mem/: Fix msvc14.0-amd64 build
Addendum to aea4cfb.
2021-12-28 01:55:38 +03:00
Serge Gautherie bf4d47d969 [FREETYPE] CMakeLists.txt: Fix if conditions 2021-12-28 01:45:28 +03:00
Serge Gautherie 0a6750da12
[CRT] stdio/file.c: Import 3 Wine one-liner fixes (#4101)
* [FORMATTING][CRT] stdio/file.c: Reduce diff with Wine.

* [CRT] _wfreopen(): Fix TRACE() format modifier
Import wine-1.4-rc3 f8b29a0 by Eric Pouech.

* [CRT] msvcrt_init_io(): Ignore inherited FDs with invalid handles
Import wine-6.2-32-g611742d by Paul Gofman,
except test part, which shall be WineSync separately.

* [CRT] _dup2(): Fix clearing NOINHERIT flag
Import wine-6.20-44-g1420d28 by Piotr Caban.
2021-11-18 23:23:12 +01:00
Doug Lyons 252a7530d0
[CRT] Do Not lock ioinfo when spawning functions (#4099) CORE-15176
This fixes CORE-15176 'Gimp 2.6.11 hangs when opening a file'.
It regressed by 0.4.9-dev-446-g bffd8201d0

I do intend to port this fix back.
2021-11-11 18:30:43 +01:00
Mark Jansen e3402aca65
[ATL][ATL_APITEST] Add test for CPath +small fixes 2021-10-30 22:47:57 +02:00
Justin Miller be223b9de7
[SDK] Allow ARM64 MSVC to complete configuration (#4045)
- Add some of the missing CMake adjustments to continue the configure and compile process with ARM64 MSVC
- Created quick stubs for the functions in SDK needed to finish the configuration process
- Put in an ARM64 option for spec2def

CORE-17518 CORE-17615
2021-10-22 18:52:32 +03:00
Victor Perevertkin 55f1f3000a
[CMAKE] Remove /fallback compile flag from clang-cl builds
This option is not needed anymore and was removed from LLVM 13
2021-10-14 20:30:27 +03:00
Thomas Faber 40ee59d609
[LIBXML2] Update to version 2.9.12. CORE-17766 2021-09-18 21:42:26 -04:00
Hermès Bélusca-Maïto 9393fc320e
[FORMATTING] Remove trailing whitespace. Addendum to 34593d93.
Excluded: 3rd-party code (incl. wine) and most of the win32ss.
2021-09-13 03:52:22 +02:00
Hermès Bélusca-Maïto 9b1edceae1
[REACTOS] Fix some instances of DPRINTs with trailing whitespace before newlines. 2021-09-13 03:52:19 +02:00
Stanislav Motylkov 3f4c98a425
[ARM] Fix some compilation errors for ARM
CORE-17634 CORE-17604
2021-09-09 19:40:20 +03:00
Roman Masanin 9c4e3234ba
[CRT/ARM] Integer to float conversion implementation (#3866)
CORE-17713 CORE-17706 CORE-17604
2021-09-09 16:02:03 +03:00
Roman Masanin 554bbb6bab
[CRT/ARM] Floating point control functions implementation (#3870)
Implement controlfp, statusfp, fpreset, clearfp. CORE-17757 CORE-17604
2021-09-08 16:04:48 +03:00
Serge Gautherie d6002f9475 [CMLIB] arm64: Define PAGE_SIZE
CORE-17518
2021-09-03 23:40:21 +03:00
Kento Oki 3ba1d82c41
[RTL/x64] Fix a typo RtplUnwindInternal -> RtlpUnwindInternal (#3912) 2021-08-16 04:23:02 +03:00
Victor Perevertkin 6ef6fabfc5
[FREELDR][NTOS][HALPPC][SDK] Remove PowerPC code
Remove PowerPC-related code from the kernel, HAL, SDK and
Freeloader.
2021-08-15 15:35:51 +03:00
Jérôme Gardou 0782375f8b [CRT] Add one missing entry to _syserr_list array, fix _sys_nerr definition
Partial revert of 296e07b94d
2021-08-05 15:35:19 +02:00
Timo Kreuzer e91f201be2 [CRT] Implement crt_process_init() 2021-08-04 02:03:07 +02:00
Timo Kreuzer 8043b76e85 [CRT] Improve CMake files 2021-08-04 02:03:07 +02:00
Timo Kreuzer 950e814377 [CRT] Fix _fmode
Remove mingw-w64 version of _fmode. _fmode should not be linked directly into the executable. Instead, the export from msvcrt should be used. On Windows 10 it's defined to *__p__fmode(), which is exported from ucrtbase.dll
Also _fmode in msvcrt.dll is initialized with 0.
2021-08-04 02:03:07 +02:00
Timo Kreuzer 296e07b94d [CRT] Fix some data exports
* Fix initialization of _commode. In msvcrt it is allocated from .bss, i.e. initialized with 0.
* _fileinfo is initialized with -1
* _aexit_rtn is a pointer, not a function
* Fix _sys_nerr
2021-08-04 02:03:07 +02:00
Timo Kreuzer 379957424c [CRT] Fix some _CRTIMP
Get rid of the ugly __MINGW_IMP_SYMBOL hacks.
2021-08-04 02:03:07 +02:00
Timo Kreuzer b05cc36208 [CRT] Fix CRT headers a bit
* Remove unused internal version of float.h
* Define _STATIC_ASSERT in crtdefs.h
* Add some missing declarations
2021-08-04 02:03:07 +02:00
Timo Kreuzer 0f3d052af9 [CRT] Remove _fmode and _commode initialization
This "initialization" copies the value of the local variable to the one exported from msvcrt, which is the same. Also there shouldn't be a local version of the variable in the first place.
2021-08-04 02:03:07 +02:00
Victor Perevertkin 03506b90e0
[MSVCRTEX] Add some routines required for clang optimizations
- Include exp2* in all clang builds
- Include __aulldiv for i386 ones

Those are required, at least for clang-cl Release configuration
2021-08-02 20:23:18 +03:00
Roman Masanin be3c532bf4
[ARM/CRT] Refactor several functions (#3865)
- Make __fto64 function more readable
- Call worker function directly for __rt_sdiv/udiv
- Adapt __rt_sdiv64/udiv64 asm shims accordingly
- Add header files to CMake source list

CORE-17607 CORE-17614 CORE-17703 CORE-17604

Addendum to f2bc1f0e, e448094e and 54406bf4.
2021-07-31 11:24:03 +03:00
Stanislav Motylkov 54406bf4f0
[CRT/ARM] __fto64: Assembly wrappers are actually not needed anymore
Addendum to e448094e. CORE-17703 CORE-17604
2021-07-30 22:48:03 +03:00
Victor Perevertkin 49cfac17c5
[FFS] Remove the FFS/UFS driver
The upstream driver is not maintained and the file system itself
is in a semi-abandoned state.
Originally imported at 3a3ef631d1

The driver is written by Lee Jae-Hong, updated by Bo Brantén.
ReactOS porting made by Peter Hater and Pierre Schweitzer.
Follow updates at http://www.acc.umu.se/~bosse/

FS Recognizer code is left to keep the FS support as an
installable driver.

CORE-11040
2021-07-30 17:14:57 +03:00
Victor Perevertkin 2e2190df57
[REISERFS] Remove the ReiserFS driver
The upstream driver is not maintained and the file system itself
is in a semi-abandoned state.
Originally imported at e308102f4a

The driver is written by Mark W Piper, updated by Bo Brantén.
ReactOS porting made by Peter Hater and Pierre Schweitzer.
Follow updates at http://www.acc.umu.se/~bosse/

FS Recognizer code is left to keep the FS support as an
installable driver.

CORE-11005
2021-07-30 17:14:53 +03:00
Roman Masanin e448094e74
[CRT/ARM] Implement __dtoi64/dtou64/stoi64/stou64 functions (#3848)
CORE-17703 CORE-17604
2021-07-30 14:20:23 +03:00
Roman Masanin fd8baca9f2
[CRT/ARM] Fix modulus on division (#3856)
This fixes all tests added in 759bdedc. Addendum to f2bc1f0e.

CORE-17607 CORE-17614 CORE-17604
2021-07-29 13:44:16 +03:00
Timo Kreuzer da2a5673e7 [CRT] Fix _matherror and _setusermatherror
We previously used 2 different versions: one from wine and one from mingw-w64.
The former was used in msvcrt, the latter was statically compiled into the executable. When using MS libs, there is only one _matherr, which is statically linked into the executable and does nothing (it's not really a function for users to be called).
_setusermatherror should only exist in msvcrt and not statically, which wouldn't work at all.
2021-07-27 22:08:58 +02:00
Timo Kreuzer f1e2c6cbd0 [CRT/arm] Update file headers to new format and change license to MIT
* Add Raman Masanin to copyrights
* Add some comments
* Return long long from __rt_sdiv (no functional difference, just for clarity)
2021-07-27 14:42:55 +02:00
Serge Gautherie 9a42267b06 [CPPRT] arm: Add 2 'MSVCRTEX_eh_vector_*structor_iterator' aliases
CORE-17606
2021-07-26 09:58:20 +03:00
Roman Masanin f2bc1f0e11
__rt_div fixes for arm (#3843)
[CRT/arm] Fix __rt_udiv and __rt_sdiv
2021-07-24 20:23:58 +02:00
Timo Kreuzer 41bc57ddf0 [REACTOS] Silence warnings in 3r-party code 2021-07-23 22:03:48 +02:00
Timo Kreuzer 5d8e834897 [REACTOS] Fix a number of MSVC warnings 2021-07-23 22:03:48 +02:00
Timo Kreuzer 7100a24fc3 [CRT] Remove checkstk_ms from build (it was unused) 2021-07-20 23:13:03 +02:00
Timo Kreuzer 8c4aff39a8 [CRT] Refactor CMake files 2021-07-20 23:13:03 +02:00
Timo Kreuzer aea4cfba55 [CRT] Add some missing #pragma function 2021-07-11 21:45:29 +02:00
Timo Kreuzer d24700f82e [RTL/x64] Properly handle UNW_FLAG_CHAININFO 2021-07-03 12:56:48 +02:00
Jérôme Gardou 0ffbbab5a2 [CRT] Revert unwanted part of f30136bc79 2021-06-29 12:48:25 +02:00
Jérôme Gardou f30136bc79 [NTOS:KE] Test spinlock ownership on both UP & MP build
There is no reason not to, and this avoids introducing bugs stupidly.
2021-06-29 11:49:20 +02:00
Jérôme Gardou 835c30232e [NTOS:KD][NTOS:KD64][NTOS:KDBG] Fix IRQL & spinlock use
KD64: Raise to HIGH_LEVEL when entering trap
KDBG: lower to DISPATCH_LEVEL when applying IRQL hack & use a worker thread to load symbols
KD&KDBG: Actually unload symbols when required
2021-06-29 11:49:20 +02:00
Hermès Bélusca-Maïto 31322f5df9
[CONUTILS:PAGER][MORE] Implement text line caching + fix some bugs.
- Implement caching of individual (newline-separated) text lines; this
  behaviour can be enabled with a flag (enabled by MORE):
  CON_PAGER_CACHE_INCOMPLETE_LINE.
  This feature is necessary when reading a text file, whose text lines
  may span across two or more successive temporary read buffers, and is
  required for correctly determining whether the lines being read are
  blank and may be squeezed.

- When squeezing blank lines, the blank-line check must be done for each
  line segment corresponding to the screen line (and following) that
  need to be displayed. This matches the behaviour of MS MORE.COM.

- Fix the IsBlankLine() check to not consider FORM-FEEDs as being blank
  characters: This is necessary for correctly handling FORM-FEED
  expansion. Also note that MS MORE.COM only checks for spaces and TABs,
  so we are slightly overdoing these checks (considering other types of
  whitespace).

- Get rid of ConCallPagerLine() and the intermediate CON_PAGER_DONT_OUTPUT
  state flag that were used repeatedly for each and every small line
  chunks. Instead, call directly the user-specified 'PagerLine' callback
  when we are about to start treating the next line segment to be
  displayed (see comment above).

- Fix the exit return condition of ConPagerWorker(): it should return
  TRUE whenever we displayed all the required lines, and FALSE otherwise.
  Otherwise, the previous (buggy) condition on the data being read from
  the text file, may lead to the prompt not showing when a screenful of
  text has been displayed, if it happened that the current text buffer
  becomes empty at the same time (even if, overall, the text file hasn't
  been fully displayed).

- In MorePagerLine(), when we encounter for the first time a blank line
  that will be squeezed with other successive ones, display a single
  blank line. But for that, just display one space and a newline: this
  single space is especially needed in order to force line wrapping when
  the ENABLE_VIRTUAL_TERMINAL_PROCESSING or DISABLE_NEWLINE_AUTO_RETURN
  console modes are enabled. Otherwise the cursor remains at the
  previous line (without wrapping), and just outputting one newline will
  not make it move past 2 lines as one would naively expect.
2021-06-28 21:26:32 +02:00
Hermès Bélusca-Maïto aff90f530c
[CONUTILS:PAGER] Extract the character-specific handling out of the character-loop.
This also allows to factor out the ConCallPagerLine() call for outputting the pending text.
2021-06-28 21:26:32 +02:00
Hermès Bélusca-Maïto ff445ca184
[CONUTILS:PAGER][MORE] Fix the default paging region.
- The column extent should cover the whole width of the console screenbuffer.
  On the contrary, the line extent covers only the number of lines that
  cover the current displayed console window.

- Since the console can be resized while the pager is prompting, we need
  to actually recalculate in the prompt routine the default number of
  lines for a screen.

- Reset s_nNextLineNo when paging a new file.
2021-06-28 21:26:31 +02:00
Hermès Bélusca-Maïto f74a3f6e29
[CONUTILS:PAGER][MORE] Code style/formatting.
- Shorten the names of the flags: CON_PAGER_FLAG_*** --> CON_PAGER_***.
- Reorder few members in the CON_PAGER pager structure where they make sense.
- ScreenColumns, ScreenRows --> PageColumns, PageRows: keeping the open
  possibility for having a pager controlling a region of different size
  than the screen.
- Add doxygen documentation for ConWritePaging().
2021-06-28 21:26:30 +02:00
Jérôme Gardou d1f5c31820 [SDK] Add GCC overrides for SAL annotations
GCC has some functions, variables & type attributes which can be used as aliases
for some of the SAL annotations. Although it's not as rich & precise, it's still useful
since we actually enable -Werror on GCC builds whereas we don't use such an option
on MSVC builds.

For now, _Must_inspect_result_ is aliased to warn_result_unused attribute.
2021-06-28 10:20:57 +02:00
Jérôme Gardou e55eeb2d9c [WDF] Synchronize function attributes between declaration & definition
Addendum to 1f377076d7
2021-06-28 10:20:57 +02:00
Jérôme Gardou 46394ab80d [RTL] In RtlReleasePrivilege, raise exception if restoring old privileges fails
CORE-17637
2021-06-28 10:20:57 +02:00
Jérôme Gardou fb9ebe17bf [RTL] When taking system volume ownership, assert that we succeeded to restore privileges
CORE-17637
2021-06-28 10:20:57 +02:00
Jérôme Gardou 9c5b39e25a [RTL] Check and cascade down RtlGUIDFromString value
CORE-17637
2021-06-28 10:20:57 +02:00
Joachim Henze 81f8bcea8c [DSOUND][WAVE] Workaround crash when recording sound in Scratch 1.4 CORE-13202
It regressed by SVN r44721 == git 356d4bab16092de335705e02b0e87698ec35c393
when #define USE_MMIXER_LIB was removed.

Thanks to the patches author Doug Lyons.

VBox https://reactos.org/testman/compare.php?ids=77914,77919 LGTM
 KVM https://reactos.org/testman/compare.php?ids=77913,77918 LGTM
2021-06-27 23:04:36 +02:00
Hervé Poussineau 979b7d4d8e [TCPIP] Fix bugcheck when using fragmented datagrams
Memory was allocated from paged pool, and freed at DISPATCH_LEVEL,
leading to the following bugcheck:

*** Fatal System Error: 0x000000c2
                       (0x00000009,0x00000002,0x00000001,0xB7C8A268)

Entered debugger on embedded INT3 at 0x0008:0x8058324B.
kdb:> bt
Eip:
<ntoskrnl.exe:18324c (sdk/lib/rtl/i386/debug_asm.S:56 (RtlpBreakWithStatusInstruction))>
<ntoskrnl.exe:89b21 (ntoskrnl/ke/bug.c:1066 (KeBugCheckWithTf))>
<ntoskrnl.exe:8a08b (ntoskrnl/ke/bug.c:1413 (KeBugCheckEx))>
<ntoskrnl.exe:abb1d (ntoskrnl/mm/ARM3/expool.c:431 (ExFreePoolWithTag))>
<tcpip.sys:13e42 (sdk/lib/drivers/ip/network/receive.c:114 (FreeIPDR))>
<tcpip.sys:14e09 (sdk/include/ddk/wdm.h:11462 (IPDatagramReassemblyTimeout))>
<tcpip.sys:11604 (sdk/lib/drivers/ip/network/ip.c:135 (IPTimeoutDpcFn))>
<ntoskrnl.exe:8b7d0 (ntoskrnl/ke/dpc.c:282 (KiTimerExpiration))>
<ntoskrnl.exe:8c2c8 (ntoskrnl/ke/dpc.c:592 (KiRetireDpcList))>
<ntoskrnl.exe:1420b2 (ntoskrnl/ke/i386/thrdini.c:294 (KiIdleLoop))>
<ntoskrnl.exe:23a54a (ntoskrnl/ke/i386/kiinit.c:687 (KiSystemStartupBootStack))>
2021-06-27 17:45:53 +02:00
He Yang 42e111f26b
[ATL] Close m_hKey in CRegKey destructor and when attaching to a new key (#3764) 2021-06-24 23:50:01 +02:00
Jérôme Gardou 27fcfe66a2 [TCPIP][IP] Use an ERESOURCE as mutex for address files & connection end points
Spinlocks are not reentrant (and this is done a lot), using them forces us to have
an horrible hack in the kernel, which unschedules threads which are at DISPATCH_LEVEL
thus allowing another thread to take ownership of the spinlock while the unscheduled
thread should already hold it.

CORE-6473
2021-06-21 11:42:01 +02:00
Victor Perevertkin 34593d933b
[FORMATTING][NTOS][HAL][DRIVERS][SDK] Fix trailing spaces 2021-06-11 15:33:08 +03:00
Timo Kreuzer 9229e73f03 [HIDPARSER] Don't include pshpack1.h before including other headers
NEVER DO THIS! It is guaranteed to be wrong. Instead always individually pack single structures that need packing.
This fixes USB mouse on 64 bit builds.
2021-06-10 08:52:22 +02:00
Katayama Hirofumi MZ b552901df5
[MORE][CONUTILS] Implement missing features of the MORE command (#3658)
Implement missing features of the MORE command. Special thanks to @HBelusca. CORE-4019
2021-06-09 23:30:30 +09:00
Mark Jansen 5ea3814a22 [ATL] Implement CString 'operator !=' 2021-06-05 23:28:38 +02:00
Timo Kreuzer 3cf2bea0de [RTL] Fix RtlWalkFrameChain and wrap it in SEH 2021-06-05 13:52:42 +02:00
Timo Kreuzer e6af7d9dfe [RTL] Simplify RtlRaiseException 2021-06-05 13:52:42 +02:00
Timo Kreuzer 3ec1ca9b46 [RTL] Implement RtplUnwindInternal and wrap RtlUnwindEx and RtlDispatchException around it
Based on the description in this blog article: http://www.nynaeve.net/?p=106
2021-06-05 13:52:42 +02:00
Timo Kreuzer 1d58e84736 [RTL] Improve RtlVirtualUnwind
* Add support for version 2 unwind info
* Implement UnwindOpSlots() and use it (based on https://github.com/dotnet/coreclr/blob/master/src/unwinder/amd64/unwinder_amd64.cpp)
* Fix handling of UWOP_PUSH_MACHFRAME
2021-06-05 13:52:42 +02:00
Timo Kreuzer 5075f7d746 [RTL] Move exception handling code to except.c 2021-06-05 13:52:42 +02:00
Timo Kreuzer 65c3911ffc [RTL] Improve / fix the SList code
Don't push a register in the middle of a an asm function. Instead add a proper prolog and store rbx in a home param slot.
2021-06-05 13:52:42 +02:00
Timo Kreuzer 0520c75aaf [CRT] Implement __C_specific_handler 2021-06-05 13:52:42 +02:00
Timo Kreuzer e801b7dda2 [RTL/x64] Implement RtlpCaptureNonVolatileContextPointers and RtlSetUnwindContext
RtlpCaptureNonVolatileContextPointers walks the stack and captures the addresses of all non-volatile registers on the stack, when they have been saved first. This is needed to be able to fix up the non-volatile on a system call, which doesn't capture non-volatiles, but relies on them to be restored by the callees.

Instead of only checking for the TargetFrame, also check for a mode change, i.e. RIP went from kernel to user, in which case the target frame was not reached yet, because it was too large, but processing can't continue here.

RtlSetUnwindContext uses RtlpCaptureNonVolatileContextPointers to set the non-volatile registers in the the stack. They will be picked up, when returning back or unwinding, e.g. to the system call handler.
2021-06-02 18:25:36 +02:00
Stanislav Motylkov 11687e9e43
[CRT][ARM] Fix uninitialized variables caught by RTC
CORE-17613
2021-06-02 13:18:40 +03:00
Timo Kreuzer 0c3812eb7e [RTL/x64] Implement RtlRestoreContext 2021-05-29 21:20:48 +02:00
Timo Kreuzer abb338b13d [RTL/x64] Improve RtlCaptureContext
Use movaps instead of movdqa, it does the same thing, but is one byte shorter.
Shuffle instructions around a bit to maximize parallel execution.
2021-05-29 21:20:48 +02:00
Timo Kreuzer 3831c0ca31 [RTL/x64] Improve RtlInitializeContext 2021-05-29 21:20:48 +02:00
Timo Kreuzer db0c59cbd4 [CRT] Use the asm version of sqrt on amd64 2021-05-28 11:52:42 +02:00
Hermès Bélusca-Maïto 7c3aabc088
[CONUTILS] Implement ConSetThreadUILanguage() as a wrapper for kernel32!SetThreadUILanguage().
CORE-17601

Dynamically load SetThreadUILanguage(), so as to support systems where this API is not present.

Hopefully implemented in a thread-safe manner.
2021-05-26 01:42:10 +02:00
Hermès Bélusca-Maïto 35f499e52f
[CONUTILS][CMD] Add and use a helper ConStdStreamsSetCacheCodePage() macro instead of repeatedly calling ConStreamSetCacheCodePage() on the standard streams. 2021-05-26 01:42:09 +02:00
Hermès Bélusca-Maïto f268430c05
[CONUTILS] Update some documentation. 2021-05-26 01:42:09 +02:00
Hervé Poussineau 1a1dac04c7 [SMLIB] Implement SmStartCsr and SmStopCsr 2021-05-25 19:02:16 +02:00
Mark Jansen b58c3d73ca
[RTL][KERNEL32] Move the STUB printing code to a place where it's actually called 2021-05-22 16:33:19 +02:00
Jérôme Gardou a3629ab08b [RTL] SAL-annotate RtlUnicodeStringToCountedOemString
Brought to you by Hermès
2021-05-19 22:50:29 +02:00
Jérôme Gardou 30f2ad7949 [RTL] Properly truncate 8dot3 names when using a MultiByte OEM code page
CORE-17571
2021-05-19 22:50:29 +02:00
Jérôme Gardou 49fcbe7cd8 [RTL] Fix RtlIsValidOemCharacter implementation for Multibyte code pages
CORE-17571
2021-05-19 22:50:29 +02:00
Jérôme Gardou 1b08836338 [RTL] Properly implement RtlUnicodeToOemN
CORE-17571
2021-05-19 22:50:29 +02:00
Jérôme Gardou 0f723105c6 [CMAKE] Allow compiling amd64 port with GCC on Windows
Dedicated to Daniel
2021-05-19 14:13:51 +02:00
Mark Jansen 264aaa9e05 [RTL] Implement RtlGetLengthWithoutLastFullDorOrNtPathElement
CORE-17248
2021-05-08 19:24:23 +02:00
Mark Jansen 3e7e4ee360 [RTL] Implement RtlpApplyLengthFunction
CORE-17248
2021-05-08 19:24:23 +02:00
Jérôme Gardou d312ef234b [PSEH] Fix use of dummy implementation in C++ 2021-05-03 22:00:57 +02:00
Jérôme Gardou 07dcec0325 [PSEH] Use dummy PSEH for clang(-cl) amd64 build 2021-05-03 22:00:57 +02:00
Jérôme Gardou 802665a4ac [CRT] Also use alias _rot functions for clang-cl amd64 build 2021-05-03 22:00:57 +02:00
Jérôme Gardou 439aefb31d [CRT] Sync tlssup.c with mingw-w64
This allows amd64 built binary to be loaded.
2021-04-28 13:10:23 +02:00
Jérôme Gardou fe3278d4d6 [CRT] We never use the mthread library 2021-04-28 13:10:23 +02:00
Jérôme Gardou ba74a05a17 [PSEH] Add implementation for GCC amd64
Also, put include directory next to the library and use
target_include_directories(.. INTERFACE ..) to get this right.
This is because :
 - Having includes & implementation in two different places buggers me
 - This makes sure that there is no "if it compiles everything is fine" behaviour from anyone
   because now even static libraries need it for GCC amd64 build
Also add __USE_PSEH2__ define for the non SEH-aware compilers out there and use it in a few headers
where we define macros involving __try
2021-04-28 13:10:23 +02:00
Jérôme Gardou d31856cda1 [CRT] Do not include unneeded PSEH header 2021-04-28 13:10:23 +02:00
Jérôme Gardou e470b58376 [REACTOS] Explicitly link against pseh & include pseh headers in a few places 2021-04-28 13:10:23 +02:00
Jérôme Gardou 8abcd18742 [RTL] Use addressing relative to rip 2021-04-28 13:10:23 +02:00
Serge Gautherie b8ae966634 [CRT] exp2*.c: Add an explicit type for 'TWO' variable
Addendum to 199adee.
2021-04-27 10:36:54 +03:00
Jérôme Gardou 3731fd1661 [CRT] Properly declare rot functions in public headers 2021-04-09 15:12:13 +02:00
Jérôme Gardou 620f333252 [CRT] Fix rot functions aliases in non-x86 clang builds 2021-04-09 15:00:07 +02:00
Jérôme Gardou 199adee3fe [CRT] Add a generic C version of exp2(f) and use it for all architecture 2021-04-09 14:59:07 +02:00
Jérôme Gardou a19ca409ae [PSEH] Each amd64 compiler that we use support SEH 2021-04-09 12:36:04 +02:00
Victor Perevertkin 74ec94e12c [CMAKE] Some options are only supported by GCC, don't use them for clang
These are (so far):
-Wno-format-overflow
-Wno-nonnull-compare
-Wno-old-style-declaration
-Wno-unused-but-set-variable
2021-04-09 03:58:19 +03:00
Jérôme Gardou 3a14c97d0c [LIBCNTPR] Fix a typo
There is no console to display to.
2021-03-25 11:54:49 +01:00
Serge Gautherie 49639c7759
[ATL] CWindowImplBaseT::WindowProc(): Narrow 2 ATLASSERT() down (#3529)
Addendum to e076e05. CORE-17505
2021-03-25 19:51:29 +09:00
Jérôme Gardou 162f51e6b8 [OLDNAMES] Add missing isascii 2021-03-17 18:52:58 +01:00
Jérôme Gardou 7e5c1872ee [RTL] Improve performance by introducing a hint array for free entries
The array is there for the entries smaller than the decommit threshold, the rationale
being that entries which are larger will likely be split for honoring other allocations
or be coalesced and eventually decommitted.

This with the previous commits make a huge perf boost to memory-intensive applications like cmake

CORE-15793
2021-03-16 13:23:21 +01:00
Jérôme Gardou 325737f855 [SDK:RTL] Track the end of uncommitted ranges thanks to a "Guard" entry that we put at the end of each committed page
This avoids busy loop to get the last valid entry of the previous committed range when committing a new one.

CORE-15793
2021-03-16 13:23:21 +01:00
Katayama Hirofumi MZ e076e0576f [ATL] Add NULL-check in CWindowImplBaseT::WindowProc assertions
CORE-17505
2021-03-11 21:20:40 +09:00
Katayama Hirofumi MZ 9259ded8ae
[ATL][SHELL32][EXPLORER] Disable ATLASSERT (#3527)
We are not ready for enabling ATLASSERT. Enabling ATL assertions takes time to realize. CORE-17505
- Disable ATLASSERT by undefining _DEBUG.
- Revert currently non-fixable codes.
2021-03-11 20:26:45 +09:00
Katayama Hirofumi MZ 4f83032a12 [ATL] Split CWindowImplBaseT::WindowProc asserion
CORE-9281
2021-03-11 17:18:43 +09:00
Serge Gautherie 0975c5ef40
[ATL] CMakeLists.txt: Use a bare endif() (#3523)
Addendum to 98203ce.
2021-03-11 08:38:04 +09:00
Victor Perevertkin df35c8d05e
[SDK:KMDF] Populate OsVersionInfo in our static linking hack 2021-03-10 18:41:46 +03:00
Victor Perevertkin 6d1ca3553e
[SDK:KMDF] Fix calling convention for the kernel function pointers 2021-03-10 18:41:03 +03:00
Katayama Hirofumi MZ 98203cea23
[CMAKE] Define _DEBUG for better ATL debugging (Retry) (#3519)
CORE-17505
2021-03-10 22:59:13 +09:00
Victor Perevertkin 0a26c7c5d2
[SDK:DDK] Implement the Auxiliary Kernel-Mode Library
And uncomment the code in KMDF which uses it
2021-03-10 16:43:59 +03:00
Jérôme Gardou 0c34c067c4 [CRT] Add CFI annotatiions to memmove function 2021-03-09 19:42:49 +01:00
Jérôme Gardou 65b6af58f9 [SDK:RTL] Statically initialize RtlCriticalSectionList
This might be used before RtlpInitDeferedCriticalSection gets called
2021-03-03 14:10:47 +01:00
Jérôme Gardou 2306c83e5c [CMAKE] Explicitly declare libcntpr as a static lib 2021-03-03 08:34:32 +01:00
Serge Gautherie 55b93aecdc
[CMAKE] target_compile_definitions() calls: Remove (now) useless '-D' (#3490)
Documented as automatically removed, since CMake 3.12.4 at least.
https://cmake.org/cmake/help/v3.12/command/target_compile_definitions.html
2021-03-03 04:16:02 +01:00
Serge Gautherie e898c9e0df
[RTL_VISTA] CMakeLists.txt: Fix 'rtl' copypasta (#3489)
Addendum to 6119239.
2021-03-02 19:06:17 +01:00
Katayama Hirofumi MZ e24d3cc952
[SDK][ATL] Fix CWindow::GetWindowText method of BSTR (#3498)
- Fix generic text mapping for GetWindowText and GetWindowTextLength functions.
- Fix the position.
- Fix the length.
- Fail elegantly if necessary.

CORE-9281
2021-03-02 17:50:00 +09:00
Katayama Hirofumi MZ ef3e7a3717
[SDK][ATL] Implement UnsubclassWindow methods (#3492)
I want UnsubclassWindow methods.
- Implement CWindowImpl::UnsubclassWindow method.
- Implement CContainedWindowT::UnsubclassWindow method.
- Add SubclassWindow testcase to atl_apitest test program.
- Fix generic text mapping of <atlwin.h>.
CORE-9281
2021-02-28 12:45:16 +09:00
Hervé Poussineau bbf7b5b72a [CRT/x64] Correctly implement fabs for GCC
Note that MSVC does not recognize 'fabs' as a valid label name.
See fee844b6ff and 2f7cf157d8
2021-02-01 19:57:12 +01:00
Hervé Poussineau 349e0ddde8 [PSEH] Fix test on non-existent variable, so GCC x64 now always uses native SEH instead of PSEH 2021-02-01 19:57:12 +01:00
Jérôme Gardou d712c895fd [RTL] Fix a typo & remove useless cast 2021-02-01 09:09:19 +01:00
Jérôme Gardou 6a4c6ea5d0 [RTL] Implement RtlTryAcquireSRWLockExclusive & RtlTryAcquireSRWLockShared 2021-01-29 18:42:54 +01:00
Jérôme Gardou 2486558ae1 [RTL] Do not mess with critical section lock when there is no reason to.
- When process is shutting down.
 - When the caller is so drunk that they leave twice the pub altough they entered it only once.
2021-01-29 18:18:09 +01:00
Jérôme Gardou 6d697561f0 [RTL] Fix heap usage flags
- Use Heap->ForceFlags where needed
 - Use passed-in flags instead of the heap flags in some places
 - Do not recursively acquire the heap lock
2021-01-29 09:42:13 +01:00
Hervé Poussineau 457b83f76a [PSEH] When using GCC x64, use native SEH support instead of PSEH 2021-01-28 20:44:21 +01:00
Hervé Poussineau c345f7f137 [ASM x64] Make UNIMPLEMENTED macro self-suffisant
This fixes link errors with MsgUnimplemented not defined on binaries not linking to CRT.
2021-01-28 20:31:16 +01:00
Jérôme Gardou af3527d4d2 [MSVCRTEX] Do not include _CI* math functions
They are exported by msvcrt
CORE-17423
2021-01-21 09:43:43 +01:00
Mark Jansen 69dffed3f7 [CMAKE] Fix MSVC configuring 2021-01-15 20:43:10 +01:00
Hervé Poussineau 0cce1348c6 [CRT/x64] Make _fpreset/_logb public, as they are exported using the .spec file 2021-01-07 21:12:11 +01:00
Hervé Poussineau a644e7f5fd [CRT/x64] Disable MSVCRT__setjmp function, which references non-existent function __wine_setjmpex
_setjmp is already defined in sdk/lib/crt/setjmp/amd64/setjmp.s
2021-01-07 21:12:11 +01:00
Hervé Poussineau 80b1b0b294 [CRT] Fix hack for GCC x64, when CRT is linking against RosBE libstdc++ 2021-01-05 19:24:23 +01:00
Jérôme Gardou c8d07514c8 [CMAKE] Fix GCC -fstack-protector usage 2021-01-05 13:38:57 +01:00
Jérôme Gardou 8a6d653044 [CRT] Fix _onexit
Avoid calling malloc in CR initialisation code.
Have executables call msvcrt implementation, while the DLLs keep their own function tables

CORE-17362
2020-12-30 19:03:52 +01:00
Jérôme Gardou 6c6d9bee68 [CRT] Do not call atexit at process initialization
There is no guarantee that the underlying APIs are initialized at this point

CORE-17362
2020-12-30 19:03:52 +01:00
Jérôme Gardou 26863538a4 [CRT] Format source a bit.
This is horrendous.
2020-12-30 19:03:52 +01:00
Jérôme Gardou b96e88894a [CMAKE] Turn import libs into regular C static libs
Embed msvcrtex into libmsvcrt

Idea taken from Thomas Faber
2020-12-28 12:13:30 +01:00
Joachim Henze b0d136ffcf [RTL] Fix build on MSVC bots part 2
Then stick with your stupid PCH on master already.
Addendum to 0.4.15-dev-1453-g 4ad7b6d
2020-12-17 15:01:50 +01:00
Joachim Henze dd3c540928 [RDBSSLIB][RTL] Fix build on MSVC bots
Addendum to 0.4.15-dev-1453-g 4ad7b6d
Looks like CMake on master does not longer understand the syntax of
replace_compile_flags().
Will investigate that later again, when other issues have been
solved that do currently prevent me from testing that locally at all.
Most likely remove_target_compile_option() has to be used instead now.
2020-12-17 14:33:26 +01:00
Joachim Henze 4ad7b6d634 [APISETS][RDBSSLIB][RTL] Fix some build issues for MSVC Rls-config CORE-17402
A subset of the patch that is intended to fix all build issues in releases/0.4.14
for compiler MSVC 2010SP1 16.0.40219.1 with RosBE 2.1.6
I left out the changes for disk_new in master because the drivers sources
were replaced since the branching.

Thanks to Mark Jansen for providing the apisets part.

VBox https://reactos.org/testman/compare.php?ids=75522,75524
KVM https://reactos.org/testman/compare.php?ids=75521,75523
2020-12-17 13:31:43 +01:00
Timo Kreuzer 883ae6d93b [RTL] Fix RtlImageDirectoryEntryToData to support both 32 and 64 bit images 2020-12-06 16:37:57 +01:00
Hermès Bélusca-Maïto 8d3e80e437
[FSLIB][FMIFS][AUTOCHK][SETUPLIB] Use more Windows-compatible (but not fully compatible yet) Format() and Chkdsk() ULIB functions.
[AUTOCHK] Add also support for scanning FATX volumes.

The Format(), FormatEx(), Chkdsk(), ChkdskEx() functions exposed by the
U*.DLL user-mode FS library dlls are different (and have different
prototypes) than the similarly-named functions exported by FMIFS.DLL .

In particular, what we used to call "xxxChkdskEx()" and "xxxFormatEx()"
in our U*.DLL libraries actually correspond more, from their arguments,
to the "Chkdsk()" and "Format()" functions in Windows' U*.DLL . Their
*Ex() counterparts instead take most of the parameters through a
structure passed by pointer.

On FMIFS.DLL side, while FMIFS!Chkdsk() calls U*.DLL!Chkdsk() and
FMIFS!ChkdskEx() calls U*.DLL!ChkdskEx() (and we do not implement these
*Ex() functions at the moment), both FMIFS!Format() and FMIFS!FormatEx()
call U*.DLL!Format() instead, while FMIFS!FormatEx2() calls
U*.DLL!FormatEx() (that we do not implement yet either) !!

To improve that, refactor the calls to these U*.DLL functions so as to
respect the more compatible prototypes: They contain the correct number
of parameters in a compatible order. However, some of the parameters do
not have the same types yet: the strings are kept here in PUNICODE_STRINGS,
while on Windows they are passed via an undocumented DSTRING struct, and
the FMIFS callback is instead a MESSAGE struct/class on Windows.
Finally, the MEDIA_TYPE parameter in U*.DLL!Format() is equivalent, yet
not fully 100% in 1-to-1 correspondence, with the FMIFS_MEDIA_FLAG used
in the corresponding FMIFS.DLL functions.

One thing to notice is that the U*.DLL!Format() (and the Ex) functions
support a BOOLEAN (a flag resp.) for telling that a backwards-compatible
FS version should be used instead of the (default) latest FS version.
This is used e.g. by the FAT FS, where by default FAT32 is selected
(depending also on other constraints like, the disk and the partition
sizes), unless that bit is set in which case, FAT16 (or 12) is used.
2020-11-22 21:57:07 +01:00
Hermès Bélusca-Maïto cdaa5d5fc7
[BTRFSLIB] Reduce the diff with upstream, and fix a memory leak.
- Reduce the diff with upstream by aliasing malloc() and free()
  with RtlAllocateHeap() and RtlFreeHeap() respectively.

- Fix a memory leak in the failure code path of the do-while
  memory reallocation loop for IOCTL_BTRFS_QUERY_FILESYSTEMS
  in is_mounted_multi_device().
2020-11-22 21:34:13 +01:00
Jérôme Gardou b0abd14b03 [ATL] Declare pointer as return type for functions returning pointers 2020-11-16 16:58:10 +01:00
Jérôme Gardou 281389b7e7 [CRT] Use ASM aliases for CLang builds 2020-11-16 16:58:10 +01:00
Jérôme Gardou 15c9f63b65 [MSVCRTEX] Add some floating point functions for CLang build
Clang makes optimisations requiring functions not present in msvcrt
2020-11-16 16:58:10 +01:00
Victor Perevertkin 7c734db034
[WDF] Enable Resource and Interrupt APIs 2020-11-04 19:34:14 +03:00
Victor Perevertkin 1f377076d7
[WDF] Fix KMDF so it can compile with ReactOS SDK
Not all files are included, but these are necessary to compile cdrom driver.
So far it can only be statically linked with drivers, a proper
implementation requires wdfldr helper driver
2020-11-03 00:06:27 +03:00
Victor Perevertkin 8a978a179f
[WDF] Add Windows Driver Framework files
Takern from Microsoft GitHub repo:
d9c6040fe9

Licensed under MIT
2020-11-03 00:06:26 +03:00
Timo Kreuzer 2c791cdde7 [CRT] Remove duplicated atexit/onexit code
This removes the broken wine version of atexit and onexit. It keeps only dllonexit, which is implemented properly. The previous __call_atexit is moved to where the mingw onexit/atexit code is and adjusts it to work with the existing code. A call to __call_atexit is added in __tmainCRTStartup after the main function was called.
2020-11-01 09:33:14 +01:00
Jérôme Gardou 23e04ae1ee [CMAKE] Use an INTERFACE library to perform the msvcrt <-> msvcrtex binding 2020-10-22 18:07:27 +02:00
Jérôme Gardou ab825334dd Apply suggestions from code review
Beautification and clarity

Co-authored-by: Victor Perevertkin <victor@perevertkin.ru>
Co-authored-by: Hermès BÉLUSCA - MAÏTO <hermes.belusca-maito@reactos.org>
2020-10-20 21:44:54 +02:00