Bananymous
d8bb0b53f8
LibImage: Fix PNG palette decoding
...
I was only loading third of the palette to wrong indices :D
2025-02-12 10:09:03 +02:00
Bananymous
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
Bananymous
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
Bananymous
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
Bananymous
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
Bananymous
11310e7615
Kernel: Don't manually clear xHCI interrupt flag if using MSI
2025-02-10 22:58:14 +02:00
Bananymous
22b32a0fe5
Kernel: Expose PCI interrupt mechanism from PCIDevice
2025-02-10 22:57:25 +02:00
Bananymous
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
Bananymous
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
Bananymous
267fdf9fa1
Kernel: Remove storage devices after unplugging them
2025-02-07 18:04:54 +02:00
Bananymous
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
Bananymous
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
Bananymous
7de689055c
Kernel: Pass xHCI device information in structs
...
This makes code more readable and extendable
2025-02-06 23:18:14 +02:00
Bananymous
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
Bananymous
a2a7302964
Kernel: Make sure USB class driver is deinitialized before xhci device
2025-02-06 22:00:26 +02:00
Bananymous
6a5367dbe3
Kernel: Don't initialize USB alternate interfaces
2025-02-06 21:43:15 +02:00
Bananymous
6768a18475
Kernel: Don't parse xHCI custom slot_types
...
xHCI spec mandates that slot_type for USB protocol is 0.
2025-02-06 21:41:44 +02:00
Bananymous
242ed4a3c2
Kernel: Remove support for custom xHCI speed_ids
...
This gets really weird with hubs and I don't think even linux handles
them.
2025-02-06 21:38:30 +02:00
Bananymous
f9b70d1b5b
Kernel: Don't enter infinite loop on unexpected serial behaviour
2025-02-06 20:59:17 +02:00
Bananymous
faa5252191
Kernel: Fix TTY ANSI CSI m and prevent crash :)
2025-02-06 20:58:03 +02:00
Bananymous
4212f48d7a
bootloader: Cleanup memcpy and memset
...
There isn't really any reason to do 32 bit moves
2025-02-06 20:56:35 +02:00
Bananymous
b30a79c7fe
Kernel: Temporary hack to "fix" munmap
...
My current munmap implementation does not support partial unmaps and
GCC relies on this behaviour. This patch removes unmapping if the
address and len does not fully contain the mmap region.
2025-02-01 22:25:22 +02:00
Bananymous
22374ac8f7
ports: Add make port
2025-01-28 22:50:11 +02:00
Bananymous
17014bb8de
LibC: Fix strndup
...
I did not null terminate short strndup copies :D
2025-01-28 22:40:06 +02:00
Bananymous
d1c3d3d5aa
Kernel: Fix ANSI CSI L
...
With my new memcpy implementation this crashed. I have no idea how this
was not crashing before :D
2025-01-28 18:41:53 +02:00
Bananymous
7fedd94cc5
ln: Don't require link target to exist for symlinks
2025-01-28 17:46:36 +02:00
Bananymous
48eca3d031
LibC: Make libc usable with tcc
...
tcc does not provide its own stdint.h but defines everything in
stddef.h. Also tcc does not support [[noreturn]] attribute syntax.
2025-01-28 17:27:41 +02:00
Bananymous
21d3cf91a0
LibC: Implement some missing signal.h functions
2025-01-28 17:27:41 +02:00
Bananymous
5938cc4086
Kernel: Support pselect sigmask
2025-01-28 17:17:59 +02:00
Bananymous
7c57d736c6
Kernel/LibC: Fix dirent functions
...
dirent functions used to fail if a directory contained more than 128
files :D
2025-01-28 17:15:11 +02:00
Bananymous
cbe3f2a4ac
BuildSystem: Cleanup and fix cmake files
...
I now set library SONAME so i don't have to build them in build root.
Creating font now makes sure the install directory exists. This allows
building using make files.
LibC now links agains ligcc
2025-01-28 17:11:21 +02:00
Bananymous
7a10e0e347
Kernel: Fix TmpFS inode linking
...
TmpFS now looks for empty entries in directories instead of always
appending files to the end of directories. This makes kernel not crash
after process pid 126 is created :D
2025-01-28 17:06:35 +02:00
Bananymous
efb577769e
ports: Add nasm port
2025-01-25 23:10:04 +02:00
Bananymous
8c569ac7bf
2500th COMMIT: ports: Add gcc port
...
I've had this laying around locally for a while. binutils was not
working so I didn't feel like this was worth pushing. My new stdio FILE
buffering rewrite fixed binutils and now gcc actually works!
2025-01-25 18:40:16 +02:00
Bananymous
a84fb57e32
ports: Add binutils port
2025-01-25 18:40:16 +02:00
Bananymous
7314d2b577
ports: Add mpc port
...
This will be used by gcc
2025-01-25 18:40:16 +02:00
Bananymous
ba83ede0d1
ports: Add mpfr port
...
This will be used by gcc
2025-01-25 18:40:08 +02:00
Bananymous
42500ce043
ports: Add gmp port
...
This will be used by gcc
2025-01-25 18:40:04 +02:00
Bananymous
caa8c1da90
LibC: Add stub implementations for set{rlimit,priority}
2025-01-25 18:15:50 +02:00
Bananymous
cbcb9f9044
Kernel: Warn on unsupport `clock_gettime` `clock_id`s
2025-01-25 17:31:17 +02:00
Bananymous
60bffb5f49
LibC: Implement `clock` in terms of `clock_gettime`
...
This allows clock to "just work" after I update clock_gettime to support
CLOCK_PROCESS_CPUTIME_ID.
2025-01-24 19:58:44 +02:00
Bananymous
2a16a67aed
Kernel: Ignore SA_RESTART flag on sigaction
...
This is a big hack but a lot of ports set this flag. This seems really
annoying to implement properly
2025-01-24 19:34:22 +02:00
Bananymous
c6cd185cb5
DynamicLoader: Fix copy relocations
...
Weak symbols are now actually resolved to the same strong symbol between
shared objects and copy relocations now work!
2025-01-24 19:23:33 +02:00
Bananymous
58cdcf754c
ports: Update curl port
...
This patch updates curl to version 8.11.1 and adds support for dynamic
libraries
2025-01-24 19:23:33 +02:00
Bananymous
d969f5df7b
ports: Add zstd port
2025-01-24 19:23:33 +02:00
Bananymous
b6455e0661
LibC: Implement stub for clock
2025-01-24 19:23:33 +02:00
Bananymous
15021b442c
LibC: Fix memchr and memcmp assembly implementations
...
These functions did not work with size 0 :D
2025-01-23 21:55:26 +02:00
Bananymous
ee078fc638
Kernel: Fix fd status/descriptor flag handling
...
I was not sharing status and offset on fork and I was sharing descriptor
flags on dup/dup2
2025-01-17 20:12:04 +02:00
Bananymous
9893c90e74
Kernel: Remove SYS_DUP and implement it using fcntl F_DUPFD
2025-01-17 19:29:47 +02:00
Bananymous
82978da5e3
Kernel: Cleanup AML code
2025-01-17 16:20:00 +02:00