Commit Graph

67 Commits

Author SHA1 Message Date
bjorn3 5d76acfd74 Update to redox-scheme 0.4 2025-03-14 22:11:30 +01:00
bjorn3 258ea4e6a5 storage/usbscsid: Use the unified disk scheme implementation 2025-03-09 17:04:25 +01:00
bjorn3 9800c57133 storage/driver-block: Fix couple of error condition checks 2025-03-09 17:04:25 +01:00
bjorn3 269fd9abc0 storage/lived: Use the unified disk scheme implementation 2025-03-08 22:52:36 +01:00
bjorn3 865ca86666 storage: Mostly unify disk scheme implementations
lived and usbscsid still keep their old scheme implementations.
2025-03-08 13:06:31 +01:00
bjorn3 c68a50faf2 storage: Move irq methods out of the scheme structs 2025-03-08 12:38:14 +01:00
bjorn3 60a141b51c storage: Move most partition handling into DiskWrapper 2025-03-07 22:49:22 +01:00
bjorn3 b1dcda4cf7 storage/nvmed: Use DiskWrapper 2025-03-07 22:35:01 +01:00
bjorn3 371e8c0326 storage/virtio-blkd: Use DiskWrapper 2025-03-07 22:22:21 +01:00
bjorn3 9d27fad3d5 storage/driver-block: Make DiskWrapper generic over the disk type
This allows it to contain non-'static disks.
2025-03-07 22:22:21 +01:00
bjorn3 d0a7aed2fd storage/virtio-blk: Introduce VirtioDisk type 2025-03-07 22:22:20 +01:00
bjorn3 dfe23b0683 storage/driver-block: Make Disk::block_length infallible
It should be read when creating the struct implementing Disk and every
disk needs to have some block length.
2025-03-07 21:35:49 +01:00
bjorn3 f01a8c8d3e storage: Use DiskWrapper::pt in nvmed and virtio-blkd 2025-03-07 20:58:01 +01:00
bjorn3 ebdfc89e7a storage/nvmed: Pass NvmeNamespace by value and remove the separate nsid arguments 2025-03-07 20:46:33 +01:00
bjorn3 aacf09cef4 storage/driver-block: Remove id method from Disk trait 2025-03-07 20:42:41 +01:00
bjorn3 03329430b4 storage/driver-block: Handle block_read read buffer internally 2025-03-07 20:34:33 +01:00
bjorn3 9257cbbfa2 storage/partitionlib: Couple of cleanups 2025-03-06 22:48:10 +01:00
bjorn3 398103e710 storage/partitionlib: Rustfmt 2025-03-06 22:18:21 +01:00
bjorn3 f6c3be42e7 storage: Vendor partitionlib to make it easier to change 2025-03-06 22:18:08 +01:00
bjorn3 e7fe3183b0 Make all pcid_interface methods abort the process on errors
Effectively the only way to recover from errors in the communication
with pcid is by restarting the driver from scratch possibly after
restarting pcid. As such moving the aborts from individual drivers to
pcid_interface simplifies drivers while at the same time allowing nicer
error messages.
2025-03-02 12:36:35 +01:00
bjorn3 581d9eea33 Replace a whole bunch more repr(packed) with repr(C, packed) 2025-02-22 16:19:25 +01:00
bjorn3 e973f89139 Remove unnecessary feature gates
Some of these have been stabilized while others were likely no longer
used at all.
2025-02-22 14:38:33 +01:00
bjorn3 b1743d800c Remove all dup impls that only accept empty paths
Those dups are handled by the kernel already by creating a new reference
to the underlying file descriptor.
2024-12-27 15:13:42 +01:00
bjorn3 2c042f8c98 Fix a ton of unused import warnings 2024-12-26 16:05:04 +01:00
bjorn3 8eabb75524 Update redox-scheme to 0.3.0 2024-12-26 15:50:30 +01:00
Andrey Turkin 63b1d2cf8a bcm2835-sdhcid: remap mmio range as instructed by DTB 2024-12-18 21:16:33 +03:00
Andrey Turkin 18b688a49c Partial risc-v support 2024-10-17 20:07:17 +03:00
Andrey Turkin 09b5033fbd Wholesale cargo fmt to get CI back to green 2024-10-17 20:07:05 +03:00
Kamil Koczurek d2c82add9d Move Io/Pio/Mmio from redox_syscall to common
* Fix Mmio repr from transparent to packed.
* Rename Mmio::from to Mmio::new.
* Remove dead imports around affected code.
* Minor formatting.
2024-09-30 13:01:36 +02:00
Ivan Tan 897cf31893 migrate bcm2835-sdhcid to v2 scheme protocol 2024-09-29 09:36:36 +00:00
bjorn3 7935ed0248 Deduplicate setup_logging between all drivers
This will make it easier to change the way logging is done for all
drivers. This also fixes the log category for a couple of drivers as
well as makes failing to set the logger a fatal error. Only when a
logger is already set is it impossible to set another logger.
2024-07-24 22:00:40 +02:00
bjorn3 7eceaaa2bd Rustfmt driver-network and driver-block 2024-07-21 13:56:20 +02:00
bjorn3 fd8dabd1bc Use the new scheme format in most places
The graphics subsystem still uses the old format as orbital manually
parses the fpath result.
2024-07-11 21:14:45 +02:00
4lDO2 dd10d77350 Make lived stateless. 2024-06-16 11:27:24 +02:00
bjorn3 23ac696491 pcid: Add PciFunctionHandle::map_bar method
This will enable the pcid driver interface to safely map the MSI-X table
in the future without having to worry about a BAR being mapped twice.
2024-06-15 15:47:48 +02:00
bjorn3 a3b957c2e5 pcid: Fetch config in PciFunctionHandle::connect_default() 2024-06-15 15:16:09 +02:00
bjorn3 fdb9ea816b pcid: Rename PcidServerHandle to PciFunctionHandle 2024-06-15 15:05:59 +02:00
bjorn3 3299a070f2 pcid: Also return bar size from physmap_mem and use it in two more drivers 2024-06-15 14:01:06 +02:00
4lDO2 ccbc1d6d69 Switch ided to v2 scheme protocol. 2024-06-15 12:14:18 +02:00
4lDO2 05ec7464ea Update syscall. 2024-06-14 14:22:01 +02:00
4lDO2 2b146f8778 Properly pass POSITIONED new fd flag. 2024-06-14 13:51:13 +02:00
4lDO2 0058d7c948 Positioned IO. 2024-06-14 13:51:13 +02:00
4lDO2 a366841777 Switch remaining storage daemons to schemev2. 2024-06-14 13:51:13 +02:00
4lDO2 9dee2c12ae Migrate nvmed to schemev2. 2024-06-14 13:51:13 +02:00
4lDO2 0ccf87f357 Use schemev2 for ahcid. 2024-06-14 13:51:08 +02:00
Jeremy Soller 8f98e28e97 Merge branch 'fix_virtio_blkd_empty_disk' into 'master'
virtio-blkd: Do not crash when the disk is empty

See merge request redox-os/drivers!164
2024-06-13 22:44:59 +00:00
bjorn3 47ce36741e virtio-blkd: Avoid crash on ls /scheme 2024-06-13 21:47:22 +02:00
bjorn3 32bcf25f99 virtio-blkd: Do not crash when the disk is empty 2024-06-13 21:33:11 +02:00
Jeremy Soller b13b7c8e7c ided: detect when controller is DMA capable 2024-06-12 07:57:54 -06:00
bjorn3 4f583b1cfb Store decoded MSI info instead of full capability in PciFeatureInfo 2024-06-11 16:48:43 +02:00