Commit graph

143 commits

Author SHA1 Message Date
Hervé Poussineau
359e73d055 [CMBATT] Implement CmBattGetBifData/CmBattGetBstData 2024-08-12 11:56:18 +02:00
Dmitry Borisov
fdc1d96dc1 [ISAPNP] Make sure that APCs are disabled before acquiring a lock
Note: We could just use a fast mutex instead
2024-08-03 17:08:44 +06:00
Dmitry Borisov
6091dde0d3 [ISAPNP] Improvements around hardware access helpers
- Reimplement WriteWord using the WriteByte helper.
- Remove inline qualifiers from the bus read and write functions.
  This code path is considered "cold" and using an inline for it is overkill.
- Don't apply the IRQL restrictions to our PnP state transition helpers.
  They are only called at IRQL below dispatch level.
2024-08-03 17:08:43 +06:00
Dmitry Borisov
2981e63a31 [ISAPNP] Refactor the configuration code
- Remove useless checks
- Increase code readability
2024-08-03 17:08:43 +06:00
Dmitry Borisov
76ec8411a4 [ISAPNP] Fix parsing of complex resource data
- Properly handle the case when the dependent function is placed
  after fixed resources
- Initialize the version and revision fields of resource lists
- Improve validation of resource data
- Add more debug prints

CORE-18562
2024-08-03 17:08:43 +06:00
Dmitry Borisov
c1d7087352 [ISAPNP] Fix the reported length of the memory I/O ranges
CORE-18562
2024-08-03 17:08:43 +06:00
Dmitry Borisov
9b7f34601a [ISAPNP] Force clear the upper reserved bits on fixed I/O descriptors
CORE-18562
2024-08-03 17:08:43 +06:00
Dmitry Borisov
991dbeff53 [ISAPNP] Fix the truncation of 32-bit configuration I/O reads
CORE-18562
2024-08-03 17:08:43 +06:00
Dmitry Borisov
b36d9bd9c1 [ISAPNP_UNITTEST] Add unit tests exercising device discovery and device resources functionality
CORE-18562
2024-08-03 17:08:43 +06:00
Dmitry Borisov
016d01e5d1 [ISAPNP] Extract resource definitions
Prepare the driver for upcoming API tests
CORE-18562
2024-08-03 17:08:43 +06:00
Dmitry Borisov
4ba8a8b59b [ISAPNP] Allocate the Read Port resources on demand
This will simplify failure paths and reduce memory usage
2024-08-03 17:08:42 +06:00
George Bișoc
f69e256376
[ACPI] Register a device interface class with ACPI fans
As the commit title says, the point of registering a device interface with ACPI fans is to receive incoming PnP notifications of incoming ACPI fan drivers so that the power manager can connect to them by creating a power device policies dedicated to them during power manager initialization.

