https://kbdlayout.info/kbdfo
Support Faeroese (or Faroese) users by
adding their keyboard layout.
JIRA issue: CORE-13127
- Add kbdfo into dll/keyboard.
- Modify hivesys.inf and txtsetup.sif to
support Faeroese.
CORE-20760
Prefer MCFG for PCI bus count detection, if available.
Otherwise, perform a manual detection by enumerating all the
possible PCI buses and counting those present on the system.
Limit support only to both x86 and x64 builds for the time being.
SDK `pci.h`:
- Document the fact that `PCI_REGISTRY_INFO::NoBuses` wraps when the
highest bus number is 255 (i.e. there are 256 PCI buses on the system).
- Introduce a `PCI_GET_NUM_OF_BUSES()` helper macro for retrieving the
corrected number of buses from the `PCI_REGISTRY_INFO` structure.
Rationale:
`PCI_REGISTRY_INFO::NoBuses` is a `UCHAR` (0-255). Thus, this member
would wrap to 0 for a system having exactly the maximum number of
allowed PCI buses (256).
In order to distinguish this case from the one where no PCI system
(and no bus) is present, verify the `Major/MinorRevision` values.
If they are initialized (and `NoBuses == 0`), this means that the
system actually has 256 buses.
FreeLdr:
Add a Doxygen block for `hwpci.c!DetectPciBus()` and use the
`PCI_GET_NUM_OF_BUSES()` macro.
HalX86:
- Change the `PCI_REGISTRY_INFO_INTERNAL::NoBuses` member type to `USHORT`,
so as to allow describing 256 PCI buses.
- Make `pcibus.c!HalpQueryPciRegistryInfo()` use the `PCI_GET_NUM_OF_BUSES()`
macro for initializing the internal `NoBuses` value from the retrieved
PCI registry information.
- Adjust the `BusCount` parameter type in the `HalpGetPciBridgeConfig()`
and `HalpFixupPciSupportedRanges()` functions (bussupp.c).
- Minor comments fixes (bussupp.c).
- Support booting from HighPoint PATA controllers
- Also fix a bug that could disable DMA support for VIA VT6421.
For some reason ProgIF can be initialized to 0 on that controller:
Starting controller 1106:3249.50-1106.3249-01.04.00
- Improve some debug messages
Tested by Thomas Schneider on an Abit BP6 board
CORE-20566
CORE-13858
I have tested this manually on Windows 10 and have found that, while the two fonts are not strictly metric-compatible, Source Sans Pro is "close enough" to Segoe UI that it doesn't wreck manual pixel-based control layouts.
In fact, Source Sans Pro is a tiny bit smaller than Segoe UI at 9pt (which is the minimum size recommended for use with Segoe UI).
* [HIVESYS] Register the Ndisuio service so the WLAN path works live
* [NDISUIO] store the bound adapter name without its terminator
* [NDISUIO] accept an OPEN_DEVICE name with or without a terminator
* [NDISUIO] report the needed size on a query overflow
The new arch/hwpci.c file is to be included in compilation of any
FreeLdr port for platforms that are known to have PCI buses.
Will be used for PCI bus detection on UEFI, see PR #9374.
+ Update the source file headers.
This is the start of the implementation of RSOH (aka Red Screen of Hell), an informational screen that pops up after ROS has shutdown due to overheating.
Currently there's a lot of stuff to work on such as thermal zones support in the kernel and a mechanism to set shutdown thermal event bit with RtlGetSetBootStatusData, so this popup won't show up for now.
CORE-11954
Addendum to commit 2a74f5e794 (PR #9092)
- The `__halt()` intrinsic is also defined for GCC-based builds,
see: sdk/include/vcruntime/mingw32/intrin_x86.h
- The `_M_IX86` and `_M_AMD64` defines are also defined for GCC-based
builds, see: sdk/include/reactos/msvctarget.h
- Fix a WARN debug print (Reboot can be called from menu).
- Stabilize reboot fallback abstractions.
- Drop unimplemented path on ARM.
CORE-11954 CORE-17604
Determine the actual partition number, walking the boot handle's device
path to find the Hard Drive media node, which carries the partition number.
- Walk EFI_DEVICE_PATH_PROTOCOL for the boot handle
looking for a MEDIA_HARDDRIVE_DP node.
- Use HARDDRIVE_DEVICE_PATH.PartitionNumber (already 1-based per spec)
as the real boot partition.
CORE-11954
This provides some of the chipsets for PCI IRQ routing miniport support (legacy, pre-ACPI machines).
Will be the foundational piece to us getting and IRQ arbiter on non-acpi boot.
- Just after initially caching the path to the ReactOS installer, check
whether an unattend.inf file can be found in its directory; otherwise,
fall back to an unattend file in the current ReactOS directory.
- If this unattend.inf file specifies to run an unattended setup
(`UnattendSetupEnabled` value set to `"yes"`), automatically start the
ReactOS installer -- instead of starting the live environment desktop.
- If the user presses Ctrl+Shift+F10 however, disable unattended setup
(suggestion to override the behaviour with a keypress from Whindmar Saksit).
NOTE: in the `WM_INITDIALOG` dialog handlers, use `SendMessageW`
to simulate the button presses. This also allows the invocation
of `EndDialog()` (from the button command handlers) while the
`WM_INITDIALOG` message is handled, so that the USER dialog manager
can then directly close the dialog without showing it first.
Modern GCC and Clang versions now appear to generate an .edata section on FreeLoader.
This removes a check added in commit 5367ae5760, that was causing any
builds using CI or RosBE to not boot (FREELDR_IMAGE_CORRUPTION).
Fix a regression introduced in commit b050a4544e (PR #8506), when
detecting the initial video mode FreeLoader has been started with.
- In `PcVideoGetDisplayMode()`, for text modes, the number of "bytes per
scan-line" is always equal to the screen width (number of characters)
*TIMES* 2: one byte for character, one byte for attribute.
- Systematically reset the `BytesPerScanLine` in each `PcVideoSetModeWWxHH()`
sub-routine.
- Make `PcVideoGetBiosMode()` return the screen width in characters, and
compare it with what's stored in the BIOS data area for consistency.
- Slightly simplify also the return paths in `PcVideoSetMode()`.
- Note that the `VERTRES_*_SCANLINES` defines are for `PcVideoSetVerticalResolution()`
(EGA/VGA only).
This PR implements two of the three hooks that allows you to run custom
applications during 2nd-stage setup (the 3rd hook is `...\$OEM$\Cmdlines.txt`,
but that requires file copy operations, etc.)
- `DetachedProgram` is documented[^1] for NT4...2003; it is started before
installation and `UserExecute` after.
- `UserExecute` is a great place to install VM Guest Additions, one reboot
less and you have shared folders/clipboard on the first normal boot.
[^1]: https://web.archive.org/web/20090902145959/http://technet.microsoft.com/en-us/library/cc757642(WS.10).aspx
- Add winevdm_setup as an optional module that can be preloaded on install
- Prompt to install both gecko and winevdm if the installer is not on disk
- Change "DisableGeckoInst" to "DisableAddonsInst" because we are installing more than just Gecko now
- No longer use appwiz,,install_gecko hack from wine appwiz
- Delete installer after successfully installing winevdm and gecko locally
This is needed for ISO filesystem driver to work correctly,
as it assumes 2048 bytes per sector for CD-ROM media.
Happens on 86Box with board `[i430FX] ASUS P/I-P55TP4XE`,
Bochs emulator with `01/17/97-i440FX-2A69HV3CC-00` BIOS,
and some other real machines.
CORE-20640
- Write InstallationType to registry.
- If installing as Server Core, set shell to cmd.exe.
- Rename "Product Option" to "Install Type" and adjust relevant variable names.
- Reserve Nano Server installation type for future use.
JIRA issue: CORE-20645
- The `HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons`
entries were redundant between hivedef.inf and hivesft.inf.
In addition, adding them were useless, because the "Network Places"
(network location folder) icon they were specifying is already shown
by default (like the others) on the desktop.
This basically reverts commit 054c755d91 (r31545) -- originally added
for the next commit 562c812846 (r31547).
The "reason" given by this commit was also wrong: the registration
of the network folder is done instead in its `HKCR\CLSID\<the_clsid>`
registry key.
- Similarly, the `HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Bitbucket`
registry key doesn't need to be pre-created; the shell will create it
on-demand at runtime.
This reverts commit bab735cf05 (r35203).
The shortcut spawns CMD.EXE in the background and runs a specific
command-line that determines where the reactos.exe installer is:
cmd.exe /D /E:ON /C "start %SystemDrive%\%PROCESSOR_ARCHITECTURE:x86=I386%\reactos.exe"
An alternative could be:
cmd.exe /D /C "for /F %f in ('"if %PROCESSOR_ARCHITECTURE%==x86 (echo I386) else (echo %PROCESSOR_ARCHITECTURE%)"') do start %SystemDrive%\%f\reactos.exe"
(In this second case an exact value comparison is made, contrary
to the first case where all instances of "x86" would be replaced.)
The reason for using CMD.EXE, is that the `PROCESSOR_ARCHITECTURE`
environment variable contains the "almost" correct value for the
architecture directory name where reactos.exe can be found, except
for the x86 case where `PROCESSOR_ARCHITECTURE` is set to "x86"
(as on Windows) but the directory is named "I386" (as on Windows again).
The environment variables used by some shell links for the Live-environment,
are passed as data by CMake on the MKSHELLLINK build tool command-line.
When building on Windows, they are transmitted to the tool via CMD.EXE,
and we have somehow to force CMD.EXE to keep these variables unexpanded.
Depending on the precise context where these variables are being used,
either use an "escaped" format with `^%`, as in: `^%SystemRoot^%` ,
or, surround the variable name with `^` instead: `%^SystemRoot^%` .
This second form appears to work when the variable is specified within
a quoted sub-string given to the CMD.EXE command-line.
Addendum to commit a46e1e96ec.
Only handle `DESTINATION`, and transfer all the other parameters verbatim to `add_link()`.
Addendum to commits 3a3b16af0d, 8cb3980766, and a46e1e96ec (PR #8936).
CORE-19691
Removing the `livecd_start.cmd` entry also caused the "Profiles/Default User/My Documents"
directory to not be created in the LiveImage. When booting it, this
caused explorer.exe to hang while loading the desktop, for **some**
(but not all) non-english environments.
(Technically it should instead ignore the non-existing directory if it
cannot create or open it, or drop an error then continue execution...
But that's another bug for another time!)
Adding back the creation of this directory fixes the hang.