Bananymous
60201ec28a
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
Bananymous
7298e6ba5d
AOC2023: Implement day10
2023-12-10 18:28:04 +02:00
Bananymous
773e92fece
Kernel: Make ext2 fs work with block sizes != 1024
2023-12-10 01:32:30 +02:00
Bananymous
acbded514c
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
Bananymous
343c146c61
LibC: Remove unnecessary RWX mask definition
2023-12-09 19:43:49 +02:00
Bananymous
70f37295ba
ls+stat: show setuid, setgid and sticky bits
2023-12-09 19:43:25 +02:00
Bananymous
0648d0d653
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
Bananymous
e4ed65b897
Kernel: Add framebuffer information to kernel image
2023-12-09 17:33:58 +02:00
Bananymous
75579f15d4
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
Bananymous
fbe75b6d63
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
Bananymous
50b0413483
AOC2023: Implement day9
2023-12-09 16:22:43 +02:00
Bananymous
7ce284f38c
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
Bananymous
1e929ffc9d
BAN: Restructure sort functions and namespaces
2023-12-08 18:58:47 +02:00
Bananymous
33b3c8bed0
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
Bananymous
6ebe698218
AOC2023: Use the default sort algorithm
2023-12-08 00:10:59 +02:00
Bananymous
d11392c980
BAN: Add default sort. This is wrapper around sort_intro
2023-12-08 00:10:09 +02:00
Bananymous
a990143628
BAN: Implement intro sort
2023-12-07 23:56:11 +02:00
Bananymous
66630bd5eb
BAN: Add less than operator for iterator
2023-12-07 23:55:41 +02:00
Bananymous
8971c0eb85
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
Bananymous
a8c3e6a9e2
BAN: Remove empty else. Builds with -Wall -Wextra
2023-12-07 23:50:35 +02:00
Bananymous
1fcf56f6c6
BAN: Implement ilog2 for unsigned integers
2023-12-07 23:50:04 +02:00
Bananymous
6ee01a1237
BAN: Implement heap sort
2023-12-07 23:18:49 +02:00
Bananymous
bbed9a30c6
BAN: Cleanup sorting code
2023-12-07 23:18:49 +02:00
Bananymous
8a0ceb56dc
BAN: Implement more methods for iterators
2023-12-07 23:18:49 +02:00
Bananymous
ccf1786485
BAN: Implement distance() for iterators
2023-12-07 23:18:49 +02:00
Bananymous
4662068071
BAN: Implement quick sort
2023-12-07 19:28:31 +02:00
Bananymous
9f5bdde29d
BAN: Implement next() and prev() for iterators and use them in sorts
2023-12-07 19:28:05 +02:00
Bananymous
1aef0f5f0e
sudo: fix some typos
2023-12-07 14:05:17 +02:00
Bananymous
918657b658
Shell: do path resolution only if command doesn't contain '/'
2023-12-07 13:34:46 +02:00
Bananymous
9781cc5d16
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
Bananymous
6ed6fb6f78
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
Bananymous
39170a437e
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
Bananymous
d824449ddb
AOC2023: Use quick sort in solution
2023-12-07 11:55:28 +02:00
Bananymous
8aa137bdfe
BAN: implement quick sort and test for it
2023-12-07 11:55:28 +02:00
Bananymous
d37b59b2df
BAN: Fix simple iterator operator--()
2023-12-07 11:55:28 +02:00
Bananymous
412aa05feb
BAN: implement exchange sort and test for it
2023-12-07 11:55:28 +02:00
Bananymous
44358a9182
BAN: add value_type to iterators
2023-12-07 10:15:18 +02:00
Bananymous
8516f04467
AOC2023: optimize hand score calculation
2023-12-07 09:26:17 +02:00
Bananymous
045a96009e
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
Bananymous
d79703063f
AOC2023: implement day7
2023-12-07 07:56:56 +02:00
Bananymous
e811fc0be5
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
Bananymous
0389fbe88d
Kernel: Appreciate setuid and setgid bits executables
2023-12-06 18:14:27 +02:00
Bananymous
d7e362aef8
LibC: Implement basic execvp
2023-12-06 18:14:00 +02:00
Bananymous
32be14fdb0
LibC: Implement and fix some string.h functions
2023-12-06 18:13:34 +02:00
Bananymous
91ee80ea86
Kernel: Make sys_nanosleep interruptable by signals
2023-12-06 16:22:24 +02:00
Bananymous
5b8adb8418
Kernel: Cleanup sys_sleep() and TTY::read_impl
2023-12-06 16:21:22 +02:00
Bananymous
fee9ee0f16
Kernel: Add API to block on semaphore until unblock or EINTR
2023-12-06 16:13:07 +02:00
Bananymous
4a5b38ca07
Kernel: Scheduler::unblock_thread() wakes sleeping threads
2023-12-06 16:12:37 +02:00
Bananymous
094978b8d1
LibC: make sleep() set errno if sleep woke up early
2023-12-06 13:13:43 +02:00
Bananymous
d48839cf75
Kernel: Make sleep syscall interruptable
2023-12-06 13:13:37 +02:00