60b396fee5
Kernel: Add mouse move and scroll event merging back
...
This makes mouse work much faster when reading can't keep up with the
amount of events.
2024-07-15 15:45:20 +03:00
4cd9252ff6
Kernel: Fix USB code
...
Fix USB Keyboard scan code table for bottom row of keyboard
Support multiple interfaces on a single USB device
Add usb mouse to default qemu settings
2024-07-15 11:48:48 +03:00
75875d3a8f
Kernel: Set interval and average trb length on configure endpoint
...
Real controllers seem to require this while spec 4.8.2.4 says that they
should be left as zero.
2024-07-15 11:46:28 +03:00
86e9d92ecb
Kernel: Take ownership of xHCI controller from bios
2024-07-14 03:31:35 +03:00
baa4e6475a
Kernel: Implement basic USB Mouse
...
This has the same problem I described in previous commit for keyboard
2024-07-14 02:11:32 +03:00
ac5c77ee2c
Kernel: Implement USB Keyboard
...
This is kinda hacky, as I had disable the PS/2 initialization so that
usb keyboard gets /dev/keyboard0. I should add device hot plugging
support for TTY and GUI...
2024-07-14 02:09:18 +03:00
1efc6a1385
Kernel: Implement simple USB HID driver
...
This should be easily expandable to add HID devices
2024-07-14 02:04:48 +03:00
442ea8a692
BAN: Remove Optional emplace constructor
...
This was kind breaking some initializations. Emplacing is still possible
through Optional::emplace
2024-07-14 01:53:50 +03:00
749be67df3
Kernel: Fix cxxabi for function static variable guards
2024-07-14 01:53:50 +03:00
a97a574718
Kernel: Rewrite the whole input system
...
PS/2 code is now kind of messed up, but it works. Keyboards and mice are
now an abstract class that is automatically exposed to userspace. This
will make adding USB input much nicer.
2024-07-14 01:53:50 +03:00
110a45bee6
BAN: Implement Variant::has_value() and Variant::operator bool()
2024-07-12 20:37:56 +03:00
f120da3aca
Kernel: USB device now sets the current configuration
2024-07-12 11:26:06 +03:00
240684bc1f
Kernel: Refactor some xHCI code and add new definitions
2024-07-12 11:25:24 +03:00
62003d96f3
BAN: Implement Optional::value_or
...
This will return value specified in the argument if optional is not
storing any value.
2024-07-12 11:22:10 +03:00
e905634343
Kernel: Fix bugs and cleanup USB and xHCI code and API
2024-07-11 14:10:55 +03:00
14dce1abac
Kernel: Start work on USB stack
...
Current code can enumerate all xHCI devices and detect their type based
on the class code on device or interface descriptors.
2024-07-10 12:06:00 +03:00
8ddab05ed3
BuildSystem: Cleanup userspace directory layout
...
userspace programs are now in userspace/programs
userspace tests are now in userspace/tests
This makes listing userspace projects much cleaner. Libraries were
already separated to their own directory, so other programs should also.
2024-07-03 09:18:02 +03:00
5dc441c4af
Kernel/userspace: Implement KD_LOADFONT and loadfont program
2024-07-03 09:02:49 +03:00
940fb0d1fd
Base: Add /var/www with dummy index.html
2024-07-02 21:34:32 +03:00
f18c33563d
Kernel: Fix PCI MSI-X allocation
2024-06-30 20:36:43 +03:00
10e8a54b2e
General: Add more missing features to README
2024-06-29 22:13:33 +03:00
f792976d6d
BuildSystem: Don't fill mount dir if mounting fails
2024-06-29 22:12:36 +03:00
08cbd009ac
Kernel: PCI don't report multi function bit with header_type()
2024-06-29 22:11:55 +03:00
3d4219bfee
Kernel: Don't panic if nvme initialization fails
2024-06-29 22:07:55 +03:00
d58a569660
WindowServer: Limit msync to 60 Hz and only sync necessary pages
...
This speeds up GUI a lot. I can now run GUI on real hardware at almost
60 Hz.
2024-06-29 19:00:58 +03:00
fd3cf5d2b1
BuildSystem: Allow running qemu without kvm
...
If you set QEMU_ACCEL to empty string, build system won't try to look
for kvm support.
2024-06-29 19:00:10 +03:00
1a844426c3
Kernel: Add fast path for framembuffer sync if bpp == 32
2024-06-28 23:34:11 +03:00
42237a3bc8
Kernel: Implement fast scrolling for TTY
2024-06-28 23:15:03 +03:00
010c2c934b
BAN: Write RefPtr and WeakPtr to be thread safe
2024-06-28 22:00:29 +03:00
48a76426e7
BAN: Add more APIs for Atomic and make compare_exchage take a reference
2024-06-28 21:47:47 +03:00
0c645ba867
LibGUI: Window now uses double buffering
...
This allows data in shared memory object be always up to date. With this
change window server can update lazily, and not necessarily on all
invalidate calls
2024-06-27 00:39:59 +03:00
f538dd5276
test-tcp: Fix printing of "connection reset" when tcp connection closed
2024-06-27 00:39:22 +03:00
31568fc5a1
Kernel: Rewrite Sockets to not be TmpInodes
...
TmpInodes just caused issues because TmpFS kept them alive. There was
really no reason for sockets to even be stored inside a TmpFS...
2024-06-27 00:35:19 +03:00
44c7fde2f7
BAN: Fix Function requires clause argument forwariding
2024-06-27 00:33:50 +03:00
cb07142832
Kernel: ACPI allow more calling or \_S5
...
Spec says that \_Sx must have 4 fields, but virtual box seems to only
have the two defined once. This patch allows shutodown on virtual box
2024-06-25 23:25:10 +03:00
60a05412c9
Kernel: ACPI implement SizeOf
2024-06-25 23:24:51 +03:00
0179f5ea09
Kernel: ACPI add \_OS string
2024-06-25 23:24:19 +03:00
f671ed7e3f
Kernel: ACPI implement integer stores to registers as copies
...
Before storing const integer and then modifying the register it would
error.
2024-06-25 23:23:52 +03:00
2fccff5a35
Kernel: Implement ACPI IndexOp into Strings
2024-06-25 23:23:00 +03:00
cd41d5f6dd
ports: DOOM install now downloads and installs doom1.wad
2024-06-25 19:57:15 +03:00
66905fcc08
http-server: Make http-server actually usable
...
http-server now implements basic static content from a specified
directory.
2024-06-25 19:36:10 +03:00
af4b138094
Kernel/LibC: Implement realpath
...
realpath is implemented as a syscall. This is not really required but it
was the easiest way to get it working as there is already path
canonicalization at kernel level.
2024-06-25 19:32:40 +03:00
3c57e05a65
BAN: Implement hash for StringView
2024-06-25 19:28:45 +03:00
25099b4c98
Kernel: Don't validate O_SEARCH for non-directories
2024-06-25 19:27:55 +03:00
1ac7629459
BAN: Implement StringView::rfind()
2024-06-25 11:04:03 +03:00
95681a7a05
LibImage: Cleanup bicubic calculations
2024-06-25 11:04:03 +03:00
d7b8458a56
Kernel: Fix TCP sending
...
TCP send was effectively always waiting for connection to close and then
return a value of 0.
2024-06-25 11:04:03 +03:00
67dfe0bcf3
BAN: Allow String::formatted to fail
2024-06-25 11:04:03 +03:00
b1869bced4
BAN: Implement StringView::starts_with()
2024-06-25 11:04:03 +03:00
61aa1ea11f
sudo: Fix installation permissions
...
I had accudentally removed SETUID bit from sudo. This required to
elevate the permissions.
2024-06-24 15:00:08 +03:00