Commit Graph

2394 Commits

Author SHA1 Message Date
Bananymous bc93d238dd LibC: Fix fread argument order in gethostname 2024-12-03 16:15:16 +02:00
Bananymous 79e2c5d48c LibC: Make FILE* reading buffered
There was no reason to perform a syscall for every byte read
2024-12-03 16:13:48 +02:00
Bananymous 0fab7ad63b Kernel: Fix SYS_FCNTL command handling :)
I had misunderstood how these work
2024-12-03 16:12:26 +02:00
Bananymous e6a2f55a59 Kernel: Closing file backed mmap wont expand the file size 2024-12-03 16:12:26 +02:00
Bananymous 67e9ca56ac Kernel: Create /dev/urandom -> /dev/random symlink
Most software uses urandom instead of random so this allows it work
normally.
2024-12-03 16:12:26 +02:00
Bananymous 713daf6cd3 Kernel/LibC: Add support for creating hardlinks 2024-12-03 16:12:26 +02:00
Bananymous 12abe81c6d ports/openssl: Add support for shared libraries 2024-12-03 01:46:59 +02:00
Bananymous fbcf10c86d LibC: Implement closelog and make syslog print to stddbg 2024-12-03 01:45:54 +02:00
Bananymous 415b20f884 LibC: Remove errno EEXISTS
I don't know why I had added this. It doesn't seem to be a thing on
either POSIX or linux. This was literally equivalent to EXIST
2024-12-02 20:13:38 +02:00
Bananymous d58ca5f37a Kernel/LibC: Implement symlink{,at} 2024-12-02 20:13:38 +02:00
Bananymous 11b6ee423e LibC: Define timezone structure 2024-12-02 20:13:37 +02:00
Bananymous a10ca47657 Kernel/LibC: Implement {,f}statvfs 2024-12-02 20:13:37 +02:00
Bananymous ad1f175a39 Kernel/LibC: Implement getppid 2024-12-02 20:13:37 +02:00
Bananymous fd3246113a LibC: Implement missing execlp and cleanup exec code 2024-12-02 20:13:37 +02:00
Bananymous b8013c883c LibC: Implement getpass 2024-12-02 20:13:37 +02:00
Bananymous ffcc4fd03a init: Make tty owned by logged in user 2024-12-02 20:13:37 +02:00
Bananymous 9d97964998 LibC: Fix getpwend gid field :) 2024-12-02 20:13:37 +02:00
Bananymous f0e54cdd51 LibC: Implement {asctime,ctime,gmtime,localtime}_r
Old non _r prefixed functions are now just wrappers around these new
functions :)
2024-12-02 20:13:37 +02:00
Bananymous 0360fd1efe LibC: Implement mk{,d,s}temp 2024-12-02 20:13:37 +02:00
Bananymous 4508e099ff LibC: Implement getpagesize 2024-12-02 20:13:37 +02:00
Bananymous 6ed1435aeb Kernel/LibC: Implement tcgetpgrp 2024-12-02 20:13:37 +02:00
Bananymous 6346e288ad LibC: Implement getrlimit 2024-12-02 20:13:37 +02:00
Bananymous d2b503910f userspace: fix aoc2023 and aoc2024 linking
This patch makes aoc projects not link against system libc but the cmake
libc target. This allows compilation before libc is installed
2024-12-02 20:13:37 +02:00
Bananymous 747c3b2a4b Kernel/LibC: Implement fsync 2024-12-02 20:13:37 +02:00
Bananymous cccb4e6d5e LibC: Implement basename and dirname 2024-12-02 20:13:37 +02:00
Bananymous f4c6afbdae LibC: Add definitions to LibC that are used by some ports 2024-12-02 20:13:37 +02:00
Bananymous d1ef380e6b LibC: Add missing definitions for ifreq members 2024-12-02 20:13:37 +02:00
Bananymous c02de2580d Kernel: Add support for SIOCGIFNAME ioctl 2024-12-02 20:13:37 +02:00
Bananymous a231f8587e aoc2024: Implement day2 solution 2024-12-02 20:13:37 +02:00
Bananymous 4149748766 Kernel: Add missing include in ACPI headers 2024-12-01 21:32:34 +02:00
Bananymous 783627c315 LibC: Fix time.h sigevent defition 2024-12-01 21:31:27 +02:00
Bananymous 1ff6aa1748 aoc2024: cleanup day1 solution 2024-12-01 07:58:40 +02:00
Bananymous 6662dc4a8d aoc2024: fix `full` runner search path for solutions 2024-12-01 07:58:40 +02:00
Bananymous d6b170e274 aoc2024: implement day1 solution 2024-12-01 07:41:25 +02:00
Bananymous 11cac7a646 aoc2024: prepare programming environment 2024-12-01 07:41:25 +02:00
Bananymous 9c2fcd745c ports/doom: Fix patch calling exit() to actually do what it says 2024-12-01 02:28:50 +02:00
Bananymous 04f49a6819 LibC: Implement {,v}dprintf 2024-11-27 21:33:10 +02:00
Bananymous d465ea2a67 LibC: Fix headers :) 2024-11-27 21:32:10 +02:00
Bananymous 1f5073d0ac ports/doom: Allow doomgeneric to write directly to window framebuffer
This prevents an unnecessary `malloc` of the framebuffer and a copy
every frame.
2024-11-27 13:39:21 +02:00
Bananymous 8dbbbc1a1a Kernel: Add command line option `readonly`
This prevents calls to write_sectors_impl and all dirty pages are always
kept in RAM.
2024-11-27 13:31:55 +02:00
Bananymous f985673dc3 LibGUI: Add API to retrieve Window's underlying framebuffer 2024-11-27 13:29:42 +02:00
Bananymous a6fc3cf7a6 Kernel: Clear AHCI pending interrupts
I have no idea why I did not have this in. All devices were just
constatly spamming interrupts like crazy :D
2024-11-26 01:39:11 +02:00
Bananymous 1941885cfd Kernel: Disable USB Mass Storage writing until I get it fixed
This prevented real hw from running for over 10-20 seconds. When first
disk sync happens after 10 secods, USB storage would enter faulty state
and not allow any io operations.