CORE-18969
2024-05-22 20:23:06 +02:00
Dmitry Borisov
5070e8960a
[ACPI] Fix object evaluation (#6302)
CORE-17256

- Implement support for complex input buffers.
  This will enable the IDE driver with some hack
  to execute the _STM (channel timing settings) control method.
- Fix a memory leak.
- Fix returned status code.
- Correctly calculate the output buffer size.
- Improve buffer validation.
- Implement support for async control requests.
- Implement local reference conversion.
- Implement support for subpackage argument conversion.
- Place some code into INIT section.
2024-04-01 18:21:35 +02:00
Hervé Poussineau
0be4e4aa6d [CMBATT] Correctly print UNICODE_STRING 2024-02-05 18:04:01 +01:00
Hervé Poussineau
913235952c [ACPI] Return success even if AcpiInterfaceNotificationsRegister is not implemented
Drivers calling this function still won't be notified in case of event,
but they will at least succeed their initialization.

CORE-18309
2024-02-01 10:08:58 +01:00
Hervé Poussineau
7f1025dcce [CMBATT] Send correct tag on IoAcquireRemoveLock
This prevents an assert in IoReleaseRemoveLock in debug builds, which
already receives the 'Irp' tag.
2024-02-01 10:08:58 +01:00
Thamatip Chitpong
2dd0c6c32b
[ACPI] Add acpi.rc to CMakeLists (#6089)
Fix missing version info.
2023-12-04 07:17:08 +07:00
Dmitry Borisov
3dd3d10531 [PCI] Fix I/O range size of the resource descriptors
Fixes incorrect PCI IDE resources in VPC 2007
CORE-17256
2023-01-21 07:33:03 +01:00
Thomas Faber
d3a718eb01
[COMPBATT] Add inf entry. CORE-18167 2023-01-21 00:10:06 -05:00
Thomas Faber
f0dd1e7b57
[ACPICA] Update to version 20221020. CORE-17905 2022-11-06 08:33:29 -05:00
Thomas Faber
03b24380a7
[ACPICA] Update to version 20220331. CORE-17905 2022-11-06 08:33:29 -05:00
Thomas Faber
8129fee128
[ACPICA] Update to version 20211217. CORE-17905 2022-11-06 08:33:28 -05:00
Thomas Faber
9b247f6ae3
[ACPICA] Update to version 20210930. CORE-17905 2022-11-06 08:33:25 -05:00
Hervé Poussineau
3a32d5980c [ISAPNP] Generate hardware ids and compatible ids in upper case 2022-09-23 23:07:45 +02:00
Stanislav Motylkov
bbccad0ed6
[INF] Set manufacturer as ReactOS Project for consistency
Also make it non-localizable. CORE-18191
2022-06-27 17:00:18 +03:00
Dmitry Borisov
734cd5e842 [PCI][HALX86] Support PCI debugging devices
Also optimize the PCI bus scanning

CORE-17360
2022-06-06 01:47:21 +03:00
Serge Gautherie
abe8f0ab1d [PCIX] Add 2 OBJ_KERNEL_HANDLE
Match Zw*() uses.

CORE-10207
2022-05-07 16:23:42 +02:00
Luke Luo
f59c58d833
[TRANSLATION] Improve Simplified & Traditional Chinese translations (#4388)
Reviewed-by: Chan Chilung <eason066@gmail.com>
Reviewed-by: Stanislav Motylkov <x86corez@gmail.com>
2022-03-31 20:38:52 +03:00
Victor Perevertkin
7ed1883c8e
[DRIVERS] Use IoForwardIrpSynchronously in drivers
Instead of having an own routine in each driver
IoForwardIrpSynchronously can be used.
2022-01-05 02:17:56 +03:00
Thomas Faber
0af3689c2e
[REACTOS] Fix traces with missing arguments.
Courtesy of VS Code Analysis warning C6064:
Missing integer argument to 'DbgPrint' that corresponds to conversion specifier 'N'.
2021-11-21 12:57:35 -05:00
Dmitry Borisov
84fabd819d [ISAPNP] Add support for NEC PC-98 series 2021-11-17 13:56:29 +03:00
Hervé Poussineau
ac13f37d0a [ISAPNP] Generate a name for PDO, as required 2021-10-14 23:39:30 +02:00
Süleyman Poyraz
05c39d8d62
[TRANSLATION] Update Turkish (tr-TR) translations (#3958)
Reviewed-by: Can Taşan <ctasan99@hotmail.com>
Signed-off-by: Süleyman Poyraz <zaryob.dev@gmail.com>
2021-10-10 16:00:12 +03:00
Thomas Faber
0a656b574e
[ACPICA] Update to version 20210730. CORE-17760 2021-09-11 10:48:30 -04:00
Thomas Faber
3c2845607c
[ACPICA] Update to version 20210604. CORE-17760 2021-09-11 10:48:30 -04:00
Thomas Faber
6eb8cc4979
[ACPICA] Update to version 20210331. CORE-17760 2021-09-11 10:48:29 -04:00
Thomas Faber
05926c7ac5
[ACPICA] Update to version 20210105. CORE-17760 2021-09-11 10:48:17 -04:00
Dmitry Borisov
18b4cc1479 [ISAPNP] Start the driver early in the boot
Because our child devices can have boot-start drivers
2021-06-20 19:24:32 +06:00
Dmitry Borisov
adac7dc2e5 [ISAPNP] Implement device configuration 2021-06-20 19:24:32 +06:00
Dmitry Borisov
8939abf113 [ISAPNP] Disable bus scan on unsupported platforms
This speeds up boot a bit and also decreases binary size.

- Introduce a new CMake define ISAPNP_ENABLE that defined only in x86 platform
  when ISA PnP is supported.
2021-06-20 19:24:32 +06:00
Dmitry Borisov
e318d22940 [ISAPNP] Disable I/O range check before activation
See Table A-2 of "Plug and Play ISA Specification 1.0a"
2021-06-20 19:24:31 +06:00
Dmitry Borisov
367f4b1581 [ISAPNP] Map configuration states to PnP states
Rework the hardware support code to avoid unneeded transitions
between configuration states.
- Only call WaitForKey when needed.
- Each PnP state transition causes the bus to move to WaitForKey state.

Besides, deactivate logical device during processing remove request.
2021-06-20 19:24:31 +06:00
Dmitry Borisov
d6dca83baf [ISAPNP] Reduce software delay 2021-06-20 19:24:31 +06:00
Dmitry Borisov
8ed43b6907 [ISAPNP] Fix descriptors and support alternative configurations
- Fix empty resource descriptors being created.
- Properly support IRQ descriptors.
- Introduce four helpers made to help search descriptors
  in the logical device's requirements.
- Implement support for memory descriptors and alternative configurations.
- DMA descriptors are always DMA_8.
2021-06-20 19:24:31 +06:00
Dmitry Borisov
b29a3ac524 [ISAPNP] Read all resources when detecting devices 2021-06-20 19:24:31 +06:00
Dmitry Borisov
ca42de9c31 [ISAPNP] Rewrite the tag parser
- Support all resource descriptors.
- Optimize card identification.
- Detect cards that is no longer present on the bus.
- Deactivate cards after the identification phase; they will be activated
  by start device IRP.
- Provide a device description and compatible IDs to the device manager.
- Prevent duplicate IDs across multiple logical devices.
- Suppress warning about the usage of literals in port addresses.
2021-06-20 19:24:31 +06:00
Dmitry Borisov
7c897dfbd1 [ISAPNP] Use the correct types for helper functions 2021-06-20 19:24:31 +06:00
Dmitry Borisov
c4b6330b14 [ISAPNP] Implement the Read Port resource management
Currently disabled until the kernel is ready
2021-06-20 19:24:31 +06:00
Dmitry Borisov
f15de15554 [ISAPNP] Fixes and improvements for IRP handling
- Implement device removal.
- Finish the Read Port special handling
  introduced in 21514e473f.
- Gracefully handle low memory situations.
- Implement IRQ translator.
- Correctly stub power IRP handling.
- Remove unneeded dispatch routines; implement WMI IRP handling.
- Do not handle requests like WRITE_CONFIG.
- Add a signature member to device extensions to make checks clearer.
2021-06-20 19:24:26 +06:00
Dmitry Borisov
e19595572a [ISAPNP] Implement querying bus information 2021-06-20 19:24:25 +06:00