336daa2cc5
Kernel: Add helper for checking whether segment is from userspace
2023-12-06 12:57:13 +02:00
531211e09d
AOC2023: implement day6
2023-12-06 07:27:25 +02:00
894065a67e
LibC: cleanup and fix fgets
...
My quick fix for fgets wrote non-nullterminated newline if size was
one.
POSIX doesn't specify what happens if size == 0, so I do the same as
glibc and return NULL without setting errno.
2023-12-05 10:00:43 +02:00
82cb2ea20b
AOC2023: implement day5
2023-12-05 09:13:13 +02:00
95fc894303
LibC: fix fgets when reading empty line
2023-12-05 07:46:14 +02:00
622007f2ee
Shell: Verify that command exists before executing it
...
This prevents page fault somewhere when executing non-existing
commands.
2023-12-04 22:57:27 +02:00
cf76d2e7d9
AOC2023: remove unnecessary loop
2023-12-04 17:54:10 +02:00
41f8974080
AOC2023: implement day4
2023-12-04 17:51:27 +02:00
3ed25425a3
AOC2023: implement day3
...
Solution to second puzzle is not optimal, it definately should be
O(1) space, but I didn't want to think about it.
2023-12-03 17:07:09 +02:00
49f8c4268f
AOC2023: implement day2
2023-12-02 16:10:37 +02:00
70c224d8ea
AOC2023: Cleanup day1 code
2023-12-01 13:31:55 +02:00
6a7335e5c9
AOC2023: implement day1
2023-12-01 12:38:01 +02:00
3aaa755c51
AOC2023: update buildsystem
2023-12-01 12:38:01 +02:00
c140dd2a65
Kernel: Fix keyboard layout for underscore
2023-12-01 12:31:16 +02:00
dabd79afa7
Userspace: Prepare aoc2023 environment :)
2023-12-01 01:22:53 +02:00
6ccb1bbbf9
init: set default termios on every username prompt
...
Before if e.g. Shell crashed init would have broken termios
2023-12-01 01:22:53 +02:00
9b841cb823
BuildSystem/Kernel: Enable -Wextra and -Werror in kernel
...
Only needed to fix some unused variable bugs
2023-12-01 01:22:53 +02:00
c1cac43f28
BuildSystem: Don't build lai with -Wstack-usage
...
Lai has two functions that trigger warnings on gcc. There isn't
really anything I can do about it, so just disable the warning
2023-12-01 01:22:53 +02:00
8564b59e14
image: Remove inheritance from Netbpm
...
This inheritance made no sense
2023-11-29 20:56:05 +02:00
fdb6dc94ba
Kernel: cast between inheritance with static_cast
...
using reinterpret_cast is not a good idea. preferably we would use
dynamic_cast, but that is not possible since kernel is compiled with
-fno-rtti.
2023-11-29 20:50:57 +02:00
327b330338
Kernel: Make internal framebuffer bpp constexpr defined in libc
2023-11-29 20:07:33 +02:00
7090388c70
cp: allow copying all files except directories
...
The old condition seemed odd. This allows taking screen shots by
copying the /dev/fb0.
2023-11-29 16:13:40 +02:00
ff550785a7
Userspace: Implement basic image rendering for Netbpm
...
You can now render Netbpm (P6) format image to framebuffer using
`image` command. I added basic test image to
/usr/share/images/sample.ppm
2023-11-29 16:11:35 +02:00
d7a3aca5d4
Kernel: Use the correct bpp when writing to framebuffer
2023-11-29 00:31:24 +02:00
056586486d
Shell: make clear use \e[2J instead of \e[J
...
This makes kernel to actually clear the full screen. If framebuffer
did not fit font exactly last row would be left partially uncleared
2023-11-28 23:55:37 +02:00
42a1d26d5b
Userspace: Implement basic test for framebuffer mmap
2023-11-28 23:52:22 +02:00
cc572af390
Kernel: Implement mmaping for framebuffer device
2023-11-28 23:51:56 +02:00
4275d2ce48
Kernel: Add framebuffer device to devfs
2023-11-28 23:51:28 +02:00
4a87d6052b
Kernel: Add API for implementing mmappable devices
2023-11-28 23:50:49 +02:00
d86ecf4f61
Kernel: Reading from negative offset in fb dev gives out info
2023-11-28 23:50:11 +02:00
09b7cb2f33
Kernel/LibC: Implement pread()
2023-11-28 23:47:30 +02:00
4c3da66c92
mmap-shared-test: Add test case for msync
2023-11-22 22:45:16 +02:00
60e755210c
Kernel/LibC: Implement very basic msync
2023-11-22 22:44:06 +02:00
ab9954fe73
Kernel: Delete the now obsolete VesaTerminalDriver
2023-11-22 21:59:11 +02:00
fd18071975
Kernel: Implement TerminalDriver for Framebuffer device
...
Use this new FramebufferTerminalDriver for terminal instead of the
old VesaTerminalDriver. Only drawback with this is that framebuffer
device can only be intialized after DevFS is initialized.
2023-11-22 21:57:17 +02:00
b88a7e0c6b
Kernel: Add more APIs to FramebufferDevice
2023-11-22 21:56:27 +02:00
cdf53f33f6
Kernel: Implement basic framebuffer device
...
This allows exposing framebuffer to userspace
2023-11-22 20:34:41 +02:00
25485069e6
Bootloader: Add cache to ext2 inode data block indices
...
This reduces the number of read calls with current kernel size from
~1700 to ~700 (60% performance boots). Loading the kernel is now alot
faster.
2023-11-22 13:54:53 +02:00
f80bd040c8
Bootloader: add missing size directive
2023-11-21 19:11:48 +02:00
bc5e8add19
Kernel: Make Ext2 filesystem use BlockDevice instead of Partition
2023-11-21 15:20:24 +02:00
7a8fd6d04a
Kernel: TmpFS doesn't mark any functions as final
...
I didn't think these would be overloaded, but they are
2023-11-21 15:19:34 +02:00
b749963b62
Kernel: Add common {read,write}_blocks() api to BlockDevice
2023-11-21 15:19:07 +02:00
6a068fb9f9
Kernel: Move Partition to its own file
2023-11-21 15:16:04 +02:00
19ed0cb9bf
BAN: Add basic GUID data structure
2023-11-21 15:11:50 +02:00
d08e876319
BuildSystem: Check value of BANAN_UEFI_BOOT with if ((...)); then
2023-11-21 11:53:50 +02:00
f2a6f213dd
BuildSystem: Add missing bootloader install script
2023-11-20 14:19:07 +02:00
f7a5bfbccd
Merge pull request 'BuildSystem: custom mount directory for bananos image to avoid conflicts' ( #4 ) from Sinipelto/banan-os:main into main
...
Reviewed-on: #4
2023-11-20 14:16:58 +02:00
6624821f55
BuildSystem: image sh
...
mount in build dir
Signed-off-by: Sinipelto <sinipelto@noreply.bananymous.com >
2023-11-20 14:12:35 +02:00
328acd894f
BuildSystem: image create sh
...
use banan build dir
Signed-off-by: Sinipelto <sinipelto@noreply.bananymous.com >
2023-11-20 14:11:29 +02:00
01b17eaadc
Update script/image.sh
...
mount dir default value
Signed-off-by: Sinipelto <sinipelto@noreply.bananymous.com >
2023-11-20 13:28:53 +02:00