Victor Perevertkin
f155b9377f
[CMAKE] Elimitate the use of GCC and CLANG variables
2022-05-27 01:37:34 +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
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
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
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
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
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
Timo Kreuzer
d24700f82e
[RTL/x64] Properly handle UNW_FLAG_CHAININFO
2021-07-03 12:56:48 +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
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
Victor Perevertkin
34593d933b
[FORMATTING][NTOS][HAL][DRIVERS][SDK] Fix trailing spaces
2021-06-11 15:33:08 +03: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
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
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
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
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
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
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
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
Serge Gautherie
e898c9e0df
[RTL_VISTA] CMakeLists.txt: Fix 'rtl' copypasta ( #3489 )
...
Addendum to 6119239
.
2021-03-02 19:06:17 +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
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
Timo Kreuzer
cb22d5f697
[NTOS:PS] On x64 don't fail in NtSetInformationProcess with ProcessUserModeIOPL information class, instead just don't do anything.
...
For NT6+ appcompat setting return STATUS_NOT_IMPLEMENTED
2020-09-20 23:08:17 +02:00
William Kent
427ea67b9c
[RTL] Add code to SxS manifest parser to parse XML namespaces ( #2512 )
...
* [XDK] Typo fix
* [XDK] Add missing ACTIVATION_CONTEXT_SECTION values
* [RTL] Merge changes from Wine
* [ROSTESTS] Fix typo
* [NTDLL] Typo fix
* Add test for new functionality
* [ROSTESTS] Fix path
* [ROSTESTS] Add test to testlist.c
2020-09-20 22:56:42 +02:00