Commit Graph

2655 Commits

Author SHA1 Message Date
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
c26e347e91 Kernel: Fix AML FieldUnit conversion and NameString construction 2024-12-18 18:29:04 +02:00
1b94957b07 Kernel: Copy AML NameString base when moving it :) 2024-12-18 18:28:16 +02:00
2e39668605 aoc2024: Implement day18 solution 2024-12-18 14:06:32 +02:00
0642c569b4 TaskBar: Show battery percentage if available 2024-12-18 14:06:32 +02:00
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
b9fe564d78 Kernel: Check for GCC when ignoring Wmaybe-uninitialized 2024-12-18 01:45:36 +02:00
437fa45ca2 Kernel: Add helper to find ACPI devices with EISA id 2024-12-18 01:45:00 +02:00
85e215650c Kernel: Implement AML ToStringOp 2024-12-18 01:44:33 +02:00
7eb186dad4 Kernel: Add to_sv() helper for AML String 2024-12-18 01:43:46 +02:00
2259614640 Kernel: Remove unused function from ACPI namespace 2024-12-18 01:43:04 +02:00
a584e1a4ec aoc2024: Implement day17 solution 2024-12-17 23:30:37 +02:00
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
463bb72d24 aoc2024: Implement day16 solution 2024-12-16 17:23:08 +02:00
8b312a47e6 BAN: Allow MUST and TRY to contain commas 2024-12-16 17:22:40 +02:00
46d4e32510 Kenrel: Validate inode open mode on read/write syscalls 2024-12-15 20:49:12 +02:00
1815a913c3 Kernel: Remove unnecessary hash map lookups 2024-12-15 20:47:40 +02:00
a7e06715ba aoc2024: Implement day15 solution 2024-12-15 20:45:57 +02:00
a89fd95864 aoc2024: Implement day14 solution 2024-12-14 23:52:22 +02:00
9ba9469bb1 aoc2024: Optimize day12
There is actually no need for hash maps
2024-12-14 03:58:11 +02:00
4dbf173ed4 aoc2024: Implement day13 solution 2024-12-14 03:17:55 +02:00
8936cca9cf aoc2024: Implement day12 solution 2024-12-12 17:03:31 +02:00
1c704680a8 aoc2024: Implement day11 solution
Finally we got a problem where trivial solution does not work
2024-12-11 09:05:52 +02:00
3e36834751 aoc2024: Implement day10 solution 2024-12-10 17:26:39 +02:00
581caff638 BuildSystem: Install base sysroot only once
Base sysroot is not only installed when creating the syroot directory
for the first time. To get it installed again, you have to either delete
the old sysroot diretory or run clean target

This makes it so its actually possible to edit files specified in the
base sysroot without random hacks.
2024-12-10 16:44:59 +02:00
8b612ba547 aoc2024: Implement day9 solution
part2 is kinda unoptimized, it should not use expanded input, but I did
not feel like rewriting my parsing code :)
2024-12-09 16:20:21 +02:00
90820f24a4 BAN: Make HashMap::{insert,emplace}{,_or_assign} return an iterator
This reduces the number of lookups done into the hash map :)
2024-12-09 03:37:13 +02:00
12a37500b0 Kernel: Fix triple-fault in vitual tty
This was happening when printing non-utf8 data while having virtual tty
as the debug console.
2024-12-09 03:35:51 +02:00
3ae6ffdb01 ports/tcc: Create usr/include/sys/ucontext.h
This file does not have to contain anything, tcc just requires that it
exists.
2024-12-08 20:42:04 +02:00
c4e76b391e aoc2024: Implement day8 solution
I did not feel like optimizing this one, so its a O(n^2) looking over
every cell in the grid. Performs way faster than my optimized day6
solution tho :DD
2024-12-08 16:14:39 +02:00
cf9ba737f0 aoc2024: Implement day7 solution 2024-12-07 07:34:21 +02:00
2d0690ae2d Kernel: Cleanup most of syscalls dealing with files 2024-12-07 05:33:04 +02:00
71a2d0971f Kernel: Remove unnecessary reverse from VFS file search 2024-12-07 01:41:23 +02:00
3bf57e0748 Kernel: Add . and .. entries to /proc/<pid> directories
This allows to run `cd ..` in one of these directories
2024-12-07 01:37:40 +02:00
fbc0319cb6 aoc2024: Implement day6 solution 2024-12-07 01:08:08 +02:00
e8bc3c2d80 General: Add intructions to run doom to README 2024-12-06 20:25:09 +02:00
fe192e07fb General: Update README feature list 2024-12-05 19:49:38 +02:00
51b6329c86 Kernel: Make backspace \b and delete 0x7F
This is what `vim` seems to expect and imo makes way more sense.
2024-12-05 17:34:37 +02:00
72d9e4c1e7 Kernel: Remove accidental debug prints from fcntl syscall 2024-12-05 17:34:32 +02:00
cb7d5c9d09 userspace: Implement dirname utility 2024-12-05 08:30:30 +02:00
097ab82529 userspace: Implement basename utility 2024-12-05 08:30:06 +02:00
ccb603d77f aoc2024: Implement day5 solution 2024-12-05 08:16:34 +02:00
d7b02db832 aoc2024: Implement day4 solution 2024-12-05 08:16:12 +02:00
56cc5da9fb userspace: Implement ln utility 2024-12-05 08:14:45 +02:00
1903079f96 LibC: Fix popen to return correct return value instead of -1 2024-12-05 06:47:10 +02:00
b6d0950ee9 LibC: Fix strftime implementation
This implementation now passes every musl-libc test :)
2024-12-05 06:46:31 +02:00
c1a32a4041 LibC: Implement mktime 2024-12-05 06:43:35 +02:00
8fa443879c ports: Add working tcc port!
You can actually now compile programs within banan-os!!
2024-12-04 21:23:09 +02:00
3a465cb94f DynamicLoader: Don't write to pltgot if it does not exist
This makes `tcc` compile runnable executables
2024-12-04 21:11:43 +02:00
49133dce48 Kernel: Make pipe check data every 100ms
This prevents dead lock if read-end does not detect data before blocking
why write-end already notified.
2024-12-03 21:54:27 +02:00