Commit Graph

1330 Commits

Author SHA1 Message Date
bjorn3 f6c3be42e7 storage: Vendor partitionlib to make it easier to change 2025-03-06 22:18:08 +01:00
Jeremy Soller b17933f382 Merge branch 'fmt_all' into 'master'
Format all packages in fmt.sh

See merge request redox-os/drivers!245
2025-03-03 17:44:21 +00:00
Jeremy Soller 2b014e1330 Merge branch 'vt_to_go' into 'master'
Implicitly create a new VT for each consumer

See merge request redox-os/drivers!244
2025-03-03 17:42:10 +00:00
bjorn3 f26fdd7592 Format all packages in fmt.sh 2025-03-02 22:00:36 +01:00
bjorn3 e9d8d7ceaf Implicitly create a new VT for each consumer
Instead of requiring the graphics driver to create a fixed set of VTs in
advance. This fixes the graphical interface when there is a graphics
driver but no boot framebuffer. Previously in that case vesad would exit
before it creates any VT and thus no consumer could show anything as
their VT was missing. In the future creating new VTs on the fly could
also allow a display manager to use a separate VT for each user session.
2025-03-02 20:28:34 +01:00
Jeremy Soller 2e82009412 Merge branch 'centralize_error_handling' into 'master'
Make all pcid_interface methods abort the process on errors

See merge request redox-os/drivers!242
2025-03-02 18:45:17 +00:00
Jeremy Soller f9bbabf431 Merge branch 'inputd_improvements' into 'master'
A whole bunch of inputd improvements

See merge request redox-os/drivers!243
2025-03-02 18:44:47 +00:00
bjorn3 39dd9118c0 graphics/fbcond: Handle missing graphics driver at startup 2025-03-02 19:19:08 +01:00
bjorn3 67e9f29804 inputd: switch_vt is infallible 2025-03-02 18:57:10 +01:00
bjorn3 085a6e32c6 inputd: Unify early and non-early handle opening 2025-03-02 17:37:14 +01:00
bjorn3 f8972400ee inputd: Move handoff logic to fn open 2025-03-02 17:36:41 +01:00
bjorn3 ec442b87a3 inputd: Use a single global display rather than have a per-vt display selection 2025-03-02 17:24:37 +01:00
bjorn3 cd193f2aed inputd: Unconditionally perform handoff for all vts together
In preparation for having a single set of graphics drivers for all vts.
2025-03-02 17:24:18 +01:00
bjorn3 a0a8401e8d inputd: Inline a couple of functions 2025-03-02 16:33:39 +01:00
bjorn3 de0239d3ed inputd: Automatically switch to first vt once created 2025-03-02 16:33:39 +01:00
bjorn3 9779d1884e inputd: Remove the active vt check before post_fevent
No input is added to pending anyway when the vt for the consumer isn't
the active vt anyway.
2025-03-02 16:33:38 +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
Jeremy Soller e5af02928e Merge branch 'graphics_improvements' into 'master'
Various graphics subsystem improvements

See merge request redox-os/drivers!241
2025-03-01 20:41:40 +00:00
bjorn3 fe31bd0578 inputd: Remove deactivate event
It is no longer useful now that virtio-gpud permanently takes over
control of the display when it starts.
2025-03-01 20:00:29 +01:00
bjorn3 4f2268bbfe graphics/vesad: Exit gracefully when there is no boot framebuffer 2025-03-01 19:54:33 +01:00
bjorn3 2a71d48a76 inputd: Don't crash when receiving input while there is no active vt 2025-03-01 19:24:30 +01:00
bjorn3 d26ee5a58d graphics/fbbootlogd: Handle non-existent graphics adapter
This ensures a serial console shows up with all non-graphics related
daemons started when there is no framebuffer passed by the bootloader.
2025-03-01 19:23:56 +01:00
bjorn3 68af18aead graphics/vesad: Make some fields and methods private 2025-03-01 18:23:31 +01:00
bjorn3 91f814a42c graphics/vesad: Simplify sync loop
LLVM should optimize it to pretty much the same code, but using a
regular for loop makes it's behavior clearer.
2025-03-01 18:22:18 +01:00
bjorn3 0c42f431bd graphics/vesad: Merge screen.rs into scheme.rs 2025-03-01 18:09:23 +01:00
Jeremy Soller 1c6e9a045d Merge branch 'pcid-scheme2' into 'master'
Introduce a pci scheme and move driver spawning to pcid-spawner

See merge request redox-os/drivers!240
2025-03-01 16:38:49 +00:00
bjorn3 7dbce70d95 Get rid of the State struct and the Arc wrapper around Pcie 2025-03-01 17:19:06 +01:00
bjorn3 8f1549e284 Introduce a pci scheme and move driver spawning to pcid-spawner
This allows a single PCI daemon to run on the whole system, prevents
multiple drivers from claiming the same PCI device and makes it possible
for userspace to enumerate all available PCI devices. In the future this
will enable an lspci tool, possibly PCIe hot plugging and more.

