Commit Graph

2369 Commits

Author SHA1 Message Date
Bananymous f4c6afbdae LibC: Add definitions to LibC that are used by some ports 2024-12-02 20:13:37 +02:00
Bananymous d1ef380e6b LibC: Add missing definitions for ifreq members 2024-12-02 20:13:37 +02:00
Bananymous c02de2580d Kernel: Add support for SIOCGIFNAME ioctl 2024-12-02 20:13:37 +02:00
Bananymous a231f8587e aoc2024: Implement day2 solution 2024-12-02 20:13:37 +02:00
Bananymous 4149748766 Kernel: Add missing include in ACPI headers 2024-12-01 21:32:34 +02:00
Bananymous 783627c315 LibC: Fix time.h sigevent defition 2024-12-01 21:31:27 +02:00
Bananymous 1ff6aa1748 aoc2024: cleanup day1 solution 2024-12-01 07:58:40 +02:00
Bananymous 6662dc4a8d aoc2024: fix `full` runner search path for solutions 2024-12-01 07:58:40 +02:00
Bananymous d6b170e274 aoc2024: implement day1 solution 2024-12-01 07:41:25 +02:00
Bananymous 11cac7a646 aoc2024: prepare programming environment 2024-12-01 07:41:25 +02:00
Bananymous 9c2fcd745c ports/doom: Fix patch calling exit() to actually do what it says 2024-12-01 02:28:50 +02:00
Bananymous 04f49a6819 LibC: Implement {,v}dprintf 2024-11-27 21:33:10 +02:00
Bananymous d465ea2a67 LibC: Fix headers :) 2024-11-27 21:32:10 +02:00
Bananymous 1f5073d0ac ports/doom: Allow doomgeneric to write directly to window framebuffer
This prevents an unnecessary `malloc` of the framebuffer and a copy
every frame.
2024-11-27 13:39:21 +02:00
Bananymous 8dbbbc1a1a Kernel: Add command line option `readonly`
This prevents calls to write_sectors_impl and all dirty pages are always
kept in RAM.
2024-11-27 13:31:55 +02:00
Bananymous f985673dc3 LibGUI: Add API to retrieve Window's underlying framebuffer 2024-11-27 13:29:42 +02:00
Bananymous a6fc3cf7a6 Kernel: Clear AHCI pending interrupts
I have no idea why I did not have this in. All devices were just
constatly spamming interrupts like crazy :D
2024-11-26 01:39:11 +02:00
Bananymous 1941885cfd Kernel: Disable USB Mass Storage writing until I get it fixed
This prevented real hw from running for over 10-20 seconds. When first
disk sync happens after 10 secods, USB storage would enter faulty state
and not allow any io operations.

