Commit Graph

2484 Commits

Author SHA1 Message Date
Bananymous 82978da5e3 Kernel: Cleanup AML code 2025-01-17 16:20:00 +02:00
Bananymous 80ce9d546a Kernel: Don't error out on SYS_WAIT with W{CONTINUED,UNTRACED}
As I don't support stopping and continuing processes these flags are
effecively no-ops
2025-01-17 16:14:52 +02:00
Bananymous 34775633b2 Kernel: Clear DF on every interrupt handler
I was missing this and it lead to UB with my new mem* functions that
were implemented with `rep`
2025-01-17 16:11:13 +02:00
Bananymous 03b5c8e76e Kernel: Fix disk caching when `readonly` is specified 2025-01-16 16:16:38 +02:00
Bananymous 766b8cd62e LibC: Fix stdio FILE operations
Mixing read/write/ungetc was broken. This mostly fixes everything. There
might still be some problems that have to be fixed
2025-01-16 14:57:58 +02:00
Bananymous 609067cefa Kernel: Cleanup internal CPUID functions declarations 2025-01-14 22:57:44 +02:00
Bananymous 9d497ad311 Kernel: Cleanup interrupt stub definitions 2025-01-14 22:55:06 +02:00
Bananymous 72059a9441 LibC: Redefine SEEK_* macros to match common systems
some ports written in assembly seem to depend on this
2025-01-14 22:52:13 +02:00
Bananymous ebecbb69ec LibC: Implement some mem* and str* functions in assembly
This made them a lot faster on modern cpus with optimized rep stos and
rep movs
2025-01-14 22:50:46 +02:00
Bananymous b129bab81a Kernel: Make mem* and str* functions weak symbols 2025-01-14 19:08:03 +02:00
Bananymous 14c70c5cc8 LibC: Make mem* and str* functions weak symbols
This allows adding architecture dependent implementations while still
providing an general implementation
2025-01-14 18:36:54 +02:00
Bananymous d62a67502e LibC: Remove global -fno-tree-loop-distribute-patterns flag
This is only really needed for string.cpp where mem* and str* functions
are defined
2025-01-14 18:35:33 +02:00
Bananymous 4b2c303873 LibC: Add weak_alias header that defines a weak_alias macro 2025-01-14 18:33:57 +02:00
Bananymous d189f00f38 Kernel: Null terminate tmpfs directory entries 2025-01-12 16:03:09 +02:00
Bananymous a5cf92b2ff Kernel: Use uint64_t instead of size_t for AML node conversion
This allows 32 bit to compile again :)
2024-12-30 06:27:49 +02:00
Bananymous 8c45249c06 LibC: Remove stdint.h as toolchain provides one
I have no idea why i even had this written, it was just containing
compiler macros
2024-12-30 06:26:17 +02:00
Bananymous 55c8a15983 aoc2024: Implement day25 solution
This was a nice AOC season. First time I fully completed it! I may still
optimize my solutions as some of them are a bit slow...
2024-12-25 18:13:57 +02:00
Bananymous 3607e2e759 aoc2024: Implement day24 solution
This is kinda weird and specific to my input but it works xD
2024-12-25 18:13:20 +02:00
Bananymous d035068982 aoc2024: Implement day23 solution
I'm not proud of my implementation to last 2 days, but they work in a
reasonable time. I might optimize them later...

