Commit graph

2151 commits

Author SHA1 Message Date
Timo Kreuzer 5d8e834897 [REACTOS] Fix a number of MSVC warnings 2021-07-23 22:03:48 +02:00
Timo Kreuzer a3763c61dc [PSDK][NDK] Use hex to define MIN/MAX constants like in native SDK
This fixes use of unary minus operator on unsigned type warning.
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
George Bișoc 506cee3219 [NTOS:SE] Implement logon session termination notification
Note to SELF and EVERYONE: the commit implements the initial logon session termination notification implementation, the SeMarkLogonSessionForTerminationNotification function, but as it currently stands there are several other tasks to be addressed in the future in order for the logon termination notification to be fully completed. The tasks as of which are.

1. Our SepRmDereferenceLogonSession is not fully implemented, as it doesn't inform the LSA and filesystems of logon deletion notification
2. Implement two worker routines that are actually in charge of such tasks of informing LSA and FSDs
3. Perform logon deletion
4. Do further investigations and check whatever that is left to address, if any
2021-07-15 19:31:46 +02:00
Katayama Hirofumi MZ 5a9c77b3be
[IMM32_APITEST] Add clientimc testcase (#3815)
- Add clientimc testcase to imm32_apitest.
- Add "precomp.h".
CORE-11700
2021-07-14 01:19:35 +09:00
Katayama Hirofumi MZ 1558e6d0b3
[IMM32] Rewrite ImmGetCompositionFontA/W (#3813)
- Rewrite ImmGetCompositionFontA and ImmGetCompositionFontW functions.
- Add INIT_* macro definitions in <ddk/imm.h>.
CORE-11700
2021-07-13 20:51:28 +09:00
Timo Kreuzer aea4cfba55 [CRT] Add some missing #pragma function 2021-07-11 21:45:29 +02:00
Timo Kreuzer db41787951 [CRT] Fix handling of intrinsics and inline functions 2021-07-11 21:45:29 +02:00
Timo Kreuzer f4de12e9f4 [CMAKE] Don't turn C4101 (unreferenced local variable) into an error on release builds 2021-07-11 21:45:29 +02:00
Katayama Hirofumi MZ 92393a7517
[IMM32] Add some candidate handlings (#3799)
- Implement ImmGetCandidateListA and ImmGetCandidateListW, by using newly added ImmGetCandidateListAW function.
- Implement ImmLockClientImc and ImmUnlockClientImc functions.
- Modify imm32.spec.
- Remove #ifdef's.
CORE-11700
2021-07-11 09:48:15 +09:00
Katayama Hirofumi MZ 2fa0436372
[SDK][INCLUDE] Add offset info to INPUTCONTEXT (#3809)
Add offset and size information to INPUTCONTEXT structure for information help. CORE-11700
2021-07-09 23:31:42 +09:00
Eric Kohl 7faca935e6 [SETUPAPI] PNP_RegisterNotification: Parameter 8 seems to be a process ID 2021-07-08 10:58:47 +02:00
Eric Kohl f4033b02e4 [IDL] Formatting: Add a missing space 2021-07-08 10:55:13 +02:00
Eric Kohl 4339ae8c7e [DDK] Add missing types DOMAIN_DISPLAY_USER, DOMAIN_DISPLAY_MACHINE and DOMAIN_DISPLAY_GROUP 2021-07-07 12:26:44 +02:00
Hervé Poussineau f26fe3f1f8 [PSDK] Add missing field 'pdo' in VIDEO_MONITOR_DEVICE structure 2021-07-05 23:44:35 +02:00
Katayama Hirofumi MZ 89f5f5bb95
[IMM32] Rewrite ImmGetDescriptionA/W (#3780)
CORE-11700
2021-07-04 08:18:15 +09: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
Jérôme Gardou 54ecf703f2 [CMAKE:GCC] Produce RosSym data even when building with separate debug symbols 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
Victor Perevertkin 1c7f3476a0
[CMAKE] Use BUILD_MP CMake option correctly 2021-06-28 17:54:09 +03:00
Jérôme Gardou ada609bdbc [PSDK] Alias _Check_return_ annotation to warn_unused_result attribute 2021-06-28 10:20:57 +02:00
Jérôme Gardou e10892e4f4 [CRT] Put __MINGW_EXTENSION (whatever that means) in front of function declarations
Needed for next commit
2021-06-28 10:20:57 +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 a28a34f108 [NDK][XDK] Remove _Must_inspect_result_ from RtlTimeFieldsToTime & RtlTimeToSecondsSince1970
WDK doesn't have it and it causes more mess than anything.
CORE-17637
2021-06-28 10:20:57 +02:00
Jérôme Gardou 28c5f7538a [DDK] Do not put _Must_inspect_result_ on function returning void & without _Out_ parameters 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
Timo Kreuzer 8a68820429 [SDK] Add missing sal annotations in driverspecs.h and kernelspec.h
CORE-6706
2021-06-28 08:48:59 +02:00
Hermès Bélusca-Maïto 8ec3580123 [SHELL32] Add the handy WHICH_DEFAULT value to the list of flags in shlwapi_undoc.h.
- Add as well the undocumented 0x40 dwFlags value from shlwapi!PathFileExistsDefExtW()
  to the list.

- Fix a bug (also present in Win2k3) in PathResolveW() where, specifying
  the PRF_DONTFINDLNK flag, would also erroneously exclude checking for
  the .cmd extension as well (which was obviously NOT the original
  intention, from the name of the flag and the documentation as well:
  https://docs.microsoft.com/en-us/windows/win32/api/shlobj_core/nf-shlobj_core-pathresolve
  ).

Addendum to 3a822e4f.
2021-06-28 02:19:30 +02:00
Katayama Hirofumi MZ 3a822e4f74
[SHELL32] Implement PathResolveW function (#3762)
- Implement PathResolveW function.
- Implement PathQualifyA/W functions using newly-defined PathQualifyExW function.
CORE-12665
2021-06-28 07:53:26 +09: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
Dmitry Borisov 8939abf113 [ISAPNP] Disable bus scan on unsupported platforms
This speeds up boot a bit and also decreases binary size.

- Introduce a new CMake define ISAPNP_ENABLE that defined only in x86 platform
  when ISA PnP is supported.
2021-06-20 19:24:32 +06:00
Mark Jansen 560fdd150a [SDK] Add script to check includes with modified struct packing 2021-06-19 16:30:21 +02:00
Timo Kreuzer f4d47faeb7 [NTOS:KE] Fix usage of KTHREAD::SwapBusy 2021-06-19 12:17:18 +02:00
Victor Perevertkin 34593d933b
[FORMATTING][NTOS][HAL][DRIVERS][SDK] Fix trailing spaces 2021-06-11 15:33:08 +03:00
Serge Gautherie c2317d773e [CMAKE] host-tools: Define ROS_SAVED_* for MSVC_IDE only
Addendum to 18e95f5.
ROSBE-174
2021-06-11 02:08:12 +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
Jérôme Gardou c8fb3f7514 [NTOS:MM] Implement proper refcounting of page tables on amd64
CORE-17552
2021-06-09 11:27:18 +02:00
George Bișoc a330b56787
[NTOS:PS] Enable alignment probing for thread/process information classes
In addition to that, here are some stuff done in this commit whilst testing:

- ICIF_QUERY_SIZE_VARIABLE and friends were badly misused, they should be used only when an information class whose information length size is dyanmic and not fixed. By removing such flags from erroneous classes, this fixes the STATUS_INFO_LENGTH_MISMATCH testcases.

- Use CHAR instead of UCHAR for classes that do not need alignment probing, as every other class in the table do, for the sake of consistency.

- ProcessEnableAlignmentFaultFixup uses BOOLEAN as type size, not CHAR. This fixes a testcase failure on ROS.

- Check for information length size before proceeding further on querying the process' cookie information.

- ProcessHandleTracing wants an alignment of a ULONG, not CHAR.

- Move PROCESS_LDT_INFORMATION and PROCESS_LDT_SIZE outside of NTOS_MODE_USER macro case. This fixes a compilation issue when enabling the alignment probing. My mistake of having them inside NTOS_MODE_USER case, sorry.

- On functions like NtQueryInformationThread and the Process equivalent, complete probing is not done at the beginning of the function, complete probing including if the buffer is writable alongside with datatype misalignment check that is. Instead such check is done on each information class case basis. With that said, we have to explicitly tell DefaultQueryInfoBufferCheck if we want a complete probing or not initially.
2021-06-06 17:14:22 +02:00
Mark Jansen 64d3a54de9
[HOST-TOOLS] Block sending telemetry when spawning a new shell 2021-06-06 00:43:05 +02: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 f1ed97d6cc [NTOS:KE/x64] Implement KiSetTrapContext
KiSetTrapContext is an asm wrapper around RtlSetUnwindContext, which first stores an exception frame to assure that all non-volatile registers were put on the stack, then calls RtlSetUnwindContext to update their first saving positions on the stack and finally restore the exception frame to potentially load any updated registers, that haven't been saved elsewhere on the stack.
2021-06-02 18:25:36 +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
Timo Kreuzer 90a0e426ed [NTOS:KE] Add IRQL checks and fix KiInitiateUserApc 2021-05-28 11:52:42 +02:00
Timo Kreuzer 42e1fefcc6 [ASM] Clear interrupt flag in ExitTrap before returning 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 5f94b23d2b
[HOST-TOOLS] Configure environment for MSVC cross-compiling
This makes ARM builds on a non-arm host work again.

CORE-17542
CORE-17517
2021-05-24 17:34:49 +02:00
Mark Jansen a555892027
[SDK] Remove duplicate definition 2021-05-24 17:34:49 +02:00
Mark Jansen 0911e8f457
[CMAKE] Add some arm/arm64 specific paths
CORE-17517 CORE-17518
2021-05-24 17:34:28 +02:00
Eric Kohl 894cc4ac0c [dnsapi][dnsrslvr] Implement DnsFlushResolverCacheEntry_A/_UTF8/_W 2021-05-24 14:43:30 +02:00
Mark Jansen 18e95f5a4e
[CMAKE] Store and re-use M4 and BISON_PKGDATADIR env variables
ROSBE-174
2021-05-22 16:38:17 +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 8d1e01be0e [NLS] Use files provided by Microsoft to generate most of our NLS files
Instead of binary blobs coming from who-knows-where
CORE-17571
2021-05-19 22:50:29 +02:00
Jérôme Gardou 79b2d9c2ff [TXT2NLS] Rewrite the tool
With support for multibyte codepages & glyph tables
CORE-17571
2021-05-19 22:50:29 +02:00
Jérôme Gardou 1549f0837f [SDK] Turn txt2nls into a host tool 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 53a6c44f74 [NTDLL_APITEST] Add some tests for RtlUnicodeStringToCountedOemString
CORE-17571
2021-05-19 22:50:29 +02:00
Dmitry Borisov 999345a4fe [XDK] Update the prototype of IO_COMPLETION_ROUTINE 2021-05-19 20:14: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
Jérôme Gardou 3adf450867 [REACTOS] Addendum to 5c7ce4475e - Fix MSVC 2015 build
Put data into PAGEDATA or INITDATA sections
Keep section declaration for prototypes

CORE-17540
2021-05-12 11:04:29 +02:00
Dmitry Borisov 6e33c8ffd3
[PEFIXUP] Fixup of resource sections in GCC builds. (#3594)
Make resource sections discardable for kernel-mode drivers and DLLs.
2021-05-10 00:36:38 +02:00
George Bișoc 0fe7fdbdea
[NDK][NTOS:SE] Fix the member offsets in TOKEN, again...
The member offsets in comments were wrong again, whoops....
2021-05-09 18:17:53 +02:00
George Bișoc f5dc1c77b5
[NDK][NTOS:SE] Add the missing "LogonSession" member to TOKEN structure
And also fix the wrong member offsets in comments. The said offset values are based upon the ones retrieved with WinDBG.
2021-05-09 17:34:02 +02:00
Hermès Bélusca-Maïto 9e0a3cdf6c
[PEFIXUP] Add support for overriding the attributes of specific PE sections. (#3598)
Use a syntax identical to the one from the EDITBIN tool:
--section:name[=newname][,[[!]{CDEIKOMPRSUW}][A{1248PTSX}]]

https://docs.microsoft.com/en-us/cpp/build/reference/section-editbin?view=msvc-160
2021-05-09 01:39:21 +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
Katayama Hirofumi MZ 941dfd2dee
[INCLUDE][XDK] Add FILE_ATTRIBUTE_VIRTUAL macro into winnt_old.h (#3649)
PR #3642 needs it. CORE-17443
2021-05-08 21:08:34 +09:00
Serge Gautherie 2b52f3bb56 [SDK] wine/typeof.h: Remove duplicate ImeGetRegisterWordStyle line
Fix msbuild amd64
'...\sdk\include\reactos\wine/typeof.h(50,64): error C2059: syntax error: '<parameter-list>' [D:\a\reactos\reactos\build\dll\win32\msxml3\msxml3.vcxproj]'

Addendum to 32072cf (r42469).
2021-05-06 22:09:03 +03:00
Hermès Bélusca-Maïto eb29a33169
[PEFIXUP] Section names are case-sensitive, so we can just use strncmp() instead of the non-standard strncasecmp() for names comparisons. (#3598) 2021-05-05 19:15:02 +02:00
Hermès Bélusca-Maïto ea26767353
[PEFIXUP] Avoid multi-level nesting of code with the error handling done at the very end. Use size_t variables for file sizes. (#3598) 2021-05-05 19:15:01 +02:00
Hermès Bélusca-Maïto 88b933330d
[PEFIXUP] Only recalculate the PE checksum if the image is not from a reproducible build (original checksum == 0). (#3598) 2021-05-05 19:15:01 +02:00
Hermès Bélusca-Maïto 7ad33940c2
[PEFIXUP] Use vfprintf() with the va_args list. (#3598) 2021-05-05 19:14:57 +02:00
Hermès Bélusca-Maïto db089c517e
[PSDK] Remove a buggy GNU-specific "PACKED" attribute in KEY_EVENT_RECORD structure declaration. (#3619)
CORE-17545

No other public header out there (in MS PSDK, MinGW, Wine, etc...) does have
this hack (that was introduced back in the days in r15141 / commit 01df92bc).

Add static assert on KEY_EVENT_RECORD's uChar member to ensure it's properly aligned.

May fix Clang warning:

win32ss/user/winsrv/consrv/lineinput.c:457:62: warning: taking address of packed member 'uChar' of class or structure '_KEY_EVENT_RECORD' may result in an unaligned pointer value [-Waddress-of-packed-member]
            LineInputEdit(Console, (Overstrike ? 1 : 0), 1, &KeyEvent->uChar.UnicodeChar);
                                                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~
and whatnot...
2021-05-05 17:24:12 +02:00
Jérôme Gardou f421bccbcc [NTOS:MM] First shot for Working Set list support
- Initialize
- Add private page (no shared page support yet)
- Remove pages
- Trim

Yes, this is C++ in the kernel.
2021-05-04 12:02:41 +02:00
Jérôme Gardou 5466fc13a3 [NDK] Make kefuncs.h C++ aware 2021-05-04 12:02:41 +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 aa51bcfbcb [CMAKE] Do not use a flag which clang doesn't know 2021-05-03 22:00:57 +02:00
Jérôme Gardou 523912536e [KERNEL32] Sync NLS RC files with wine 6.7
Mostly for having them UTF-8 encoded
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 8aea84dab7 [CRT] Do not define builtin functions if not needed 2021-05-03 22:00:57 +02:00
Jérôme Gardou 7197620b89 [CMAKE] Always use cl to build host tools 2021-05-03 22:00:57 +02:00
Jérôme Gardou 061c7ecb1a [FRAMEDYN] Fix the whole situation with regards to wchar_t
Alias CHSTRING_WCHAR to unsigned short and use inline wrappers
to be able to use the thing with modern compilers

Put the GCC aliases into the public header.

Enable build with clang-cl
2021-05-03 22:00:57 +02:00
Jérôme Gardou a8255233f8 [SPEC2DEF] Fix imports of C++ stdcall exports
Too much mangling mangles it too much
2021-05-03 22:00:57 +02:00
Jérôme Gardou ec68a3311f [CMAKE] Use SEH exceptions for c++ in clang amd64 build 2021-05-03 22:00:57 +02:00
Jérôme Gardou 976c4c10aa [CRT] Fix SEH macros for clang x64 2021-05-03 22:00:57 +02:00
Jérôme Gardou b52ab2493b Revert "[CMAKE] Disable SSE instruction on GCC amd64 builds"
The right fix is to ensure that the stack is properly 16-bit aligned
This reverts commit 63944988a2.
2021-05-03 22:00:57 +02:00
George Bișoc 11a60cebea
[NTOS:PS] Add some data structures
These are needed for API tests. The following structures are taken from Process Hacker.
2021-05-02 21:03:09 +02:00
Serge Gautherie f1689cdcea [PSDK] UnlockResource(): Improve definition
Sync' with
a9e50da352
2021-05-01 09:48:02 +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 2413530acf [SDK] Use GAS SEH capabilities instead of CFI
Also remove a hack for x86 GAS which no longer holds
2021-04-28 13:10:23 +02:00
Jérôme Gardou 63944988a2 [CMAKE] Disable SSE instruction on GCC amd64 builds
Except for user-mode modules
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 37bc01f42b [CMAKE] Introduce a GCC plugin for helping with amd64 SEH implementation
\#pragma REACTOS SEH(except)
\#pragma REACTOS SEH(finally)
What it does is counting the number of SEH __try blocks and emit the proper assembly statements at function prologue
It also checks for mixing C++ & SEH exception handling, which wouldn't work
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 96a2b18903 [PSEH] Make the dummy PSEH at least usable.
Not screwing the code flow when no exception happens would be the least
2021-04-28 13:10:23 +02:00
Jérôme Gardou 955b5c27b1 [CRT] Fix __ll_lshift, __ll_rshift and __ull_rshift intrinsics on gcc-amd64 2021-04-28 13:10:23 +02:00
Jérôme Gardou 97a8953538 [CMAKE:GCC] Enforce file alignment on driver & kernel images 2021-04-28 13:10:23 +02:00
Jérôme Gardou 382426f02e [NDK] Add some missing defines for EFLAGS on amd64 2021-04-28 13:10:23 +02:00
Jérôme Gardou 7513cc9fca [PSDK] Do not compare to max value if we can make sure that the value fits in target type
This fixes clang warning -Wtautological-constant-out-of-range-compare
2021-04-28 13:10:23 +02:00
Jérôme Gardou a4138329a1 [CRT] Add macros to disable diagnostics from GCC and clang
Instead of disabling them globally, this will help making finer grained decisions
2021-04-28 13:10:23 +02:00
Jérôme Gardou 1d1a21a920 [SDK] Make sure we build pefixup with AMD64 definitions 2021-04-28 13:10:23 +02:00
Jérôme Gardou b513c61cd1 [SDK] Fix definition of IMAGE_NT_HEADERS64 in host tools 2021-04-28 13:10:23 +02:00
George Bișoc 44fb528fcc
[NTOS:SE] Implement the NtImpersonateAnonymousToken system call
Implement SepImpersonateAnonymousToken private helpers, which is necessary for the complete implementation of NtImpersonateAnonymousToken function and thus finally we're able to impersonate the anonymous logon token.
2021-04-27 12:25:03 +02:00
Jérôme Gardou 9ef5a7eb7a [CMAKE] Fix compilation with newer windres versions
Also use clang as preprocessor when using it
Also, use *our* headers instead of the platform ones
2021-04-27 11:54:12 +02:00
Jérôme Gardou ba9a7decba [PSDK] Import winuser.rh from wine 6.7 2021-04-27 11:54:12 +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
Serge Gautherie b6493654a3 [CRT] intrin_x86.h: Fix '_InterlockedIncrement64' copypasta
Addendum to bc3a471.
2021-04-27 10:36:54 +03:00
Serge Gautherie c41007624f [CMAKE] config.cmake: Fix 'STEQUAL' typo, in a comment
Addendum to e90b6bb.
2021-04-27 10:36:54 +03:00
Konrad Dybcio d5421d5a3d
[HHPCOMP] Add ARM64/AArch64 types
These were missing... not anymore!

Addendum to 4c7b71ac. CORE-17518

Signed-off-by: Konrad Dybcio <konrad.dybcio@somainline.org>
2021-04-25 21:08:17 +03:00
Katayama Hirofumi MZ 66f6abfc4a
[SDK][INCLUDE] Fix offsetof and CCSIZEOF_STRUCT for Clang-CL build (#3624)
Clang-CL was failing with "error: function declaration cannot have variably modified type". This PR will fix the Clang-CL build. CORE-17547
2021-04-25 13:38:22 +09:00
Serge Gautherie 0dedb9b474
[WINLOGON][MPR][SDK] WNetClearConnections: Fix function parameter type (#3480)
Addendum to 62f79fae93.

Signed-off-by: Serge Gautherie <reactos-git_serge_171003@gautherie.fr>
2021-04-18 21:58:44 +03:00
Victor Perevertkin d10728a645
[CMAKE] Rely less on CMAKE_BUILD_TYPE variable
Having conditional statements with CMAKE_BUILD_TYPE is an antipattern
See https://stackoverflow.com/questions/66079007/having-conditional-statements-on-build-type-variable-a-good-design

We use both single- and multi-config generators (Ninja and VS), so we
can't really rely on CMAKE_BUILD_TYPE, because it's not always set.

This commit alters some conditional flags to use <$CONFIG:...>
generator expression, but is still not complete. Also, our default
optimization level (4) now has what was always a de-facto flags
2021-04-15 06:44:56 +03:00
Victor Perevertkin 72ad37c1cd
[CMAKE] Unify configs for architectures
config*.cmake files are constantly getting out of sync between
each other. Besides that, the parameters are not really dependent
on a target architecture, but rather on a compiler (except *ARCH)

This approach seems to be more future-prone, and allows to see
all the options in one file (there are really not that many of them)
2021-04-15 06:44:52 +03:00
Serge Gautherie 8ddbfdeb57 [BOOTDATA][CMAKE] Sort 2 directories out
winsxs\x86_reactos.newapi_6595b64144ccf1df_1.0.0.0_none_deadbeef:
removed: silently added on 8d30456 and never used.

bin\suppl:
moved: to 60 from 80.
2021-04-12 17:40:18 +02: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
Jérôme Gardou 76a241dea6 [CMAKE] Also set GCC/CLANG variables on amd64 builds 2021-04-09 12:35:30 +02:00
Jérôme Gardou bc3a471413 [CRT] Do not try to implement x86_64 builtins of clang 2021-04-09 10:33:05 +02:00
Jérôme Gardou 83e1afe12a [CMAKE] Do not call clang with unsupported arguments 2021-04-09 10:09:55 +02:00
Victor Perevertkin 6645227270
[PC98VID] Fix a typo, addendum to 959729f6ee 2021-04-09 03:59:55 +03: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
Victor Perevertkin 959729f6ee [PC98VID] Fix clang 12 warning 2021-04-09 03:54:25 +03:00
Victor Perevertkin c7d1ff4a9d [SDK][NDK] Fix clang 12 compilation 2021-04-09 03:51:32 +03:00
Mark Jansen 2587d72ef7 [WINSXS] Add some amd64 manifests
Co-authored-by: Timo Kreuzer <timo.kreuzer@reactos.org>
2021-04-08 20:48:24 +03:00
Jérôme Gardou 6d957d6958 [NDK] Define NX bit in X86PAE PTE struct 2021-04-08 15:40:37 +02:00
Jérôme Gardou 9c4ae0d05e [CMAKE] Honor CMAKE_EXE_LINKER_FLAGS_INIT in GCC build 2021-04-06 19:26:33 +02:00
Serge Gautherie 28dadda8be [CMAKE] Properly generate all Bison and Flex files at build time
This fully reverts 09c4d0a.

Addendum to 5375e33.
CORE-15991
2021-04-03 21:50:08 +03:00
Eric Kohl c449929fef [NTOS:EX] Use RtlCutoverTimeToSystemTime to determine the current time zone id
CORE-14658
2021-04-03 09:38:07 +02:00
Eric Kohl 6b04e46304 [WIDL] Do not transfer an explicit primitive binding handle to the server
This enables us to run WIDL-generated code on Windows XP again.
This patch has already been sent upstream.
2021-03-28 16:20:10 +02: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 8f963c38c6 [SDK:INCLUDE] Cast to type instead of PVOID
For C++ header compatibility
2021-03-24 11:08:40 +01:00
Jérôme Gardou fa74ae571b [XDK] Undefine some defines once they are not needed 2021-03-24 11:07:54 +01:00
Konrad Dybcio 4c7b71ac4f
[HHPCOMP] Add ARM (32-bit) types (#3548)
ARM32 seems to use the same type defines as i386 and friends.
Let's allow the thing to be compiled again!

CORE-17517

Signed-off-by: Konrad Dybcio <konrad.dybcio@somainline.org>
2021-03-24 09:32:11 +03:00
Jérôme Gardou f5bace8536 [CMAKE] Move toolchain specific handling to set_module_type_toolchain
+ style fixes
2021-03-23 11:18:43 +01:00
Jérôme Gardou 5c21460680 [CMAKE] Put .rsrc section after the INIT section on drivers, like link.exe does 2021-03-23 11:18:43 +01:00
Jérôme Gardou e55123a6a2 [CMAKE] Add the kernel module type
Take this as an occasion to use target_link_options more
2021-03-23 11:18:43 +01:00
Jérôme Gardou 812c9e5a11 [CMAKE] Fixup of driver sections in GCC builds
Also introduce a helper variable to list KMode modules
2021-03-23 11:18:43 +01:00
Jérôme Gardou 5489efcb1a [SDK:TOOLS] Add --driver option to pefixup
For now, this adds IMAGE_SCN_MEM_DISCARDABLE to the INIT section, and IMAGE_SCN_MEM_NOT_PAGED to sections which are not named PAGE or .reloc
2021-03-23 11:18:43 +01:00
Jérôme Gardou 56b1baa3dd [CMAKE] Restore using LD linker script with GCC 2021-03-23 11:18:43 +01:00
Jérôme Gardou 6445f33704 [CMAKE] Put INIT section before .reloc and not after.
CORE-14683
2021-03-23 11:18:43 +01:00
Jérôme Gardou 525d19d469 [NDK][XDK] Use decimal literals for MINxxxx defines
Because myLongLong < MINLONG is supposed to behave like you'd expect
2021-03-19 11:04:19 +01:00
Katayama Hirofumi MZ f9b89c9961 [SDK][INCLUDE] msgdump.h: Support RegisterWindowMessage
msgdump.h: Version 18.
2021-03-18 18:41:03 +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
Victor Perevertkin 029accdcf7
[NDK] Change the data structure for PlugPlayControlResetDevice control class
PlugPlayControlResetDevice shares the input structure with several other
control classes.
Source: ProcessHacker sources e9c8121f41/ntpnpapi.h
2021-03-16 03:17:42 +03:00
Katayama Hirofumi MZ 2d066c93fe
[SHELL32] Fix SHBrowseForFolder new UI layout (#3533)
CORE-17507

- Change layout of resource dialogs IDD_BROWSE_FOR_FOLDER_NEW.
- Delete IDC_BROWSE_FOR_FOLDER_FOLDER control.
- Fix focus.
- Add ES_NOHIDESEL style to IDC_BROWSE_FOR_FOLDER_FOLDER_TEXT control.
- Add TVS_SHOWSELALWAYS style to IDC_BROWSE_FOR_FOLDER_TREEVIEW control.
- Fix assertion failure in LayoutUpdate function in <layout.h>.
2021-03-15 07:13:03 +09:00
Katayama Hirofumi MZ e1a5ba188e
[SHELL32] SHBrowseForFolder with BIF_EDITBOX should use new UI (#3532)
CORE-17506

- Convert some judgements against BIF_NEWDIALOGSTYLE to judgements against BIF_USENEWUI. Here BIF_USENEWUI == (BIF_NEWDIALOGSTYLE | BIF_EDITBOX).
- Remove WS_SIZEBOX window style from new UI dialog resource (IDD_BROWSE_FOR_FOLDER_NEW).
- Fix header layout.h for resizing without WS_SIZEBOX.
2021-03-14 18:35:40 +09:00
Katayama Hirofumi MZ ac507691fb [SDK][INCLUDE] layout.h: Use SWP_NOCOPYBITS to refresh controls 2021-03-14 12:28:48 +09: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
Mark Jansen 1952e5b795
Fix some assertions now that they are enabled (#3524)
Fix some assertions, hack out some others (they need more ATL work).
CORE-17505
2021-03-11 07:43:06 +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
Jérôme Gardou 97d4cb6ee0 [CRT] Declare strlen & wcslen as _CRTIMP 2021-03-03 08:34:32 +01:00