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
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