Problem is largely with my hash structures. Preallocating a lot of
elements before running day22 makes it run in less than half of the
current time.
2024-12-23 21:20:47 +02:00
Bananymous af8156f310 aoc2024: Implement day22 solution 2024-12-23 01:47:27 +02:00
Bananymous 47b995a2a3 aoc2024: Implement day21 solution 2024-12-22 21:39:28 +02:00
Bananymous 6f8f99f42c Terminal: Set terminal size with TIOCSWINSZ when starting
This actually fixes the very broken vim port
2024-12-21 03:23:21 +02:00
Bananymous 69137cddab Kernel: Implement TIOCSWINSZ for pseudo terminals
I have no idea how I had forgotten this
2024-12-21 03:22:48 +02:00
Bananymous 9caa3030ea aoc2024: Implement day20 solution 2024-12-20 21:31:10 +02:00
Bananymous 3e9826acf5 aoc2024: Implement day19 solution 2024-12-19 12:57:28 +02:00
Bananymous d7b4f54983 Kernel: Check Control Method Battery _STA bit 4
This bit indicates wheter the battery is actually present.
2024-12-19 02:35:09 +02:00
Bananymous 00b0dcd306 Kernel: Reorder ACPI initialization method calls 2024-12-19 02:35:09 +02:00
Bananymous 53c356a940 Kernel: Implement AML MatchOp 2024-12-18 19:26:19 +02:00
Bananymous a7f3351c0e TaskBar: Prevent possible division by zero
If battery reports its full capacity as zero, battery percentage
calculation did a division by zero crashing the TaskBar :)
2024-12-18 18:36:26 +02:00
Bananymous 3a6cdfff45 Kernel: Fix ACPI namespace initialization
Now _REG, _STA, _INI are called in the order my laptop expects them to
be called. This was kinda weird because what uACPI was doing did not
work.

\_SB_.PCI0.LPC0.EC0_.BAT0._STA required \_SB_.PCI0.LPC0.EC0_._REG to be
called
\_SB_.PCI0.LPC0.EC0_._REG required \_SB_.PCI0._STA to be called

Now I call all the _REG methods of a device after calling _STA/_INI and
after performing the whole _STA/_INI sequence i call rest of missing
_REG functions
2024-12-18 18:30:45 +02:00
Bananymous c26e347e91 Kernel: Fix AML FieldUnit conversion and NameString construction 2024-12-18 18:29:04 +02:00
Bananymous 1b94957b07 Kernel: Copy AML NameString base when moving it :) 2024-12-18 18:28:16 +02:00
Bananymous 2e39668605 aoc2024: Implement day18 solution 2024-12-18 14:06:32 +02:00
Bananymous 0642c569b4 TaskBar: Show battery percentage if available 2024-12-18 14:06:32 +02:00
Bananymous 4e364bd2f6 Kernel: Add support for ACPI Control Method Batteries
The implementation is kinda weird but it exposes some battery
information to userspace!
2024-12-18 14:06:32 +02:00
Bananymous b9fe564d78 Kernel: Check for GCC when ignoring Wmaybe-uninitialized 2024-12-18 01:45:36 +02:00
Bananymous 437fa45ca2 Kernel: Add helper to find ACPI devices with EISA id 2024-12-18 01:45:00 +02:00
Bananymous 85e215650c Kernel: Implement AML ToStringOp 2024-12-18 01:44:33 +02:00
Bananymous 7eb186dad4 Kernel: Add to_sv() helper for AML String 2024-12-18 01:43:46 +02:00
Bananymous 2259614640 Kernel: Remove unused function from ACPI namespace 2024-12-18 01:43:04 +02:00
Bananymous a584e1a4ec aoc2024: Implement day17 solution 2024-12-17 23:30:37 +02:00
Bananymous 869f4011a1 Kernel: Replace the old AML interpreter by a new, better one
The old AML interpreter was trash and did not follow value/reference
semantics at all. It was also super slow, one of my machines taking over
7 seconds to parse ACPI namespace and call _INI and _STA.
2024-12-17 03:36:33 +02:00
Bananymous 463bb72d24 aoc2024: Implement day16 solution 2024-12-16 17:23:08 +02:00
Bananymous 8b312a47e6 BAN: Allow MUST and TRY to contain commas 2024-12-16 17:22:40 +02:00
Bananymous 46d4e32510 Kenrel: Validate inode open mode on read/write syscalls 2024-12-15 20:49:12 +02:00
Bananymous 1815a913c3 Kernel: Remove unnecessary hash map lookups 2024-12-15 20:47:40 +02:00
Bananymous a7e06715ba aoc2024: Implement day15 solution 2024-12-15 20:45:57 +02:00
Bananymous a89fd95864 aoc2024: Implement day14 solution 2024-12-14 23:52:22 +02:00
Bananymous 9ba9469bb1 aoc2024: Optimize day12
There is actually no need for hash maps
2024-12-14 03:58:11 +02:00
Bananymous 4dbf173ed4 aoc2024: Implement day13 solution 2024-12-14 03:17:55 +02:00