Commit Graph

2432 Commits

Author SHA1 Message Date
Bananymous 3e36834751 aoc2024: Implement day10 solution 2024-12-10 17:26:39 +02:00
Bananymous 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
Bananymous 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
Bananymous 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
Bananymous 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
Bananymous 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
Bananymous 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
Bananymous cf9ba737f0 aoc2024: Implement day7 solution 2024-12-07 07:34:21 +02:00
Bananymous 2d0690ae2d Kernel: Cleanup most of syscalls dealing with files 2024-12-07 05:33:04 +02:00
Bananymous 71a2d0971f Kernel: Remove unnecessary reverse from VFS file search 2024-12-07 01:41:23 +02:00
Bananymous 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
Bananymous fbc0319cb6 aoc2024: Implement day6 solution 2024-12-07 01:08:08 +02:00
Bananymous e8bc3c2d80 General: Add intructions to run doom to README 2024-12-06 20:25:09 +02:00
Bananymous fe192e07fb General: Update README feature list 2024-12-05 19:49:38 +02:00
Bananymous 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
Bananymous 72d9e4c1e7 Kernel: Remove accidental debug prints from fcntl syscall 2024-12-05 17:34:32 +02:00
Bananymous cb7d5c9d09 userspace: Implement `dirname` utility 2024-12-05 08:30:30 +02:00
Bananymous 097ab82529 userspace: Implement `basename` utility 2024-12-05 08:30:06 +02:00
Bananymous ccb603d77f aoc2024: Implement day5 solution 2024-12-05 08:16:34 +02:00
Bananymous d7b02db832 aoc2024: Implement day4 solution 2024-12-05 08:16:12 +02:00
Bananymous 56cc5da9fb userspace: Implement `ln` utility 2024-12-05 08:14:45 +02:00
Bananymous 1903079f96 LibC: Fix popen to return correct return value instead of -1 2024-12-05 06:47:10 +02:00
Bananymous b6d0950ee9 LibC: Fix strftime implementation
This implementation now passes every musl-libc test :)
2024-12-05 06:46:31 +02:00
Bananymous c1a32a4041 LibC: Implement mktime 2024-12-05 06:43:35 +02:00
Bananymous 8fa443879c ports: Add working tcc port!
You can actually now compile programs within banan-os!!
2024-12-04 21:23:09 +02:00
Bananymous 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
Bananymous 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
Bananymous 3b7b6beca5 ports: Allow using banan-os cmake toolchain file for ports 2024-12-03 20:29:38 +02:00
Bananymous 0dd81328ff ports: Unconditionally compile banan-os before building ports
This allows ports to use any banan-os library cleanly. Ninja is fast on
when everything is already compiled, so it doesn't add too much
overhead.
2024-12-03 20:29:38 +02:00
Bananymous a668593e6b ports: Don't update ports on every build
This makes using ports much less painful :)
2024-12-03 20:29:38 +02:00
Bananymous 3a5a22511a aoc2024: Implement day3 solution 2024-12-03 20:29:38 +02:00
Bananymous 86859267f0 ports/curl: remove libcurl.la file and use /dev/urandom 2024-12-03 20:29:38 +02:00
Bananymous 88c9f6d233 LibC: Make environ a weak alias
If user program defines its own global `environ` variable it will still
work :)
2024-12-03 20:29:38 +02:00
Bananymous 176693dd5a LibC: Implement wcscmp and wcsncmp 2024-12-03 16:21:54 +02:00
Bananymous 62bee04fc0 LibC: Implement dummy utime that just checks file existance 2024-12-03 16:21:18 +02:00
Bananymous 0a5aacfd87 Kernel: Allow open with O_CREAT bypass file permission checks
call to open(path, O_CREAT|O_EXCL|O_RDWR, 0444) should open file as
read-write although file is created as read-only on filesystem.
2024-12-03 16:17:34 +02:00
Bananymous 2dec3a6c95 Kernel: Add some sanity checks for existanse of threads 2024-12-03 16:16:50 +02:00
Bananymous fcc2814199 Kernel: Remove process from alarm list after it dies 2024-12-03 16:16:08 +02:00
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