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