Commit Graph

43 Commits

Author SHA1 Message Date
78d72c2f0c Kernel, libc: Add a getdents() system call
This is meant to be a low-level interface to implement dirent.h on top of.
2022-10-23 14:03:46 +02:00
20429929dd InitRD: Bump up the filesystem limits 2022-10-22 17:23:22 +02:00
58ca030711 initrd: warn when failing to register stuff 2022-10-22 17:21:34 +02:00
073c90e948 InitRD: leak an unused pointer so kmalloc() doesn't map memory all the time 2022-10-20 18:49:00 +02:00
b035795eb3 Kernel: Move errno.h and (k)assert.h out of the main include directory
This is mostly so IDEs don't pick them up instead of the userspace headers :)
2022-10-19 17:41:23 +02:00
d2e2883a79 Kernel: Make mkdir() accessible to userspace 2022-10-16 17:22:12 +02:00
62d631f1b4 Kernel: Rename assert.h to kassert.h so IDEs pickup the kernel header instead of the userspace one 2022-10-15 12:56:48 +02:00
a198cf8d8d Add initrd_mkdir to registered directories in the initrd 2022-10-11 18:25:11 +02:00
4aa3da8c12 VFS: Add basic mount(), unmount() and mkdir() functions (not accessible to userspace yet) 2022-10-11 18:23:00 +02:00
1278cec065 VFS: Add a 'type' flag to Nodes, implement EISDIR 2022-10-11 17:48:11 +02:00
1b84c443fe Merge branch VFS into main
Reviewed-on: #10
2022-10-10 18:25:43 +00:00
da84f1713c InitRD: Use get_blocks_from_size() 2022-10-10 18:45:49 +02:00
bbe7c6e658 VFS: Implement resolve_path and form the initial ramdisk's VFS properly
Finally, resolve_path: a function which takes a path (/etc/fstab for example), and walks the VFS:
In this case, it would start with the root FS node, and ask it: "do you have a directory/file named etc?"
The node could say 'yes', 'no', or 'i'm not a directory, I'm a file' (should not be the case for the VFS root, but for the other ones it could be)
If it says yes, we continue and ask the child if it has a file named fstab. Etc...
2022-10-10 18:44:43 +02:00
2be70d0bc1 VFS: Use 64-bit numbers in read()
There is no need for any kind of 32-bit compatibility.
2022-10-09 21:30:38 +02:00
b38c52f8c7 more vfs stuff 2022-10-08 21:35:19 +02:00
f3d7e220ac The beginnings of a VFS implementation!! 2022-10-08 21:22:46 +02:00
8ce58e9e30 Kernel/InitRD: Use %p with printf() 2022-10-08 18:16:55 +02:00
abcf1b6118 Define PAGE_SIZE as 4096 and use it everywhere instead of using 4096 as a magic number 2022-10-08 14:52:28 +02:00
594d79143e Kernel: enable -Wconversion 2022-10-06 17:13:34 +02:00
8f310dd307 PMM: Map the page bitmap to kernel heap once the PMM and VMM are both initialized 2022-10-04 18:36:09 +02:00
1ecd24f5d6 Kernel: Add SSE support (enable SSE on boot and save context (user tasks only) on task switch) 2022-10-02 18:53:54 +02:00
87cb41e549 Separate the logging stack into toggleable backends, to disable console logging once boot finishes. 2022-10-01 15:35:11 +02:00
53d36be339 Add a much-needed get_blocks_from_size function 2022-10-01 12:13:38 +02:00
3fd1b6773d Panic: Only dump stack trace if InitRD is initialized 2022-09-25 17:41:34 +02:00
a078a11dde Move PMM and VMM initialization into MemoryManager::init 2022-09-25 17:38:17 +02:00
3891d0c52e Rename KernelMemoryManager to MemoryManager
Kind of a more catchy name, isn't it?
2022-09-24 21:45:13 +02:00
46b7dab847 Remove RangeAllocator and make a PMM namespace 2022-09-24 21:27:45 +02:00
c3e5251687 Some more userland and font failing 2022-09-23 16:41:43 +02:00
11dd165a8e Scheduler: add proper support for user tasks (still faults though) 2022-09-22 08:14:04 +02:00
49ddb47ad4 Reorganize structure 2022-09-21 17:56:53 +02:00
d8bfb76eef Try to make TextRenderer work... still failing
I can now safely call try_initialize() in early_init though
2022-09-19 20:17:37 +02:00
86e4fce654 Separate conditions for easier debugging 2022-09-19 19:04:14 +02:00
31460fe148 I.... think I fixed the initrd code? 2022-09-19 17:06:08 +02:00
355ca6ea9f Change initrd/sys/config 2022-09-15 18:42:59 +02:00
efb28d3258 Randomness and stack protection!! 2022-09-14 18:54:40 +02:00
db4c8e96b8 commit 2022-09-14 17:55:24 +02:00
0cb59ee17f please work please 2022-09-11 08:23:32 +02:00
f98a45aefe Updated InitRD to use virtual mappings 2022-09-10 22:15:19 +02:00
6a0cf7cf98 New framebuffer class!! 2022-09-10 18:42:40 +02:00
bd0a24097f Add a KernelMemoryManager namespace to wrap PMM + VMM 2022-09-06 18:08:15 +02:00
0fbc68ca88 Finish VMM 2022-09-06 13:49:17 +02:00
8bff2ee0f5 Add a RangeAllocator which serves as a physical memory allocator 2022-09-06 13:21:54 +02:00
1b727a66ea Ready. Set. Go! 2022-09-05 16:13:51 +02:00