3831 Commits
Author SHA1 Message Date
Hermès Bélusca-Maïto e05e6c4849 [NTOS:KE][NDK] Minor enhancements to the KeFindConfiguration*Entry() routines (#8720)
- Update the SAL annotations;
- Simplify some while-loops into for-loops.
2026-03-22 20:15:50 +01:00
Hermès Bélusca-Maïto 3ac86990e3 [SDK:DELAYIMP] Simplify code following commit 5840b212a8 (#7784)
CORE-10935

Addendum to commit 5840b212a8, as well as to
commits 91d86a9a91 (r71190) and e5904542d6 (PR #377).
2026-03-22 17:56:48 +01:00
Eric Kohl c364fe7fb1 [SDK][UUID] Add notification object interfaces
Add INetCfgComponentNotifyBinding, INetCfgComponentNotifyGlobal and INetCfgComponentSetup.
2026-03-22 15:04:48 +01:00
Hermès Bélusca-Maïto 912c8ad987 [KDGDB] Don't make GDB a separate citizen (#5187)
But add KDGDB compilation only for x86 and x64, since for other
architectures (e.g. ARM) it currently emits the following error:
```
drivers/base/kdgdb/kdgdb.h(149): fatal error C1189: #error:
    "Please define relevant macros for your architecture"
```

For the time being, keep the "GDB" build configuration macro, used for
Gitpod testing... but this needs to be replaced with a more robust solution.
Because of this, rename kdgdb.dll to kdcom.dll, and kdcom.dll to kdser.dll
so that GDB is used by default, and we don't get a file name clash too.

Revert also commit 57cf5cdc5d.
2026-03-21 22:46:58 +01:00
Timo Kreuzer 7cc4459d3c [SDK] wine/test.h: reduce diff to wine-10.0 (#8710)
* test.h: remove obsolete wine specific definitions - __winetest_cdecl, __winetest_va_* aren't used anymore
* Add missing winetest_ prefixes
* Rename winetest_get_thread_data
* Update global variables
* Move winetest_thread_data
* Make winetest_get_thread_data extern
* [ISAPNP_UNITTEST] Use static inline instead of FORCEINLINE (GCC complains when a non-static inine function calls a static inline function)
* Move winetest_win_skip and make it static
* Move winetest_start_todo and make it static inline
* Move winetest_start_todo and make it static inline
* Move winetest_get_failures and winetest_add_failures and make them static
* Add winetest_print_lock and winetest_print_unlock
* Add winetest_get_time and winetest_elapsed
* Add flaky support
* Add exc_filter and running_under_wine
* Move reactos specific things together
2026-03-20 20:02:12 +00:00
Ahmed Arif 1c2b5a1a8e [SEH][GCC] Prevent inlining of functions using REACTOS seh pragma 2026-03-20 14:57:40 +02:00
Ahmed ARIF 094d06eb26 [ASMPP] Fix .text exporting for MASM .code blocks 2026-03-20 13:50:03 +02:00
Hermès Bélusca-Maïto b1a31610ac [FREELDR][KDCOM][KDGDB] Remove deprecated "IRQ" debugger command-line option
- The "IRQ" debugger option was introduced in commit 5a6adb4f13 (r2546).
  It was used by the in-kernel GDB stub, to manually wire an interrupt
  handler `GspBreakIn()` to allow the debugger to break into the system
  when a command is received on the GDB serial port.

  Side-remark:
  The hooking was done via `HalGetInterruptVector()` + `IoConnectInterrupt()`,
  but only at phase 1 initialization when the memory manager was up, which
  can be "late" enough during system boot initialization.
  Instead of using `IoConnectInterrupt()`, one could have used explicit
  `KeInitializeInterrupt()` + `KeConnectInterrupt()` calls that would
  have worked much earlier in the boot stage.

- This functionality was soon after disabled in commit c804ca06be (r2946)
  in the GDB stub (see `ntoskrnl/kd/gdbstub.c!KdGdbStubInit()`), never
  to be re-enabled again.
  It was removed completely in commit e160c0fb26 (r14799).

- Since ReactOS was (until recently) always debugged locally using the
  in-kernel KDBG debugger, break-in was done with TAB-K keypress,
  intercepted by the keyboard driver that triggered a `DbgBreakPoint()`,
  thus no break-in via serial port interrupt was necessary.

- Remote debugger break-in detection, which is the standard method that
  is used when remote-debugging using KD transport DLLs and WinDbg, was
  introduced in commit 12e7593f24 (r25984). As with the rest of debugger
  communication and as done on Windows, detection is done by polling the
  serial port at certain times, namely in the `KeUpdateSystemTime()`
  kernel procedure periodically invoked by the timer interrupt.
  This break-in detection was then erroneously removed in commit bf8b9467dc
  (r45140), and reinstated in commit 014b23b9a (r56194).

- Parsing of this "IRQ" option was copy-pasted in other modules (FreeLoader,
  KDCOM, and KDGDB), even though it was never used. The parsing was then
  removed in KDBG itself in commit 95faf65ebf, but left in the other
  modules... until now!
2026-03-19 21:52:14 +01:00
Hermès Bélusca-Maïto 530a48ce89 [CMAKE] Add the BCD hive only on EFI-compatible platforms
This excludes NEC PC-98 and Xbox.

CORE-16216, CORE-17977
2026-03-18 20:47:53 +01:00
Timo Kreuzer d31b043fff [VCRUNTIME] comutil.h: Remove redundant _variant_t::operator VARIANT()
_variant_t inherits from tagVARIANT aka VARIANT and C++ will always prioritize the built-in conversion to the base class over the use of a user-defined conversion operator.

Fixes GCC 13 warning:

In file included from C:/ReactOS/reactos/sdk/include/vcruntime/comdef.h:19,
                 from C:/ReactOS/reactos/sdk/lib/comsupp/comsupp.cpp:16:
C:/ReactOS/reactos/sdk/include/vcruntime/comutil.h:423:3: error: converting '_variant_t' to a base class 'VARIANT' {aka 'tagVARIANT'} will never use a type conversion operator [-Werror=class-conversion]
  423 |   operator VARIANT() const throw();
      |   ^~~~~~~~
2026-03-18 17:29:12 +02:00
Timo Kreuzer ddf58eb2f8 [VFATLIB] Add packing to LFN_ENT structure
The structure is packed in the original dosfstools code, too.

Fixes GCC 13 warning:

C:/ReactOS/reactos/sdk/lib/fslib/vfatlib/check/lfn.c: In function 'lfn_add_slot':
C:/ReactOS/reactos/sdk/lib/fslib/vfatlib/check/lfn.c:208:5: warning: converting a packed 'DIR_ENT' pointer (alignment 1) to a 'LFN_ENT' pointer (alignment 2) may result in an unaligned pointer value [-Waddress-of-packed-member]
  208 |     LFN_ENT *lfn = (LFN_ENT *) de;
      |     ^~~~~~~
In file included from C:/ReactOS/reactos/sdk/lib/fslib/vfatlib/check/dosfsck.h:8,
                 from C:/ReactOS/reactos/sdk/lib/fslib/vfatlib/vfatlib.h:25,
                 from C:/ReactOS/reactos/sdk/lib/fslib/vfatlib/check/lfn.c:24:
C:/ReactOS/reactos/sdk/lib/fslib/vfatlib/check/fsck.fat.h:165:9: note: defined here
  165 | typedef struct {
      |         ^~~~~~
C:/ReactOS/reactos/sdk/lib/fslib/vfatlib/check/lfn.c:29:9: note: defined here
   29 | typedef struct {
      |         ^~~~~~
2026-03-18 17:29:12 +02:00
Timo Kreuzer 0b80033e5a [CMAKE] gcc.cmake: Disable GCC 13 nonnull-compare warnings 2026-03-18 17:29:12 +02:00
Timo Kreuzer cd55e25141 [CMAKE] Disable some GCC 13 builtins
These have conflicting prototypes that don't match the Windows ones.

Fixes GCC 13 warnings:

In file included from C:/ReactOS/reactos/modules/rostests/winetests/ucrtbase/thread.c:21:
C:/ReactOS/reactos/sdk/include/ucrt/process.h:281:35: error: conflicting types for built-in function 'execv'; expected 'int(const char *, char * const*)' [-Werror=builtin-declaration-mismatch]
  281 |         _DCRTIMP intptr_t __cdecl execv(
      |                                   ^~~~~
C:/ReactOS/reactos/sdk/include/ucrt/process.h:287:35: error: conflicting types for built-in function 'execve'; expected 'int(const char *, char * const*, char * const*)' [-Werror=builtin-declaration-mismatch]
  287 |         _DCRTIMP intptr_t __cdecl execve(
      |                                   ^~~~~~
C:/ReactOS/reactos/sdk/include/ucrt/process.h:294:35: error: conflicting types for built-in function 'execvp'; expected 'int(const char *, char * const*)' [-Werror=builtin-declaration-mismatch]
  294 |         _DCRTIMP intptr_t __cdecl execvp(
      |                                   ^~~~~~
2026-03-18 17:29:12 +02:00
Timo Kreuzer cf6dbef20a [CMAKE] gcc.cmake: Move all warning options into the same place 2026-03-18 17:29:12 +02:00
Timo Kreuzer 1453bd8946 [CMAKE] Remove Clang specific option from GCC command line
-Wno-unknown-warning-option is Clang specific and causes extra warnings on later GCC versions, when at least one warning is shown.
2026-03-18 17:29:12 +02:00
Timo Kreuzer deb89436bc [STDC++COMPAT] Add rand_s for GCC 13 and pre-NT6 builds
GCC 13 STL requires this.
2026-03-18 17:29:12 +02:00
Ahmed Arif ff6bd79221 [PSEH] Fix x64 ABI compliance and register clobbering in exception filters (#8700)
pseh2_64 relied on inline-asm clobbers across a C/asm funclet jump, which is not a reliable ABI boundary.
On AMD64 gcc path, this can corrupt non-volatile state during exception filtering/unwind.

This change makes the trampoline ABI-safe by explicitly preserving and restoring non-volatile registers and keeping unwind metadata/prologue consistent.

Changes:
- Save/restore rbx, rdi, rsi, r12-r15 in `__seh2_global_filter_func`.
- Adjust stack allocation/unwind annotation to match the new prologue/epilogue.
- Keep filter return in eax and jump back through `__seh2_global_filter_func_exit`.

Note: This is exception-only path: extra stack usage is acceptable for correctness.

How to test: Build and run ReactOS with gcc 13/15; you should no longer see stack exhaustion.
2026-03-17 22:42:37 +01:00
Hermès Bélusca-Maïto 3012af5e30 [CPORTLIB][FREELDR][KD][NTOS] Move duplicated UART settings into a common header 2026-03-16 16:18:43 +01:00
Dmitry Borisov 73413d4ca3 [OBJ2BIN] Use section flags instead of a hardcoded ".text" name (#5317)
A 32-bit ASM file can turn into an empty binary file in certain cases (compiled with MSVC).
MASM/ML produces a ".text$mn" section instead of the ".text", which makes obj2bin generate an empty binary file.

The problem didn't occur with our 16-bit artifacts (16-bit stubs, bootsectors...), because their object files all have similar sections pattern: the ".text" section and empty ".text$mn" section, which didn't matter since it is empty.
On the contrary, the .text$mn section(s) aren't empty for 32-bit stubs.
2026-03-16 13:19:54 +01:00
Dmitry BorisovandHermès Bélusca-Maïto aabd163d73 [CPORTLIB:PC98] Refactor serial support code (#8558)
CORE-17977

- Fix a bug when subsequent port detection attempts fail because of
  broken FIFO management. If FIFO logic is enabled the hardware will
  not decode the legacy 0x30 and 0x32 I/O ports.
  Therefore care should be taken when accessing these ports.

- Fix hang on boot when a serial device was not connected to the COM1 port.
  Unlike 16550, a call to `CpDoesPortExist()` for the 8251 will succeed
  even when if the user has not plug the serial port into PC-98 machine.
  (I do not know how to put the 8251 into loopback mode.)
  Fix this by checking for CTS prior to the LSR loop.

- Fix hang on boot when the chosen baud rate becomes too large due to
  `DEFAULT_DEBUG_BAUD_RATE` being set to 115200.

- Some NP21/W workarounds were being incorrectly applied,
  fix them and consolidate them into one check.

- Reuse exsisting code from the NS16550 driver to avoid code duplication.

- Rename HW definitions for better naming.

Co-authored-by: Hermès Bélusca-Maïto <[email protected]>
2026-03-15 22:56:14 +01:00
Hermès Bélusca-Maïto dabc74d468 [CPORTLIB] Split cport.c into the NS16550-specific routines and the rest
Preparing the way for a future library refactoring, along the way of the
one in Windows, which has been updated in Windows 10 and is now documented:
https://learn.microsoft.com/en-us/windows-hardware/drivers/ddi/uart/
2026-03-15 22:48:25 +01:00
Hermès Bélusca-Maïto a204d174f0 [CPORTLIB] Prepare splitting cport.c into the NS16550-specific routines and the rest 2026-03-15 22:23:28 +01:00
Carl J. Bialorucki 6efe017a3a [INCLUDE/PSDK][INCLUDE/WINE] Header changes needed for user32 winetest sync
- psdk/mmsystem.h: Add a #ifndef guard around SC_SCREENSAVE, MS public headers have the same guard
- psdk/ole2.h: Add guards around CreateDataAdviseHolder that are similar to the guards used in MS public headers
- psdk/winuser.h: Add missing defines, use DWORD and LONG casts to fix test failures on x64. These same casts exist in MS public headers
- wine/test.h: Add defines for winetest_platform_is_wine, flaky, and flaky_wine. The flaky definitions depend on flaky_if, which is a stub that does nothing.
2026-03-13 18:32:47 -05:00
Mikhail Tyukin c47733ab1c [WINTRUST] Sync to wine-10.0 (#8388)
- Sync wintrust and tests to wine-10.0
2026-03-13 18:30:43 -05:00
Mikhail Tyukin 374207770d [FECLIENT] Import from Wine-10.0 (#8301)
* [LIBWINE] add dll_canunload library

* [FECLIENT] Import from Wine-10.0
2026-03-13 16:05:55 -07:00
Katayama Hirofumi MZ e6328fbf1e [NTGDI][FREETYPE][SDK] Rewrite NtGdiGetCharABCWidthsW (#8704)
Refactor and improve readability.
JIRA issue: CORE-20505
- Add GreGetCharABCWidthsW helper function.
- Rewrite NtGdiGetCharABCWidthsW by using
  GreGetCharABCWidthsW.
2026-03-13 18:24:26 +09:00
Adam Słaboń 8a2864dd11 [SDK] Update HAL private dispatch table definitions to Windows 10 November 2015 Update (#8235)
Mostly based on the information on Geoff Chappell's website, Vergilius Project and WDK 10.0.10586.0
2026-03-08 19:04:17 +01:00
Hermès Bélusca-Maïto 9bf854455c [SDK:XDK] extypes.h: Update WORK_QUEUE_TYPE with Win8+ values (#8651) 2026-03-08 18:30:24 +01:00
Hermès Bélusca-Maïto 94a840c9b5 [SDK:NDK] cmtypes.h: Add few missing CM_RESOURCE_* defines, present in the XDK (#8651) 2026-03-08 18:30:14 +01:00
Hermès Bélusca-Maïto 1de8b4f0ce [DDK][VIDEOPRT] VideoPortDebugPrint(): Fix the debug filter being used; update SAL annotations (#8718)
- Use the `DPFLTR_VIDEO_ID` debug filter ID, which is the same as what
  Windows' videoprt.sys uses, so that tools and people who debug can
  easily interoperate between the two.
  Addendum to commits 11c95f7b5d (r19801) and 5b799176ba (r31477).

- Use SAL2 annotations.
2026-03-08 15:25:09 +01:00
Eric Kohl 3f9f0e2a96 [PSDK][DHCSCSVC][IPCONFIG] Add DhcpHandlePnpEvent stub and use it in ipconfig
Ipconfig uses DhcpHandlePnpEvent to notify the dhcp client of a changed class id.
2026-03-08 12:22:47 +01:00
Carl J. Bialorucki c9e73b6a77 [INCLUDE/WINE] Don't use DECLSPEC_IMPORT on ntsecapi.h
- Define WINADVAPI to nothing in Wine ntsecapi.h so MSVCRT can build on GCC.
2026-03-03 22:07:59 -06:00
Carl J. Bialorucki 391875028d [INCLUDE/WINE][PSDK][XDK] Header changes needed for advapi32 winetest sync to wine-10.0
- [INCLUDE/WINE] Import ntlsa.h, ntsecapi.h, winsvc.h from wine-10.0
- [PSDK] Fix some header definitions to make them more accurate to Microsoft's headers and add some missing definitions
- [XDK] Add a fix for PROCESS_ALL_ACCESS on Vista+ (matches Microsoft's headers)
- [COMDLG32] Remove unneeded _WIN32_WINNT bump after fixing headers
- [SETUPAPI] Remove duplicate definitions that are no longer needed after fixing headers
2026-03-03 22:07:59 -06:00
Stanislav Motylkov e2cf0bf53a [SDK] Fix build. Addendum to 391f7cae5b (#8565)
../src/sdk/include/reactos/x86x64/Intel/Cpuid.h:1585:15: error: duplicate member 'Reserved'
2026-03-03 00:04:27 +03:00
Peter Eik 391f7cae5b [SDK] Add some more AVX-512 definitions (#8565)
Add some more Intel AVX-512 extension definitions to the SDK,
as I saw several newer ones were missing. No functionality or purpose yet.

Should be useful for implementing full support in the future.

Reference: Intel Instruction Extensions Set Programming guide,
starting from page 24: https://cdrdv2.intel.com/v1/dl/getContent/671368
2026-03-02 23:52:32 +03:00
Sylas Hollander 1d3f99a87a [FREELDR:UEFI] Add support for Apple Graphics Info Protocol (#8706)
Intel Macs released before late 2008/early 2009 are missing the UEFI GOP,
resulting in a frozen/white screen when booting FreeLoader.

These Macs only have the UGA protocol, which does not support direct
framebuffer access, and Apple's proprietary Graphics Info Protocol
(sometimes also called Screen Info Protocol) which can be used
to get all the graphics information we need.

CORE-11954
2026-03-02 23:22:37 +03:00
Ahmed Arif 08e57f6bc2 [CRT/GCC] Fix infinite recursion in memset/memcpy/memmove at -O2 2026-03-02 20:14:06 +02:00
Mikhail Tyukinandbuddyjojo 3518663767 [COMBASE][COML2] Sync to wine-10.0
Co-Authored-By: buddyjojo <[email protected]>
2026-03-01 10:38:42 +02:00
Mikhail Tyukin 6cf5d73269 [WINESYNC] Update files 2026-03-01 10:38:42 +02:00
Timo Kreuzer 1f97ad1f93 [RTL] Sync actctx.c to wine 10.0 2026-03-01 10:38:42 +02:00
Mikhail Tyukin c494cc2822 [PSDK] update some headers from wine-10.0 2026-03-01 10:38:42 +02:00
Katayama Hirofumi MZ 80bd460836 [SDK][KBSWITCH][CONIME][IMM32][NTUSER][MSCTFIME][MSUTB] Define LANGID_... (#8691)
Follow-up of #8678. Commonize the definition of
LANGID_... values.
JIRA issue: CORE-20243
- Define LANGID_... values for CJK in <cjkcode.h> and
  use it.
2026-02-27 10:02:23 +09:00
Katayama Hirofumi MZ 0c4091cd04 [FREETYPE][NTGDI] Update FreeType from 2.10.0 to 2.10.4 (#8671)
Modernize modules.
JIRA issue: CORE-17390
- Update FreeType to 2.10.4.
- Delete ChangeLog.
- Delete sdk/lib/3rdparty/freetype/src/gxvalid
  (useless for us).
- Delete sdk/lib/3rdparty/freetype/src/otvalid
  (useless for us).
- Keep ReactOS hacks on FreeType.
- Adapt ntgdi/freetype.c to new FreeType.
2026-02-26 09:32:57 +09:00
Katayama Hirofumi MZ 423d7031fe [CONIME][BOOTDATA][GITHUB][SDK] Add conime.exe (#8678)
Prepare for Console IME Input for East Asian.
JIRA issue: CORE-20243
- Modify .github/labeler.yml.
- Add base/system/conime/ .
- Modify boot/bootdata/hivesft.inf for Console
  settings.
- Add imm32!ImmCallImeConsoleIME prototype
  into <imm32_undoc.h>.
- Add IMS_CONSOLEIME_1A and IMS_CONSOLEIME_1B
  values into <imm32_undoc.h>, for WM_IME_SYSTEM
  message.
2026-02-26 09:28:22 +09:00
Timo Kreuzer de7e707459 [CRT] Remove obsolete CRT files 2026-02-17 17:52:19 +02:00
Timo Kreuzer f417a522c6 [CRT][MSVCRT] Remove chkesp library
_chkesp is already part of vcruntime library.
2026-02-17 17:52:19 +02:00
Oleg Dubinskiy 4e72ec8358 [DDK] Add/update some missing definitions
CORE-15350, CORE-18776
2026-02-16 15:18:26 +01:00
Mark Jansen 23c4ed174f [ACGENRAL] Add shim for msys2 hacks
See CORE-20159 for details
2026-02-15 20:12:39 +01:00
Katayama Hirofumi MZ 6af07a31b0 [FONTEXT][SHELL32][SDK] Support delete operation (#8639)
Improve usability of Fonts folder.
JIRA issue: CORE-17311
- Modify PIDL design to contain
  name and filename.
- Implement CFontExt::
  ParseDisplayName to parsing
  name as PIDL.
- Modify CDefaultContextMenu::
  GetCommandString and
  CDefaultContextMenu::
  DoCopyOrCut for DFM_GETVERBA,
  DFM_GETVERBW, DFM_CMD_COPY,
  and DFM_CMD_MOVE.
- Add IDS_CONFIRM_DELETE_FONT,
  IDS_CANTDELETEFONT, and
  IDS_PROPERTIES resource strings.
- Add SHMultiFileProperties
  prototype to <shlobj.h>.
2026-02-13 18:37:06 +09:00
Justin Miller 5213cf717c [BOOT][ENVIRON] Remove Environ (#8667)
* [SDK][BOOT] Reimport the EDK2 headers

* [ENVIRON] Remove Environ
2026-02-11 14:01:16 -08:00