694cda6e40
LibC: Implement remove for stdio
2023-12-14 10:58:50 +02:00
e227a87140
Kernel: Allow creating directories if path ends with '/'
...
Also create and create_dir will now fail with EEXISTS if file exists
2023-12-14 10:56:53 +02:00
6cd5763361
Kernel: Allow cloning of mmapped framebuffer regions
2023-12-14 10:54:06 +02:00
0f1c740fe8
Kernel: Implement two missing ubsan handlers needed by lai
2023-12-14 10:53:36 +02:00
3f3e81fcf2
Bootloader: Align boot information passed to kernel
...
UBSAN found this bug
2023-12-14 10:52:51 +02:00
862993398d
AOC2023: Implement day12
...
There seems to be a problem with my malloc so the hash map is not
working. This code worked fine on my linux with actually working
malloc :D
2023-12-14 10:51:48 +02:00
225c7c6ab4
AOC2023: Implement day11
2023-12-11 14:36:33 +02:00
58633ca373
AOC2023: Remove unnecessary loop
2023-12-10 20:18:59 +02:00
00d57d783e
LibC+userspace: Make everything compile with -Wall -Wextra -Werror
...
I added -Wall -Wextra -Werror as public compile flags to libc. Now
everything in userspace in compiled using these flags. I made all
necessary changes to allow compilation to work.
Only exception is execvp which has a large stack usage. Maybe it
should use malloc for the buffer but posix allows ENOMEM only when
kernel is out of memory... This can be fixed when fexecve is
implemented and there is no need for absolute path.
2023-12-10 19:20:14 +02:00
f077e17b2a
AOC2023: Implement day10
2023-12-10 18:28:04 +02:00
2f8759d2d3
Kernel: Make ext2 fs work with block sizes != 1024
2023-12-10 01:32:30 +02:00
a6bfbbf655
ls: Rewrite whole program for cleaner output
...
ls -l now sorts elements and aligns them by columns.
2023-12-10 01:05:12 +02:00
9d8c9baa3f
LibC: Remove unnecessary RWX mask definition
2023-12-09 19:43:49 +02:00
c273bf98c9
ls+stat: show setuid, setgid and sticky bits
2023-12-09 19:43:25 +02:00
99a5b6e2ef
AOC2023: Cleanup day9 code
...
Move tree building to its own function. Both parts can use the same
tree. This also decreaseas memory usage by one element by row :D
2023-12-09 19:08:13 +02:00
284a012509
Kernel: Add framebuffer information to kernel image
2023-12-09 17:33:58 +02:00
abc69fa3d5
Bootloader: Search framebuffer information from kernel memory
...
Framebuffer information is no longer hard coded into bootloader.
Kernel can define framebuffer info structure in its memory which is
used for finding proper video mode.
2023-12-09 17:32:10 +02:00
8b01e2d4a2
Bootloader: Generalize framebuffer video mode search
...
Framebuffer size is now taken as arguments to vesa_find_video_mode
2023-12-09 16:48:04 +02:00
0c3e5980d6
AOC2023: Implement day9
2023-12-09 16:22:43 +02:00
951873098e
BAN: Rewrite heap sort
...
Heap sort is now more close to gnulibc++ version. This is just more
simplified version.
2023-12-08 22:45:55 +02:00
2b927b9729
BAN: Restructure sort functions and namespaces
2023-12-08 18:58:47 +02:00
b523ccb893
AOC2023: Implement day8
...
Second part was kinda weird. You are supposted to assume something
of the input, which necessarily is not true.
2023-12-08 17:13:20 +02:00
7bb3172591
AOC2023: Use the default sort algorithm
2023-12-08 00:10:59 +02:00
be657b9b18
BAN: Add default sort. This is wrapper around sort_intro
2023-12-08 00:10:09 +02:00
94e6b9fa65
BAN: Implement intro sort
2023-12-07 23:56:11 +02:00
d8ea0eeba3
BAN: Add less than operator for iterator
2023-12-07 23:55:41 +02:00
6873244169
BAN: Move placement new to New.h
...
I have no idea why they were defined in Move.h
2023-12-07 23:52:57 +02:00
805b4096e9
BAN: Remove empty else. Builds with -Wall -Wextra
2023-12-07 23:50:35 +02:00
0f74e123b8
BAN: Implement ilog2 for unsigned integers
2023-12-07 23:50:04 +02:00
7f212106db
BAN: Implement heap sort
2023-12-07 23:18:49 +02:00
46c3da71b6
BAN: Cleanup sorting code
2023-12-07 23:18:49 +02:00
e5cab047d6
BAN: Implement more methods for iterators
2023-12-07 23:18:49 +02:00
bf3e9eabd5
BAN: Implement distance() for iterators
2023-12-07 23:18:49 +02:00
19604015de
BAN: Implement quick sort
2023-12-07 19:28:31 +02:00
08bc0a2815
BAN: Implement next() and prev() for iterators and use them in sorts
2023-12-07 19:28:05 +02:00
3bc7113cc5
sudo: fix some typos
2023-12-07 14:05:17 +02:00
24243268a6
Shell: do path resolution only if command doesn't contain '/'
2023-12-07 13:34:46 +02:00
2e858fddb5
Kernel: Remove obsolete Scheduler::is_valid_tid()
...
This function was used when processes could die at any point in time.
Now that processes can only die in known spots, we can be sure they
are not holding any locks. This allows much more performant locking.
2023-12-07 13:26:42 +02:00
12474addda
Kernel: Make Inodes use the new lock
...
Also remove old lock from TTY since it can just use the one Inode
already has.
2023-12-07 13:19:12 +02:00
7c25e4ce5a
Kernel: Implement RecursivePrioritySpinLock
...
This locks won't allow locking from userspace thread if there is
kernel thread waiting to lock this.
2023-12-07 13:18:21 +02:00
669d55707e
AOC2023: Use quick sort in solution
2023-12-07 11:55:28 +02:00
6caa9b6f95
BAN: implement quick sort and test for it
2023-12-07 11:55:28 +02:00
59ad639fa8
BAN: Fix simple iterator operator--()
2023-12-07 11:55:28 +02:00
43458cc74f
BAN: implement exchange sort and test for it
2023-12-07 11:55:28 +02:00
e935a33a4d
BAN: add value_type to iterators
2023-12-07 10:15:18 +02:00
536bb74d53
AOC2023: optimize hand score calculation
2023-12-07 09:26:17 +02:00
a872efdef2
BAN: implement basic swap
...
This will be improved, currently just works on general type T and
moves values between arguments.
2023-12-07 09:26:17 +02:00
efd8be8207
AOC2023: implement day7
2023-12-07 07:56:56 +02:00
06a84da844
Userspace: Implement barebones sudo
...
This doesn't do any password checking or anything. Just sets uid and
gid before execvp()
2023-12-06 18:15:42 +02:00
24b71d1170
Kernel: Appreciate setuid and setgid bits executables
2023-12-06 18:14:27 +02:00