Commit graph

895 commits

Author SHA1 Message Date
Joachim Henze
889eab78ca [CDFS] Fix a macro-copy-paste and shrink the binary size CORE-17405 2020-12-18 04:48:31 +01:00
Victor Perevertkin
f9f5a78715
[MOUNTMGR] Fix bugs in MountMgrQueryDosVolumePath
- Do not access uninitialized SymlinkInformation on failure case
  and just return
- Do not make an assumption that MOUNTMGR_TARGET_NAME has a zero-string
2020-12-16 01:13:57 +03:00
Eric Kohl
f095ff418b [SCSIPORT] Append the missing "SCSI <device type> Device" string to the device description 2020-12-13 16:24:58 +01:00
Eric Kohl
e64984cabb [SCSIPORT] Trim the Device ID and the Device Description
- Extend CopyField to support a default character and trimming.
- Use CopyField instead of CopyFieldTruncate.

CORE-17396
2020-12-12 12:46:11 +01:00
Eric Kohl
8ba87f972d [SCSIPORT] Fix the hardware IDs and remove the superfluous one 2020-12-10 23:25:06 +01:00
Eric Kohl
5099f24373 [SCSIPORT] Add the enumerator (SCSI) to the Compatible IDs 2020-12-09 23:58:12 +01:00
Jérôme Gardou
b089903520 [SCSIPORT] Addendum to 58ad5d9e02 2020-12-09 12:40:51 +01:00
Jérôme Gardou
58ad5d9e02 [SCSIPORT] Fix locking the device extension.
From MSDN:
It is an error to call KeReleaseSpinLockFromDpcLevel if the specified spin lock was acquired by calling KeAcquireSpinLock because the caller's original IRQL is not restored, which can cause deadlocks or fatal page faults.
2020-12-09 12:24:23 +01:00
Victor Perevertkin
da1f4ed6af
[SCSIPORT] Fix setting the "Driver" field in the DeviceMap\Scsi registry key 2020-12-08 01:32:15 +03:00
Victor Perevertkin
39c48a4d91
[USBSTOR] Remove workarounds for old storage stack 2020-12-06 23:32:29 +03:00
Victor Perevertkin
2d6c6fa38d
[PARTMGR] Register a disk interface for disk PDO
CORE-14187
2020-12-06 19:47:15 +03:00
Eric Kohl
cac7b003c0 Implement IRP_MN_QUERY_DEVICE_TEXT.DeviceTextLocationInformation 2020-12-06 12:42:50 +01:00
Victor Perevertkin
f722be93d5
[USBSTOR] Enable USB (ATAPI) cdroms
With the cdrom_new driver, they now work