I have no idea what the problem is. If I don't send Reset command to the
USB device writing seems to work fine. I also don't think its part of
the Reset process either as reading works just fine.
2024-11-26 01:01:25 +02:00
Bananymous 88a86a9927 Kernel: Fix Thread destruction after sys_exit
This had undefined behaviour as Thread's (Processes's) PageTable was
destroyed before Thread had the change to destroy its own stacks that
lived on the PageTable.
2024-11-26 00:59:34 +02:00
Bananymous 48e030bca3 Kernel: Make PageTable non-copyable and non-movable
Also PageTable destructor now verifies that is has allocated something
instead of assuming paddr of 0.
2024-11-26 00:58:35 +02:00
Bananymous 6f118c1be1 BAN: Make HashMap key move constructible
This allows using non-copyable types as keys
2024-11-26 00:57:11 +02:00
Bananymous 7316eb87b8 BAN: Add requires expression for BAN::Formatter
This allows seeing syntax errors before compilation :)
2024-11-26 00:55:58 +02:00
Bananymous 5376236ab6 BAN: Make ErrorOr non-copyable
This makes avoiding accidentals copies easier :)
2024-11-26 00:55:12 +02:00
Bananymous 0af80d48ee BAN: Mark ByteSpan::slice as [[nodiscard]] 2024-11-26 00:54:35 +02:00
Bananymous 793c0368f2 Kernel: Refactor USB mass storage code
Also increment command timeout to 10 seconds so commands don't timeout
when they are not supposted to :)
2024-11-23 01:24:32 +02:00