I have no idea what the problem is. If I don't send Reset command to the
USB device writing seems to work fine. I also don't think its part of
the Reset process either as reading works just fine.
2024-11-26 01:01:25 +02:00
Bananymous 88a86a9927 Kernel: Fix Thread destruction after sys_exit
This had undefined behaviour as Thread's (Processes's) PageTable was
destroyed before Thread had the change to destroy its own stacks that
lived on the PageTable.
2024-11-26 00:59:34 +02:00
Bananymous 48e030bca3 Kernel: Make PageTable non-copyable and non-movable
Also PageTable destructor now verifies that is has allocated something
instead of assuming paddr of 0.
2024-11-26 00:58:35 +02:00
Bananymous 6f118c1be1 BAN: Make HashMap key move constructible
This allows using non-copyable types as keys
2024-11-26 00:57:11 +02:00
Bananymous 7316eb87b8 BAN: Add requires expression for BAN::Formatter
This allows seeing syntax errors before compilation :)
2024-11-26 00:55:58 +02:00
Bananymous 5376236ab6 BAN: Make ErrorOr non-copyable
This makes avoiding accidentals copies easier :)
2024-11-26 00:55:12 +02:00
Bananymous 0af80d48ee BAN: Mark ByteSpan::slice as [[nodiscard]] 2024-11-26 00:54:35 +02:00
Bananymous 793c0368f2 Kernel: Refactor USB mass storage code
Also increment command timeout to 10 seconds so commands don't timeout
when they are not supposted to :)
2024-11-23 01:24:32 +02:00
Bananymous 076001462e Kernel: Implement AML ConcatOp 2024-11-22 22:23:07 +02:00
Bananymous d2e1d8ec13 Kernel: Implement AML NotOp 2024-11-22 22:22:44 +02:00
Bananymous 30ceaa6bef Kernel: Implement AML ToHexStringOp 2024-11-22 22:22:27 +02:00
Bananymous 0247d47a3d Kernel: Make USBMassStorage send_scsi_command templated
This allows passing ConstByteSpan when data will not be modified
2024-11-22 22:21:19 +02:00
Bananymous 480368c878 Kernel: Cleanup and fix xHCI interrupt handling
Always clear EventHandlerBusy bit and remove unnecessary nesting
2024-11-22 22:19:53 +02:00
Bananymous c1d8790623 Kernel: Don't allow sending commands to halted xHCI 2024-11-22 22:19:29 +02:00
Bananymous fb1ffec5bb Kernel: Remove unused mutex from xHCI
This was preventing multiple xHCI controllers to do parallel device
initialization
2024-11-22 22:18:38 +02:00
Bananymous 1bdabe693f Kernel: Preserve RsvdP bits in xHCI controller initialization 2024-11-22 22:18:09 +02:00
Bananymous ce09f35275 Kernel: Fix PCI 64 bit MSI msg_data offset 2024-11-22 22:17:25 +02:00
Bananymous 40c13043b3 Kernel: Add support for scratchpad buffers in xHCI 2024-11-22 22:16:57 +02:00
Bananymous e620068416 Kernel: Allow USB devices to handle STALL conditions 2024-11-22 22:15:22 +02:00
Bananymous 8e624ca85a Kernel: Don't panic if uninitialized AHCI device gets an interrupt 2024-11-21 20:41:13 +02:00
Bananymous c7afd46016 Kernel: Don't log spurious interrupts
Some PCs seem to be spamming a lot of int 7
2024-11-21 20:40:29 +02:00
Bananymous 3573656244 Kernel: Make PARTUUID matching case insensitive
Case sensitivity made it super annoying to work with :)
2024-11-21 20:39:27 +02:00
Bananymous 1de6de975a Kernel: Rename cmdline UUID= to PARTUUID=
This makes more sense and behaves more like existing software.
2024-11-21 20:38:50 +02:00
Bananymous 15c55b8c7d BuildSystem: Don't hardcode partition UUID
That was dumb :D I can just read the UUID parted assigned...
2024-11-21 20:37:42 +02:00
Bananymous 865061b492 Kernel: Temporary fix to make tmpfs more stable
whole TmpFS will have to be rewritten at some point :)
2024-11-21 18:13:26 +02:00
Bananymous 39313e1737 BuildSystem: Add option to boot using IDE or USB drives 2024-11-21 18:09:35 +02:00
Bananymous 70880636f4 Kernel: Implement basic USB Mass Storage support
I finally decided to do this :D
2024-11-21 18:08:37 +02:00
Bananymous 96a5ba0ed3 BuildSystem: Make root partition UUID fixed
This allows specifying root as UUID which makes booting nicer experience
on real hardware
2024-11-21 17:59:38 +02:00
Bananymous 8054f6c618 Kernel: Wait 10 seconds to find root device
If root device is initialized asynchronously it may not be ready when
main initialization thread is finished. This patch adds searching for
root device every 500 ms for 10 seconds.
2024-11-21 17:56:58 +02:00
Bananymous 658ea68d04 Kernel: Check max packet size for all USB devices
Spec says that this has to be done. Most cases can be probably skipped
as I used to do, but this is less error prone and adds practically no
overhead
2024-11-21 13:46:42 +02:00
Bananymous 5750f87396 Kernel: Fix unaligned access in xHCI controller initialization 2024-11-21 13:46:09 +02:00
Bananymous 1253e2a458 Kernel: Add support for bulk endpoints and update endpoint API
USB device now sets its own data buffers for IN/OUT endpoints. This
allows more customization and parallelism as data buffer does not have
to be shared.
2024-11-21 13:44:21 +02:00
Bananymous 857b3e92f8 Kernel: Support initializing USB 3 devices 2024-11-21 13:40:16 +02:00