CORE-16112
2020-12-06 02:08:32 +03:00
Victor Perevertkin
cbe88e287f
[USBSTOR][SCSIPORT] Use STORAGE_ADAPTER_DESCRIPTOR from WIN8
This way, these drivers are more compatible with classpnp and cdrom used
by ReactOS (and don't fire asserts)
2020-12-06 01:57:56 +03:00
Victor Perevertkin
139e8f5308
[BOOTDATA] Fix boot (addendum to dd56e065bc)
- GenCdRom is actually required now to be in CDDB
- Forgot to add partmgr registry keys

CORE-6264
2020-12-06 01:55:20 +03:00
Victor Perevertkin
dd56e065bc
[REACTOS] Enable PnP storage stack
- Use PnP storage class drivers
- Make partmgr an upper filter driver for Disk class
- Fill upper filters in txtsetup and usetup/devinst
- Add cdrom driver to the critical device database

CORE-6264
2020-12-05 22:30:43 +03:00
Victor Perevertkin
fb155b4ea4
[SCSIPORT] Fix Sense request sending
- Pass all SRB flags which Windows scsiport passes
- Correctly reset the queue after completion

This fixes the bug when MS cdrom driver hangs after media ejection
2020-12-05 22:28:54 +03:00
Victor Perevertkin
a97c6e0aa9
[SCSIPORT] Make the driver PnP-aware
Basic functions are implemented in order to work in PnP stack,
only legacy (non-pnp) miniport drivers are supported.
Tested mostly with uniata

CORE-17132
2020-12-05 22:28:54 +03:00
Victor Perevertkin
15a7b9dd2f
[CLASSPNP][CDROM_NEW][DISK_NEW] Fix clang build
CORE-17129
2020-12-05 22:15:29 +03:00
Victor Perevertkin
fe1b98fc36
[CLASSPNP] Fix amd64 build
CORE-17129
2020-12-05 22:15:10 +03:00
Victor Perevertkin
eb682bbfab
[DISK_NEW] Various small fixes
- Silence a (possibly wrong) assert in DiskShutdownFlush
- Fix build with GCC and MSVC amd64

CORE-17129
2020-12-05 22:14:50 +03:00
Victor Perevertkin
99f16dc8a7
[STORAHCI] Do not put the driver onto cd
Meanwhile, fix add_registry_inf usage (it is really a driver inf)
2020-12-05 18:06:42 +03:00
Victor Perevertkin
16e5ce8fb1
[CMAKE] Use C_STANDARD property instead of command line option
Addendum to 64211aa696 and 19779b3f96
2020-12-05 15:35:06 +03:00
Jérôme Gardou
3ec3e1a7f6 [BTRFS] Fix wrong condition check 2020-12-04 15:49:39 +01:00
Thomas Faber
9cc1a26b70
[ACPICA] Update to version 20201113. CORE-17382 2020-11-22 11:23:25 +01:00
Jérôme Gardou
6488440a6a [PARTMGR] Use FORCEINLINE 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
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
378642eb4f [NDIS] Use FORCEINLINE instead of __inline 2020-11-16 16:58:10 +01:00
Hervé Poussineau
65cc802b73 [PCI] Accept a bus number range instead of a single bus number 2020-11-15 18:38:37 +01:00
Serge Gautherie
33714797f4
[COMPBATT] Add a missing OBJ_KERNEL_HANDLE
CORE-10207
2020-11-14 12:03:27 +01:00
Victor Perevertkin
4fc9467815
[PARTMGR] Disable driver startup 2020-11-13 04:13:32 +03:00
Victor Perevertkin
bd8226afe7
[PARTMGR] Add the Partition Manager driver
This driver works as complement to disk.sys/classpnp.sys from Windows 10
Manages partition PDOs and exposes them as volumes to mountmgr.sys.
The driver is almost complete, just some minor IOCTLs missing (will be
added on demand)
2020-11-13 03:04:15 +03:00
Victor Perevertkin
bbfc515eb3
[MOUNTMGR] Volumes with NO_DRIVE_LETTER attribute should not be mounted, not the opposite 2020-11-12 19:19:27 +03:00
Jérôme Gardou
3acbec4851 [KDGDB] Always use kernel stack to get stack frame 2020-11-09 10:47:05 +01:00
Victor Perevertkin
b8525ce7a5
[MOUNTMGR] Fix ReparseFile concatenation in OnlineMountedVolumes
- ReparseFile was concatenated with itself, instead of ReparseIndex
- Meanwhile, use RtlAppendUnicodeStringToString for concatenating
  strings instead of raw memory operations
2020-11-08 23:32:25 +03:00
Victor Perevertkin
ae72f18b55
[UNIATA] Add an inf file for UniATA Management Port 2020-11-03 23:23:35 +03:00
Victor Perevertkin
48b3c61b5d
[HDAUDBUS] Add a timeout into HDA_SendVerbs
This function may stuck during device installation if there are issues
with interrupts (or with a device itself).

This fixes the boot on my testing ThinkPad x60s
2020-11-03 23:18:14 +03:00
Victor Perevertkin
da4ee18cc9
[STORPROP][CDROM_NEW][DISK_NEW] Improve disk and cdrom device installation
- Take a proper inf file for disk.sys
- Add class information into cdrom.inf
- Make a correct stub for storprop!DvdClassInstaller
2020-11-03 23:12:40 +03:00
Victor Perevertkin
5c7ce4475e
[REACTOS] Cleanup INIT and some PAGE section allocations
- Change INIT_FUNCTION and INIT_SECTION to CODE_SEG("INIT") and DATA_SEG("INIT") respectively
- Remove INIT_FUNCTION from function prototypes
- Remove alloc_text pragma calls as they are not needed anymore
2020-11-02 21:45:31 +03:00
Victor Perevertkin
ba447018c8
[MOUNTMGR] Move the driver to drivers/storage
Effectively mountmgr.sys is an essential part of the storage stack
2020-11-01 12:35:56 +03:00
Timo Kreuzer
0e5a4d5afe [PSDK] Import some SAL headers from MS
Taken from https://github.com/microsoft/ChakraCore/tree/master/pal/inc/rt

* Move _Check_return_opt_ and _Check_return_wat_ to crtdefs.h
* Update sal.h from https://github.com/microsoft/ChakraCore/blob/master/pal/inc/rt/sal.h
* Import no_sal2.h from MS and remove the one in NDK
* Import specstrings.h from MS
* Import specstrings_strict.h from MS
* Add specstrings_undef.h (based on defines in specstrings_strict.h)
* Remove __REACTOS__ hacks from cdfs
2020-10-29 06:51:28 +01:00
Thomas Faber
303f17f884
[FASTFAT] Implement the overflow queue. CORE-17344 CORE-17328
This avoids blocking all Ex worker threads in fastfat, thereby making Cc
unable to issue the lazy writes that would unblock those workers.
This is more or less directly taken from fastfat_new.
2020-10-24 19:53:36 +02:00
Victor Perevertkin
ba09834c5e
[PARPORT] Fix I/O port length check
The Standard Parallel Port (SPP) has 3 registers, not 4: data, status, control
This fixes the driver on the Compaq N600c laptop
2020-10-21 15:24:10 +03:00
Jérôme Gardou
ed61512236 [CMAKE] Get rid of add_compile_flags_language macro
in favor of add_compile_options and the like with generator expressions
Also take this as an opportunity to remove the C++11 standard hack, GCC 8 now defaults to C++14
2020-10-20 21:44:54 +02:00
Jérôme Gardou
7e116f0ef3 [CMAKE] Get rid of replace_compile_flags
Introduce a finer-grained remove_target_compile_option instead
2020-10-20 21:44:54 +02:00
Jérôme Gardou
d6ea8659c8 [CMAKE] Get rid of the set_cpp macro
Instead of messing with global variables and the like, we introduce two target properties:
 - WITH_CXX_EXCEPTIONS: if you want to use C++ exceptions
 - WITH_CXX_RTTI: if you need RTTI in your module
You can use the newly introduced set_target_cpp_properties function, with WITH_EXCEPTIONS and WITH_RTTI arguments
We also introduce two libraries :
 - cpprt: for C++ runtime routines
 - cppstl: for the C++ standard template library

NB: On GCC, this requires to create imported libraries with the related built-in libraries:libsupc++, limingwex, libstdc++

Finally, we manage the relevant flags with the ad-hoc generator expressions

So, if you don't need exceptions, nor RTTI, nor use any runtime at all: you simply have nothing else to do than add your C++ file to your module
2020-10-20 21:44:54 +02:00
Victor Perevertkin
1b45d9ee4b
[SCSIPORT] Split scsiport.c file into several ones, prepare for the refactoring
CORE-17132
2020-10-17 04:06:36 +03:00