Commit graph

1924 commits

Author SHA1 Message Date
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
Jérôme Gardou 49286a6225 [CMAKE] Get rid of add_object_library
It's not needed anymore
2021-03-03 08:34:32 +01:00
Jérôme Gardou c68739e566 [CMAKE] Preprocess the ASM files but let msbuild handle their actual compilation
CORE-17423
2021-03-03 08:34:32 +01:00
Jérôme Gardou 41130ab5c6 [CMAKE] Use ASM_MASM language when building with MSVC toolchain
CORE-17423
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
George Bișoc 6170b574f0
[NTOS:PS] Implement PS_QUOTA_TYPE and let the quota code use it (#3389)
This will replace the PoolIndex variable and as such we'll only be using the PS_QUOTA_TYPE enumeration, as Windows does. Both QuotaEntry, QuotaUsage and QuotaPeak depend explicitly or implicitly on this enumeration. Further details about this enum can be found in the following articles.
https://www.geoffchappell.com/studies/windows/km/ntoskrnl/api/ps/psquota/type.htm?tx=68,143
https://www.geoffchappell.com/studies/windows/km/ntoskrnl/api/ps/psquota/block.htm?tx=68,142,143
https://www.geoffchappell.com/studies/windows/km/ntoskrnl/inc/ps/eprocess/index.htm (see QuotaPeak and QuotaUsage)
2021-03-02 20:09:58 +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 6c100a13c2 [SDK:INCLUDE] Define KTRAP_FRAME_CS 2021-03-02 14:36:46 +01:00
Jérôme Gardou 7fb6030e05 [SDK] Properly put assembly debug info into .debug_frame section
For some reason, the default is to put it into .eh_frame where objcopy & al happily ignore them
2021-03-02 14:36:38 +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
Eric Kohl 1fbb295d4a [LSASRV][SECUR32] Fix the naming mess
Rename Untrusted to TrustredCaller in LSA_CONNECTION_INFO and LSAP_LOGON_CONTEXT in order to clarify the meaning of the variable.
2021-02-28 11:03:33 +01: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
Katayama Hirofumi MZ 6b2e79d067 [SDK][INCLUDE] layout.h: Delete an assertion for window style
WS_SIZEBOX or WS_THICKFRAME. CORE-9281
2021-02-27 22:59:00 +09:00
Katayama Hirofumi MZ c14c9ca0d8 [SDK][INCLUDE] Erase files of incorrect commit
Delete files at mistaken commit:
0efd7b9764

rm sdk/include/host/cmake_install.cmake
rm sdk/include/reactos/buildno.h
rm sdk/include/reactos/version.h
2021-02-25 09:21:13 +09:00
Katayama Hirofumi MZ 0efd7b9764 [SDK][INCLUDE] Strengthen and improve layout.h
- Refreshing STATIC controls.
- In LayoutInit function, if cLayouts parameter was negative, then don't use size grip.
2021-02-25 09:12:47 +09:00
Hervé Poussineau c6730a4a87 [RSYM/x64] Allow binaries without symbol table 2021-02-22 14:42:04 +01:00
Hervé Poussineau 4c930799f1 [RSYM/x64] Make command line compatible with x86 version
x86 version needs input and output file names as arguments, even if is called with
input file name = output file name.
x86 version also accepts a -s argument to the root path of ReactOS sources

Make x64 version take the same arguments.
2021-02-22 14:21:43 +01:00
Hervé Poussineau 77d69c68b8 [OBJ2BIN] Add support for IMAGE_REL_I386_REL16
Also return error in case of unknown relocation type.
2021-02-22 14:21:43 +01:00
Serge Gautherie 7ca16bf696
[PSDK] winbase.h: Update LoadLibraryEx() dwFlags value defines (#3456)
Add another Vista check.
Addendum to 986cc5e.
2021-02-17 00:37:48 +09:00
Eric Kohl 87a4624e20 [WKSSVC][NETAPI32] Implement NetrWkstaGetInfo and get rid of the old NetWkstaGetInfo implementation 2021-02-13 23:19:29 +01:00
Serge Gautherie 986cc5e8e2
[PSDK] winbase.h: Update LoadLibraryEx() dwFlags value defines (#3153)
* Deci-to-Hexa.
* Add more values.
* Add a Vista check.
2021-02-13 23:16:49 +09:00
Mark Jansen 35103558e1
[CMAKE] Fix empty dependencies.graphml being created 2021-02-07 14:02:01 +01:00
Eric Kohl 560b66a2d5 [NET] Remove the NAME, PRINT and SEND options because we will most likely never have a messenger service 2021-02-07 13:45:25 +01:00
George Bișoc dd4c113594
[NTOS:SE] Do not use a global lock for tokens (#3445)
In Windows Server 2003 the lock is initialised on a per-token basis, that is, the lock resource is created in SepDuplicateToken() and SepCreateToken() functions. This ensures that the lock initialisation is done locally for the specific token thus avoiding the need of a global lock.
2021-02-05 12:10:19 +03:00
Jérôme Gardou 236b5f77ab [WINESYNC]: d3dx9 is now in sync with wine-staging wine-6.0-rc5 2021-02-04 16:37:07 +01:00
winesync 0e1975b6aa [WINESYNC] d3dx9_36: Implement ID3DXSkinInfoImpl_UpdateSkinnedMesh.
This patch fixes last problem of bug 32572.

wine-staging patch by Christian Costa <titan.costa@gmail.com>
2021-02-04 16:37:07 +01:00
winesync 489e520163 [WINESYNC] d3dx9_36: Filter out D3DCompile warning messages that are not present with D3DCompileShader. (try 4)
This patch fixes vertex processing issue of bug 33770.

The problem comes from the fact that even if the call succeeds,
the game interprets a non null error_messages pointer as an error.

By calling D3DCompile we use a newer version of the compiler which is more
strict and generates the following warning.
  - warning X3206: 'dot': implicit truncation of vector type
  - warning X3206: implicit truncation of vector type
  - warning X3206: 'mul': implicit truncation of vector type
D3DCompileShader does not generate such warnings.

These is confirmed in the DX SDK release note:
New Warning X3206: Implicit Truncation of Vector Type
Beginning in the August 2009 release of the DirectX SDK, the compiler will warn
when an implicit truncation of a vector type occurs.

The warnings cannot be disable so this patch filters out these strings in D3DCompileShader
and reset the error messages pointer if the resulting buffer is empty.

Try 2:
  - only filter out lines containing "X3206:" in case d3dcompiler_43 has localization

Try 3:
  - use move in place instead of copying the buffer

Try 4:
  - filter simplification by Sebastian and remove 'mul' testing left-out in search string

wine-staging patch by Christian Costa <titan.costa@gmail.com>
2021-02-04 16:37:07 +01:00
winesync 7a7364d0ad [WINESYNC] d3dx9_36: Improve D3DXSaveTextureToFile to save simple texture to dds file.
wine-staging patch by Christian Costa <titan.costa@gmail.com>
2021-02-04 16:37:07 +01:00