Commit graph

78760 commits

Author SHA1 Message Date
Hermès Bélusca-Maïto 9735a8379f
[SETUPLIB] Make InferFileSystem() compatible for both MBR and GPT disks. Simplify the FSREC interface a bit.
Instead of providing an MBR partition type to InferFileSystem(), make
it call IOCTL_DISK_GET_PARTITION_INFO(_EX) to determine whether the
partition pointed by the path/handle is MBR or GPT. Then, only if it's
MBR, we retrieve its partition type in order to "guess" an adequate file
system name, in case the latter was not recognized already via regular
ways (via GetFileSystemName() / NtQueryVolumeInformationFile()).

- Remove the GetFileSystemNameByHandle() and InferFileSystemByHandle()
  functions. Instead, make the other GetFileSystemName*() and
  InferFileSystem*() functions accept a HANDLE as an alternative to the
  already-existing partition path string. These parameters are exclusive
  to each other.

- Rename SetPartitionType() -> SetMBRPartitionType(),
  and FileSystemToPartitionType() -> FileSystemToMBRPartitionType()
  in order to really clarify what they do (since this code is meant
  for MBR partitions only, not GPT ones).
2020-11-24 03:24:36 +01:00
Hermès Bélusca-Maïto 8d3e80e437
[FSLIB][FMIFS][AUTOCHK][SETUPLIB] Use more Windows-compatible (but not fully compatible yet) Format() and Chkdsk() ULIB functions.
[AUTOCHK] Add also support for scanning FATX volumes.

The Format(), FormatEx(), Chkdsk(), ChkdskEx() functions exposed by the
U*.DLL user-mode FS library dlls are different (and have different
prototypes) than the similarly-named functions exported by FMIFS.DLL .

In particular, what we used to call "xxxChkdskEx()" and "xxxFormatEx()"
in our U*.DLL libraries actually correspond more, from their arguments,
to the "Chkdsk()" and "Format()" functions in Windows' U*.DLL . Their
*Ex() counterparts instead take most of the parameters through a
structure passed by pointer.

On FMIFS.DLL side, while FMIFS!Chkdsk() calls U*.DLL!Chkdsk() and
FMIFS!ChkdskEx() calls U*.DLL!ChkdskEx() (and we do not implement these
*Ex() functions at the moment), both FMIFS!Format() and FMIFS!FormatEx()
call U*.DLL!Format() instead, while FMIFS!FormatEx2() calls
U*.DLL!FormatEx() (that we do not implement yet either) !!

To improve that, refactor the calls to these U*.DLL functions so as to
respect the more compatible prototypes: They contain the correct number
of parameters in a compatible order. However, some of the parameters do
not have the same types yet: the strings are kept here in PUNICODE_STRINGS,
while on Windows they are passed via an undocumented DSTRING struct, and
the FMIFS callback is instead a MESSAGE struct/class on Windows.
Finally, the MEDIA_TYPE parameter in U*.DLL!Format() is equivalent, yet
not fully 100% in 1-to-1 correspondence, with the FMIFS_MEDIA_FLAG used
in the corresponding FMIFS.DLL functions.

One thing to notice is that the U*.DLL!Format() (and the Ex) functions
support a BOOLEAN (a flag resp.) for telling that a backwards-compatible
FS version should be used instead of the (default) latest FS version.
This is used e.g. by the FAT FS, where by default FAT32 is selected
(depending also on other constraints like, the disk and the partition
sizes), unless that bit is set in which case, FAT16 (or 12) is used.
2020-11-22 21:57:07 +01:00
Hermès Bélusca-Maïto cdaa5d5fc7
[BTRFSLIB] Reduce the diff with upstream, and fix a memory leak.
- Reduce the diff with upstream by aliasing malloc() and free()
  with RtlAllocateHeap() and RtlFreeHeap() respectively.

- Fix a memory leak in the failure code path of the do-while
  memory reallocation loop for IOCTL_BTRFS_QUERY_FILESYSTEMS
  in is_mounted_multi_device().