Co-Authored-By: 4lDO2 <4lDO2@protonmail.com>
2025-03-01 17:18:15 +01:00
Jeremy Soller 64bb3c0dc2 Merge branch 'pcid-scheme-preparations' into 'master'
Various preparations for creating a pci scheme

See merge request redox-os/drivers!239
2025-02-27 19:21:51 +00:00
bjorn3 cffa5308a1 Use pico-args instead of structopt for pcid
It is much lighter weight.

Co-Authored-By: 4lDO2 <4lDO2@protonmail.com>
2025-02-27 20:07:12 +01:00
bjorn3 cd5604a054 Move config from pcid to pcid_interface
This will allow serializing/deserializing to be shared across programs.
For pcid-spawner will need to parse the config files and if we want to
embed config files into the driver executables at some point it may also
be useful.
2025-02-27 20:04:26 +01:00
bjorn3 5b45f06cf3 Extract enable_function out of handle_parsed_header
This is the only part that actually modifies the PCI configuration. In
the future we will want to delay enabling a PCI device until it is
actually going to be used while still reading metadata about the PCI
device before that point.
2025-02-27 20:02:29 +01:00
Jeremy Soller c9b440e0af Merge branch 'simplify_fbbootlogd' into 'master'
Simplify fbbootlogd

See merge request redox-os/drivers!238
2025-02-22 15:41:26 +00:00
bjorn3 31450e5770 graphics/fbbootlogd: Get rid of fevent and tracking handles
Fbbootlogd doesn't do non-blocking operations, so fevent isn't needed.
And the kernel shouldn't pass closed handles to us and even if it does
due to a bug, it is harmless to silently ignore the fact that the handle
was closed.
2025-02-22 16:33:22 +01:00
bjorn3 4b61e7bc86 graphics/fbbootlogd: Inline TextScreen into FbbootlogScheme 2025-02-22 16:33:22 +01:00
Jeremy Soller d83d050c0d Merge branch 'more_repr_packed_fixes' into 'master'
Replace a whole bunch more repr(packed) with repr(C, packed)

See merge request redox-os/drivers!237
2025-02-22 15:27:00 +00:00
Jeremy Soller 30633ca5bb Merge branch 'fix_standalone_driver_network' into 'master'
Fix standalone compilation of driver-network

See merge request redox-os/drivers!236
2025-02-22 15:26:51 +00:00
bjorn3 581d9eea33 Replace a whole bunch more repr(packed) with repr(C, packed) 2025-02-22 16:19:25 +01:00
bjorn3 23497b1148 Fix standalone compilation of driver-network
driver-network does conversions from syscall::Error to std::io::Error
which needs the std feature enabled. Without this change rust-analyzer
would report errors when trying to compile driver-network without any
other crate in the same build to enable the std feature.
2025-02-22 16:13:24 +01:00
Jeremy Soller 93969cd51f Merge branch 'less_direct_physmap' into 'master'
Replace a couple direct uses of physmap with map_bar

See merge request redox-os/drivers!235
2025-02-22 15:09:47 +00:00
bjorn3 23c20b0fa2 Replace a couple direct uses of physmap with map_bar 2025-02-22 16:07:10 +01:00
Jeremy Soller 471b9ebf4f Merge branch 'no_scan_single_function_device' into 'master'
Don't scan through all 8 functions of a single function PCI device

Closes #32

See merge request redox-os/drivers!232
2025-02-22 14:25:54 +00:00
Jacob Lorentzon 6edcba7b25 Merge branch 'less_features' into 'master'
Remove unnecessary feature gates

See merge request redox-os/drivers!234
2025-02-22 13:40:26 +00: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
Jacob Lorentzon f560929b1b Merge branch 'pcid_correct_mcfg_repr' into 'master'
Make Mcfg repr(C, packed) rather than repr(packed)

See merge request redox-os/drivers!233
2025-02-22 13:33:32 +00:00
bjorn3 6828b744fd Make Mcfg repr(C, packed) rather than repr(packed)
repr(packed) officially still allows reordering the fields.
2025-02-22 14:05:33 +01:00
bjorn3 1cae6512fa Don't scan through all 8 functions of a single function PCI device 2025-02-22 13:57:15 +01:00
Jeremy Soller 7012dffdf1 Merge branch 'ps2-timeout' into 'master'
ps2d: Use sleep rather than busy-waits for timeouts

See merge request redox-os/drivers!231
2025-02-18 22:19:31 +00:00
toadster172 4898261594 ps2: Use sleep functions for read and write waits 2025-02-17 17:42:51 -06:00
Jeremy Soller 7efb54c6b0 Merge branch 'ihdad-fix' into 'master'
ihdad: Fix initialization procedure

See merge request redox-os/drivers!230
2025-02-08 15:32:39 +00:00