Commit Graph
89080 Commits
Author SHA1 Message Date
Hermès Bélusca-Maïto ea90485339 [FREELDR:XBOX/UEFI] No need for a specific ScrollUp routine, just call the VidFb one (#8509)
And use the console `CurrentAttr` for screen filling, instead of
hardcoding it to white-on-black.
2025-12-19 13:21:49 +01:00
Hermès Bélusca-Maïto d1445c8e69 [FREELDR:XBOX/UEFI] Unify the XBOX and UEFI linear framebuffer support together (#8509)
CORE-11954, CORE-16216

Here only moving and adjusting existing code has been done.
In the future, this code will be expanded to support other bits-per-pixel
formats and pixel bitmasks, available in UEFI platforms, and be used to
handle bios-based PC VESA framebuffer.
2025-12-19 13:21:23 +01:00
Hermès Bélusca-Maïto 9e64fa837d [FREELDR:XBOX] Fix compilation dependencies and linking for the XBOX build (#8510)
CORE-16216

machpc.c:
- Surround more PC-specific routines in `#if !defined(SARCH_XBOX)`,
  so that they aren't compiled for XBOX.

- In particular since commit 246f2d29db (PR #8418), the PC-specific
  `DiskGetConfigType()` was compiled at the same time as the XBOX one.
  This is now fixed.

machxbox.c
- Add a dummy `ChainLoadBiosBootSectorCode()` to make freeldr exports working.

xboxdisk.c
- Minimal Disk I/O error support routines.
- Add a dummy `DiskResetController()`, invoked in pchw.c
- Add a dummy `DiskStopFloppyMotor()`, needed for entry.S/linux.S

miscboot.c
- Still compile `LoadAndBootSector()` (avoids lots of changes elsewhere),
  but display an error message if it's run, and directly return with an error.

pcat.cmake
- Remove unnecessary dependencies on pcdisk.c and pcvesa.c
2025-12-19 12:15:02 +01:00
Hermès Bélusca-Maïto f7aa25044e [FREELDR:PC] pcvideo.c!PcVideoSetMode(): deduplicate VESA mode setting code (#8508)
Group VESA text/graphics modes setting together.
2025-12-18 16:40:44 +01:00
Hermès Bélusca-Maïto b050a4544e [FREELDR:PC] Add a mechanism to retrieve the initial video mode on startup (#8506)
This allows FreeLoader to know which initial video mode it has been
started with (e.g. if chainloaded from another bootloader that has
set the display to something different from 80x25 text mode), and,
either update its internal state and use the video mode if supported,
or, fall back to a known supported video mode (80x25 text).
2025-12-18 16:36:05 +01:00
Hermès Bélusca-Maïto e04838086a [FREELDR:PC] pcvideo.c: Move PcVideoVesaGetSVGAModeInformation() and PcVideoSetBiosVesaMode() at the top
Will be used in the next commit.
2025-12-18 16:35:55 +01:00
Adam Słaboń afbadf5c44 [NTOS:MM][KMTESTS] MmMapViewOfSection: Handle PAGE_NOCACHE and PAGE_WRITECOMBINE flags (#8502)
- Remove the hack for PAGE_NOCACHE flag that was introduced in commits aa52dc7498 (r68611) and 33d53d44da (r68612) for CORE-9808. The test case for PAGE_NOCACHE, introduced in 7346aece52 (r68351), did not expose any additional problems without it anymore.
- Allow a PAGE_WRITECOMBINE flag. Fixes a regression introduced in 59ae6b3e15 (CORE-20298) that caused the OpenGL ICD in Nvidia 78.05 driver to not use GPU hardware to accelerate OpenGL anymore (reported and tested by winterhell on Discord).
- Add a test case for MmMapViewOfSection with PAGE_WRITECOMBINE. The test passes on Windows 2003 SP2 and Vista RTM.
- Fix ASSERTs in MI_MAKE_HARDWARE_PTE functions.
2025-12-18 12:30:40 +03:00
Timo Kreuzer c6c38551aa [LPK] Rewrite LPK_ApplyMirroring
Don't use version.dll APIs! This code runs during DLL process attach and all it can call is ntdll and kernel32.
There is still a hack, that calls GetFileVersionInfoSizeW, which is required for some reason, otherwise comctl32_winetest tooltips starts to fail.
It has possibly something to do with the initialization order of loaded DLLs.
2025-12-18 11:00:06 +02:00
Hermès Bélusca-Maïto 617f3bddfa [FREELDR:PC] Cache the type of video card installed on the system (#8505)
Cache the type when initializing the video, instead of invoking every time
`PcVideoDetectVideoCard()`. Indeed, the video card is not going to change
magically at runtime by the user :D
2025-12-17 13:08:43 +01:00
Hermès Bélusca-Maïto 0ffed7fd1e [FREELDR:PC] pccons.c, pcvesa.c, pcvideo.c: Reformatting (#8504) 2025-12-17 13:04:58 +01:00
Eric Kohl 5047e62e3d [DISKPART] Implement the gpt command keep the partition number up to date 2025-12-16 23:55:20 +01:00
Eric Kohl ccfb061a2b [DISKPART] list partition: Show a message when there are no partitions on a disk 2025-12-15 20:36:51 +01:00
Eric Kohl 182715ed50 [DISKPART] Prevent EFI- and MSR-Partitions from accidental deletion 2025-12-15 20:11:59 +01:00
Eric Kohl bf8741d208 [DISKPART] Implement the 'create partition efi' and 'create partition msr' commands 2025-12-14 20:23:03 +01:00
Eric Kohl 74999e6670 [DISKPART] Replace some magic values and enter the Terabyte era 2025-12-14 18:19:26 +01:00
Eric Kohl 48fbf273fb [DISKPART] Calculate the free disk space for the 'list disk' command 2025-12-14 13:00:53 +01:00
Hermès Bélusca-Maïto fa5cf28166 [FREELDR] Add a vgafont.h header (#8498)
It contains the symbols & macros used for the embedded VGA font.

- Adjust users to use `const UCHAR*` instead of `PUCHAR` pointer;
- pc98video.c: Capture the current `FontPtr[Line]` into an `UCHAR`,
  so as to safely modify it.
2025-12-13 20:19:05 +01:00
Hermès Bélusca-Maïto e700c2548b [FREELDR] Remove unused stuff in pccons.c and uefimem.c (#8498) 2025-12-13 19:50:59 +01:00
Hermès Bélusca-Maïto 19b9b0b995 [FREELDR:PC] pcvideo.c: Fix two regression bugs (#8498)
- `PcVideoDetectVideoCard()`: Fix the call to Int 10h AX=1A00h.
  A 23-year old regression from commit 425bbb1543 (r3782), introduced
  by a copy-pasta error when converting video code from ASM to C.

- `PcVideoSetMode80x50_80x43()`: Fix setting the 80x50 VGA text-mode,
  which _is_ based on the 80x25 text-mode BIOS 0x03, see e.g.
  https://github.com/torvalds/linux/blob/c2f2b01b74be8b40a2173372bcd770723f87e7b2/arch/x86/boot/video-vga.c
  A 18-year old regression from commit 1b3e649577 (r25751), where the
  correct mode 0x03 was replaced by a VGA graphics mode 0x12, whereas
  the intent in this commit was to only switch to mode 0x12 only in
  `PcVideoPrepareForReactOS()` -- this was because at that time, bootvid
  and hal didn't support changing the video mode to what they needed.
  This has been fixed since.
2025-12-13 19:50:58 +01:00
Hermès Bélusca-Maïto c554298b8d [FREELDR] VideoSetDisplayMode(): Make DisplayMode a PCSTR parameter (#8498) 2025-12-13 19:50:57 +01:00
Hermès Bélusca-Maïto e13839699a [FREELDR:PC98] Use RtlMoveMemory() when scrolling up text in video (#8498) 2025-12-13 19:50:56 +01:00
Eric Kohl 363aa21a54 [PSDK] Add missing GPT partition attributes 2025-12-13 18:55:24 +01:00
Eric Kohl f206063280 [DISKPART] Implement creation and deletion of GPT partitions
- Implement creation and deletion of GPT partitions.
- Adjust the active, clean, detail, inactive, list, select, setid and uniqueid
  commands as needed.
- Add a 2^32 sector count limit for MBR partition tables.
2025-12-13 18:42:00 +01:00
Timo Kreuzer 1a173646d6 [CRYPT32] Sync CertGetNameStringA with wine-10.0
Fixes buffer underrun in crypt32_winetest str
2025-12-12 12:21:53 +02:00
Timo Kreuzer bd9a83b92f [SHLWAPI_APITEST] Fix interface pointer type mismatch
If you query an IPropertyBag2, then your object pointer better be an IPropertyBag2*!
Fixes RTC failure with WinDbg on x86.
2025-12-12 12:21:53 +02:00
Timo Kreuzer 936c0e70e8 [KERNEL32_VISTA] Export hack for GetSystemTimePreciseAsFileTime 2025-12-12 12:21:53 +02:00
Timo Kreuzer 6da82e1c18 [WINE] winternl.h: Add VerifyConsoleIoHandle 2025-12-12 12:21:53 +02:00
Timo Kreuzer 87502c1082 [XDK] winnt_old.h: Fix definition of __WINE_MALLOC / __WINE_DEALLOC
This is to prevent redefinition warnings when including wine's corecrt.h
The additional !defined(malloc) prevents errors when compiling libwine, which defines malloc to libwine_malloc.
2025-12-12 12:21:53 +02:00
Timo Kreuzer 629e844eca [HOSTNAME] Use wprintf instead of _cwprintf
_cwprintf always prints to the console and the output is not forwarded like stdout. Fixes "hostname > hostname.txt" and ws2_32:gethostname test.
2025-12-12 12:21:53 +02:00
Timo Kreuzer 2b1e733a3c [CRT_APITEST] Fix strlen test on x86
The code called winetest_setlocation, which calls strrchr, which clears the direction flag, so the test was succeeding on x86, even though strlen never changes it. On Windows it somehow depends on whether you compile the test on the command line or inside VS.
This change fixes the test by explicitly reading eflags before using winetest_ok and placing a MemoryBarrier in between.
2025-12-12 12:21:53 +02:00
Timo Kreuzer 30ef8f3a74 [UCRTBASE_APITEST] Add wctomb test 2025-12-12 12:21:53 +02:00
Timo Kreuzer 99aabc5981 [CRT] Fix __call_atexit
This prevents a first chance exception on process cleanup.
2025-12-12 12:21:53 +02:00
Timo Kreuzer eba2bbd177 [CRT] Remove ftol2_sse 2025-12-12 12:21:53 +02:00
Timo Kreuzer 9c66d9eaba [MSVCRTEX] Add ftol2_asm
It already contains ftoul2_legacy_asm. Do it like this instead of having to link ftol2 lib.
2025-12-12 12:21:53 +02:00
Timo Kreuzer f20c09fcd6 [LIBCNTPR] Implement NT versions of _strlwr, _strupr, _wcslwr, _wcsupr 2025-12-10 09:55:30 +02:00
Timo Kreuzer c108de8094 [CRT_APITEST] Implement tests for _strlwr, _strupr, _wcslwr, _wcsupr 2025-12-10 09:55:30 +02:00
Timo Kreuzer abfaf2e75f [LIBCNTPR] Implement NT version of _wcsicmp / _wcsnicmp
Passes all ntdll wine tests.
2025-12-10 09:55:30 +02:00
Timo Kreuzer ae3eb6cb36 [CRT_APITEST] Implement tests for _wcsicmp and _wcsnicmp 2025-12-10 09:55:30 +02:00
Timo Kreuzer 7872c0d391 [LIBCNTPR] Implement NT versions of _stricmp and _strnicmp 2025-12-10 09:55:30 +02:00
Timo Kreuzer ac63cef38b [CRT_APITEST] Implement tests for _stricmp and _strnicmp 2025-12-10 09:55:30 +02:00
Timo Kreuzer 0dea0cfa01 [LIBCNTPR] Implement NT version of _invalid_parameter 2025-12-10 09:55:30 +02:00
Timo Kreuzer 090129bb1d [LIBCNTPR] Implement NT version of iswctype
Passes all ntdll wine tests.
2025-12-10 09:55:30 +02:00
Timo Kreuzer 5cbb2c9a4c [LIBCNTPR] Implement multibyte NT version of toupper
Windows ntdll and ntoskrnl export a multibyte capable version of toupper (not tolower though!)
The internal version is kept as it is, because the multibyte version requires unicode tables to be set up and doesn't support IRQL > APC_LEVEL.

Why though would toupper (but not tolower) support raw, undecoded multibyte characters, you might ask. Well I don't know, but someone at MS must have decided that this is a good idea, and winetests show this is how it behaves.
2025-12-10 09:55:30 +02:00
Timo Kreuzer 36696585ae [LIBCNTPR] Implement NT version of tolower 2025-12-10 09:55:30 +02:00
Timo Kreuzer 080ac7bd97 [LIBCNTPR] Implement NT version of towupper 2025-12-10 09:55:30 +02:00
Timo Kreuzer ba14c5f390 [KERNEL32] Use wine case mapping instead of ntdll
Previously tolowerW/toupperW was defined to towlower/towupper, which was imported from ntdll. These functions don't work correctly though. Instead use wine's case mapping table.
The "unhacking" is done in k32.h, because the original hacks in wine/unicode.h are still needed in other places.
Fixes 1 LCMApString test and prevents further regression when fixing iswctype in libcntpr.
2025-12-10 09:55:30 +02:00
Timo Kreuzer 2e1478ba93 [ACPI_APITEST] Mark test that fail on Windows as todo
The tests fail, because this is more of a unit test, than an apitest. It's questionable, whether running it on Windows is even useful.
The tests will be marked as todo on Windows, but not on ReactOS.
2025-12-10 09:48:21 +02:00
Timo Kreuzer 6539397315 [WIN32U_APITEST] Rename test to win32u_apitest for naming consistency 2025-12-09 18:21:46 +02:00
Timo Kreuzer cba420df3b [WIN32U] Move windows specific test dlls into win32nt folder 2025-12-09 18:21:46 +02:00
Timo Kreuzer 13a982966f [WIN32U] Move reactos win32u.dll from rostests to win32ss 2025-12-09 18:21:46 +02:00