d94f6388b7
Kernel: Fix all broken locks from new mutexes
2024-02-28 22:45:34 +02:00
3fc1edede0
Kernel/LibC: Implement super basic select
...
This does not really even block but it works... :D
2024-02-12 17:26:33 +02:00
dfe5a2d665
All: Cleanup all files
...
Add newline to end of files and remove whitespace from end of lines
2024-01-24 15:53:38 +02:00
812e9efd41
Kernel: StorageDevices now specify prefix for partition names
2024-01-14 01:16:48 +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
5044810451
Kernel: Make DevFS use the new and better TmpFS instead of RamFS
2023-11-07 16:05:05 +02:00
f3d9da9549
Kernel: Rewrite all read/write functions to use BAN::ByteSpan
...
This allows us to not work with raw pointers and use sized containers
for reading and writing.
2023-10-24 11:56:00 +03:00
bde9ff9319
Kernel: Generalize ATA device and cleanup code
2023-10-12 21:35:25 +03:00
f21d4e794c
Kernel: Rework whole ATA driver structure
...
Make ATA driver more compatible when we are adding SATA support
2023-10-08 02:50:23 +03:00
63dc2b6aa6
Kernel: Implement SYS_SYNC and add sync executable to userspace
...
You can (and have to) manually sync disk after writes to it.
2023-09-11 01:26:27 +03:00
eee0537053
Kernel: Writes to disk are not synchronous anymore
...
Implement "proper" DiskCache syncing
2023-09-11 01:25:16 +03:00
921d95d18f
All: Clear lines with only whitspace in them
2023-09-10 00:31:42 +03:00
dd9af56e21
Kernel: Start work on making inodes more thread safe
...
All inode operations are now locked and thread blocked
2023-09-10 00:31:42 +03:00
104894c0c7
Kernel: Rewrite DiskCache
...
We now cache only clean pages since I don't want to think about
syncing the disk later.
2023-07-27 22:22:39 +03:00
08cd285ca6
Kernel: move Device.h to its own directory
2023-07-19 23:55:38 +03:00
9bcfb34524
Kernel: Rewrite whole device structure
...
We now have DevFileSystem which is derived from RamFileSystem. All
devices are RamInodes. We don't have separate DeviceManager anymore.
To iterate over devices, you can loop througn every inode in devfs.
2023-07-10 23:17:14 +03:00
9228df0f23
Kernel: Inode/Device detection is done with overridden bool functions
2023-06-03 13:28:15 +03:00
813d0f1b5f
Kernel: add basic disk cache
...
ATADevices now add disk cache to themselves
2023-06-03 02:23:14 +03:00
b87dae7e7c
Kernel: Device dev and rdev number is done more properly
...
Also hd* partitions are now 1 indexed instead of 0
2023-04-03 11:43:16 +03:00
8e68d2e3ea
Kernel: Shell can now mount partitions
2023-03-30 15:06:41 +03:00
30c33b55e3
Kernel: Inode::Mode is now a struct so we can have functions in it
2023-03-30 14:41:15 +03:00
e2791e5260
Kernel: StorageDevices and Controllers are now devices
2023-03-30 14:22:15 +03:00
dd84a2175f
Kernel: Move Partition out of StorageDevice and rename functions
2023-03-29 13:23:01 +03:00
9b56801c3d
Kernel: StorageDevice and Ext2 "support" writing
2023-03-23 13:04:13 +02:00
74949401bd
Kernel: Cleanup GPT parsing code
2023-03-23 11:13:14 +02:00
ee5d02aa70
Kernel: Rewrite basically all current disk io stuff
...
This is a big commit that was kinda hard to split to smaller ones.
Essentially we now look at all the mass storage devices from PCI
and initialize (P)ATA devices. This doesn't provide any more functionality
but better abstractions and everything doesn't have to be on its old
default port that might be different for modern computers.
2023-02-26 03:00:29 +02:00