994713d04c
Kernel: Implement FramebufferDevice::get_pixel()
2025-04-18 02:35:28 +03:00
554b13ac50
Kernel: Restructure terminal initialization
...
This is still very ugly and will be rewritten in the future :D
2025-04-18 01:19:59 +03:00
439fb57d88
Kernel: Fix ANSI CSI @ and b for VirtualTTY
2025-04-17 23:24:17 +03:00
ac90800c3c
Kernel/LibC/DynamicLoader: Implement thread local storage
...
For some reason this does not work on 32 bit version, so it is disabled
on that platform. I'll have to look into it later to find the bug :)
2025-04-15 23:33:39 +03:00
08f5833ca8
Kernel/LibC: Implement pthread_attr_init
2025-04-15 23:31:17 +03:00
4bcd3ed86f
Kernel: Start working on TLS, add SYS_{SET,GET}_TLS
2025-04-15 23:31:17 +03:00
a933fabb86
Kernel: Define constant USERSPACE_END
...
This should be used for userspace generic allocations. Currently I used
KERNEL_OFFSET, but I want to limit userspace to the actual lower half of
the address space
2025-04-15 23:31:17 +03:00
36baf7b0af
Kernel/LibC/DynamicLoader: Update process start ABI
...
We now use SysV abi for process startup
2025-04-15 23:05:52 +03:00
4b1c20fa36
Kernel: Make SYS_{,P}READ work with count == 0
2025-04-15 21:36:00 +03:00
00015285ab
Kernel: Add vaddr->paddr getter to VirtualRange
2025-04-15 21:25:15 +03:00
0f936fc163
Kernel: Cleanup 32 bit interrupt stack alignment
2025-04-15 21:21:23 +03:00
15045cc486
Kernel: Make nonblocking sockets unblocking :)
2025-04-05 18:42:02 +03:00
c9132d984b
Kernel: Fix TCP window scaling
2025-04-05 18:40:23 +03:00
a0123e7c2d
Kernel: save and load sse context in more spaces
2025-04-02 12:58:39 +03:00
be786be67d
Kernel/LibC: Implement pthread_join
2025-04-02 12:58:39 +03:00
9066e62a97
Kernel/LibC: Implement sched_yield
2025-04-02 12:58:39 +03:00
5549696c3a
Kernel/LibC: Implement pthread_self
2025-04-02 02:39:29 +03:00
9fb161c320
Kernel: Move thread stacks 1 MiB back
2025-04-01 23:26:13 +03:00
c1618e2b5d
Kernel/LibC: Add basic support for pthread_{create,exit}
2025-04-01 23:26:13 +03:00
36026d4ec6
Kernel: Cleanup TCP and add basic window scaling support
2025-04-01 23:09:30 +03:00
96767f5ca8
Kernel: Implement PCI interrupt routing
...
This does not really work but I have no idea what I'm doing wrong
2025-04-01 23:09:30 +03:00
76bad31dd5
Kernel: Reorder locking with VirtualRange
2025-04-01 23:09:30 +03:00
2e3b917192
Kernel: Cleanup PS2 mouse button event generation
2025-04-01 23:09:30 +03:00
95f262b3e6
Kernel: Print process pid through /dev/debug
2025-04-01 23:09:30 +03:00
aebacb6b6a
Kernel: Bypass PS2 detection if scancode set is forced
2025-04-01 23:09:30 +03:00
27613da5ea
Kernel: Route PCI Interrupt Link Device interrupts
2025-04-01 23:09:30 +03:00
28ac6c2267
Kernel: Implement AML FindSet{Left,Right}Bit
2025-04-01 23:09:30 +03:00
1c1fc65c7c
Kernel: Add API to reserve GSI instead of irq
...
This also fixes a bug with IOAPIC gsi_base != 0
2025-04-01 23:09:30 +03:00
ba74b352bd
Kernel: Make BufferField actually access the buffer and not copy
2025-04-01 23:09:30 +03:00
0474ac4262
Kernel: Expose ACPI resolve_package_element to outside
2025-04-01 23:09:30 +03:00
aba49cc93f
Kernel: Add API to get ACPI reference paths
2025-04-01 23:09:30 +03:00
b3b5b40163
Kernel: Add _OS an _REV to ACPI namespace
2025-04-01 23:09:30 +03:00
0e085b30cc
Kernel: ACPI add easier API for calling methods with arguments
2025-04-01 23:09:30 +03:00
35149b6960
Kernel: Add helper functions to create AML String and Buffer
2025-04-01 23:09:30 +03:00
3800d5420e
Kernel: Collect created AML nodes in add_{named,alias}...
...
This makes it harder to miss adding scoped objects. Before I was not
deleting all types of nodes on method return
2025-04-01 23:09:25 +03:00
b145c1ab64
Kernel: Add easier api for evaluating ACPI nodes
2025-04-01 23:09:20 +03:00
b8a3439219
Kernel: Add getter for ACPI namespace
2025-04-01 23:09:15 +03:00
83c66901f8
Kernel: Fix reboot when ACPI is disabled
...
If ACPI was disabled ACPI::reset() would page fault when accessing
namespace instead of checking wheter namespace is initialized :D
2025-02-11 21:53:20 +02:00
088f77a226
Kernel: Add super basic support for USB keyboard LEDs
...
This is very hacky but it seems to mostly work. Also for some reason
this fixed my Razer Mamba mouse????
2025-02-11 02:18:50 +02:00
4dd6c85df2
Kernel: Fix USB keyboard Scroll lock
...
I was using 8 bit modifier and ScrollLock bit does not fit this. Also I
was not generating ScrollLock keypresses
2025-02-11 02:16:38 +02:00
d0452a3510
Kernel: Fix xHCI controller destruction
...
Port updater task was not actually able to exit without a kernel panic.
This patch makes controller wait until port updater exits itself :D
2025-02-10 22:58:57 +02:00
11310e7615
Kernel: Don't manually clear xHCI interrupt flag if using MSI
2025-02-10 22:58:14 +02:00
22b32a0fe5
Kernel: Expose PCI interrupt mechanism from PCIDevice
2025-02-10 22:57:25 +02:00
ad143c184f
Kernel: Add basic support for USB hubs
...
This is still buggy and some hubs lead to usb transaction errors. I'll
have to debug this but this shouldn't prevent any already working device
from working
2025-02-10 22:56:25 +02:00
803a4cd163
Kernel: Don't enable ACPI devices when ACPI is disabled
...
This really didn't make any sense. There are no ACPI device to be
initialized when AML is not parsed :D
2025-02-07 21:35:25 +02:00
267fdf9fa1
Kernel: Remove storage devices after unplugging them
2025-02-07 18:04:54 +02:00
26d2a4420e
Kernel: Don't limit xHCI TRB transfer length to max packet size
...
This made no sense and just used a ton of TRBs.
This patch also fixes some incorrectly set flags in data/status stage
TRBs.
2025-02-06 23:18:14 +02:00
c623ad7da0
Kernel: Use correct USB endpoint field to determine interval
...
I was using the wrong endpoint descriptor field which caused intervals
to be messed up.
2025-02-06 23:18:14 +02:00
7de689055c
Kernel: Pass xHCI device information in structs
...
This makes code more readable and extendable
2025-02-06 23:18:14 +02:00
63b15a8855
Kernel: Rename USB initialize_endpoint -> configure_endpoint
...
This makes more sense as the USB command is CONFIGURE_ENDPOINT
Also configure_endpoint can be called multiple times on the same
endpoint. There was no reason to limit this to only one call.
2025-02-06 22:10:00 +02:00