2020-11-22 21:34:13 +01:00
Hermès Bélusca-Maïto 65758cc3b4
[FMIFS] Whitespaces formatting only. 2020-11-22 21:34:04 +01:00
Hervé Poussineau 1a3c607f53 [NTOS:KD] Change the way we detect if exception if from KernelMode/UserMode
CORE-17381
2020-11-22 18:17:59 +01:00
Thomas Faber 044be0e314
[USER32_DYNAMIC_APITEST] Remove a tautological check. Spotted by clang. 2020-11-22 13:22:03 +01:00
Thomas Faber 99c02855a8
[GITHUB] Add clang-cl location to the beginning of PATH instead of the end.
Fixes build with the latest VS2019 (16.8.2).
The new version now adds Llvm\x64\bin to the PATH of the
"x64_x86 Cross Tools Commannd Prompt", so we must override this to
get x86 clang.
2020-11-22 13:21:58 +01:00
Thomas Faber 9cc1a26b70
[ACPICA] Update to version 20201113. CORE-17382 2020-11-22 11:23:25 +01:00
Tibor Lajos Füzi 07cc0b5a2b
[TRANSLATION] Hungarian translation update for credui, devmgr, netid, sysdm (#3285) 2020-11-21 18:07:48 +01:00
He Yang 02c566b524
[TRANSLATION][CMD] Update zh-CN translation (partially) (#3330) 2020-11-21 18:05:22 +01:00
Aobi Chan CL fc3ccb3948
[TRANSLATION] Improve zh-TW translation (#3218)
- Added zh-TW translation for the following modules: credui, crypt32, getuname, mapi32, themeui, shlwapi.
- Modify zh-TW translation for other files.
- Moving Traditional Chinese translation back to Zh.rc for files came from Wine (comdlg32).

Co-authored-by: Hermès BÉLUSCA - MAÏTO <hermes.belusca-maito@reactos.org>
2020-11-21 18:03:37 +01:00
Hermès Bélusca-Maïto e4f1b12606
Addendum to commit 3e79cb8e: Add also the official URL to the PCI IDs database. 2020-11-21 17:34:55 +01:00
Serge Gautherie 3e79cb8e6c
[HALX86] Update the PCI hardware IDs database.
Extracted from the pci.ids database at https://pci-ids.ucw.cz/ from 2020-11-14 03:15:02 .
Maintained by Albert Pool, Martin Mares, and other volunteers from the PCI ID Project.

Co-authored-by: Hermès BÉLUSCA - MAÏTO <hermes.belusca-maito@reactos.org>
2020-11-21 17:31:40 +01:00
Jérôme Gardou f54c7b646c [VMAKE/WIDL] Properly fix build (try 3) 2020-11-20 19:57:48 +01:00
Jérôme Gardou 72d9471424 [CMAKE] Fix host tools dependency tracking 2020-11-20 19:57:48 +01:00
Stanislav Motylkov 059ba9b0c0
[RAPPS] Properly use FormatMessageW with WinInet message table
Addendum to fb1582d. CORE-17375 CORE-17377
2020-11-20 21:30:29 +03:00
Jérôme Gardou 8297109b95 [CMAKE/WIDL] Fix build (try 2) 2020-11-20 10:17:43 +01:00
Jérôme Gardou acfff0919e [CMAKE/WIDL] Fix build 2020-11-20 10:12:31 +01:00
Jérôme Gardou b587e7b32e [CMAKE/WIDL] Run widl from the source directory
This dramatically improves ccache direct hit rate as now the generated files are identical across build trees
2020-11-20 09:47:33 +01:00
Hervé Poussineau 44c6df4b27 [NTOS:KD] Correctly define previous mode when entering KDBG (addendum to 0c76bbfe98) 2020-11-17 14:23:36 +01:00
Jérôme Gardou 6488440a6a [PARTMGR] Use FORCEINLINE 2020-11-16 16:58:10 +01:00
Jérôme Gardou 02f4c755b8 [SDK] Use FORCEINLINE instead of inline 2020-11-16 16:58:10 +01:00
Jérôme Gardou 13dad0231a [NCFTP] declare DisposeWinsock as static 2020-11-16 16:58:10 +01:00
Jérôme Gardou 597660a4b7 [GITHUB] Add CLang build action 2020-11-16 16:58:10 +01:00
Jérôme Gardou 9e7071e8fb [NTOSKRNL] DO not disable optimisations when compiling with CLang 2020-11-16 16:58:10 +01:00
Jérôme Gardou 7a52db76c5 [RAPPS] Do not implicitly cast pointer to BOOL 2020-11-16 16:58:10 +01:00
Jérôme Gardou b0abd14b03 [ATL] Declare pointer as return type for functions returning pointers 2020-11-16 16:58:10 +01:00
Jérôme Gardou f424d52488 [EXT2FS] Use GNU89 standard when using CLang 2020-11-16 16:58:10 +01:00
Jérôme Gardou cab3e62f0e [CDFS] Use GNU89 standard when using CLang 2020-11-16 16:58:10 +01:00
Jérôme Gardou 2c4c25e468 [MSVCRT] make some functions static 2020-11-16 16:58:10 +01:00
Jérôme Gardou 281389b7e7 [CRT] Use ASM aliases for CLang builds 2020-11-16 16:58:10 +01:00
Jérôme Gardou 567a5231d5 [NFS41_DRIVER] Use GNU89 standard when compiling with CLang. 2020-11-16 16:58:10 +01:00
Jérôme Gardou 1f8db9824e [STORAHCI] Use FORCEINLINE instead of __inline 2020-11-16 16:58:10 +01:00
Jérôme Gardou e00922a0fe [NTOSKRNL] Link memcmp to the import lib when using CLang
CLang performs some optimisations on e.g. strcmp, but memcmp is not exported by ntoskrnl
2020-11-16 16:58:10 +01:00
Jérôme Gardou 378642eb4f [NDIS] Use FORCEINLINE instead of __inline 2020-11-16 16:58:10 +01:00
Jérôme Gardou 15c9f63b65 [MSVCRTEX] Add some floating point functions for CLang build
Clang makes optimisations requiring functions not present in msvcrt
2020-11-16 16:58:10 +01:00
Jérôme Gardou 3936c3f19e [CRT] Fix __forceinline definition for clang 2020-11-16 16:58:10 +01:00
Jérôme Gardou f96e47db43 [CRT] Fix intrinsics definition with clang 2020-11-16 16:58:10 +01:00
Jérôme Gardou edc1f3ca56 [CMAKE] Fix use of CLang
- Updated toolchain file
 - set GCC variable when using CLang in "GCC mode"
 - Properly retrieve GCC support libraries
 - Various flags needed to get this going
2020-11-16 16:58:10 +01:00
Hervé Poussineau d6d5caec7c [NTOS:KD] Move some KDBG-specific variables to KDBG-specific file 2020-11-16 08:55:04 +01:00
Hervé Poussineau 0c76bbfe98 [NTOS:KD] Merge KdpReportExceptionStateChange() with kd64 version 2020-11-16 08:55:04 +01:00
Hervé Poussineau baa47fa5e0 [NTOS:KD] Use a PCONTEXT instead of a PKTRAP_FRAME in KDBG 2020-11-16 08:55:03 +01:00
Hervé Poussineau ba37323a62 [NTOS:KD] Move some declarations where they belong 2020-11-16 08:55:03 +01:00
Hervé Poussineau 67e9cc00b2 [NTOS:KD] Remove useless define
KdbEnterDebuggerException() is only called when KDBG is defined.
2020-11-16 08:55:03 +01:00
Hervé Poussineau 95faf65ebf [NTOS:KD] Remove useless variables/members
Those where only set and never read.
2020-11-16 08:55:03 +01:00
Hervé Poussineau 8d3a395101 [NTOS:KD] Remove Bochs port debugging
You can use serial port debugging instead.
2020-11-16 08:55:03 +01:00
Hervé Poussineau 8a62f277d8 [NTOS:KD] Remove useless implementation of BREAKPOINT_PRINT in KdSystemDebugControl
This is (as expected) handled in KdpTrap(), which also calls KdpPrint().
2020-11-16 08:55:03 +01:00
Hervé Poussineau 1eda7d7e99 [NTOS:KD] Merge KdpReportCommandStringStateChange() with kd64 version 2020-11-16 08:55:03 +01:00
Hervé Poussineau 6f7835d30c [NTOS:KD] Merge KdpReportLoadSymbolsStateChange() with kd64 version 2020-11-16 08:55:03 +01:00
Hervé Poussineau e31be4ec25 [NTOS:KD] Merge KdEnableDebuggerWithLock()/KdDisableDebuggerWithLock() with kd64 version 2020-11-16 08:55:03 +01:00