Commit Graph

10 Commits

Author SHA1 Message Date
Bananymous b048630e5b Kernel: Improve locking in Process, VFS and ATAController
We used to block on all process access. This meant that shell
reading the keyboard input would block all VFS access making disk
accesses practically impossible. We now block only when it is
necessary :)
2023-03-30 22:02:16 +03:00
Bananymous e2791e5260 Kernel: StorageDevices and Controllers are now devices 2023-03-30 14:22:15 +03:00
Bananymous dd84a2175f Kernel: Move Partition out of StorageDevice and rename functions 2023-03-29 13:23:01 +03:00
Bananymous 5fd26b4ea8 Kernel: Lock process functions instead of the ata controller
Process has to use locks at least on some functions so multithreaded
disk io is safe. This seemed to fix corrupted reads from disk
2023-03-24 01:17:39 +02:00
Bananymous 9b56801c3d Kernel: StorageDevice and Ext2 "support" writing 2023-03-23 13:04:13 +02:00
Bananymous 7458f68c38 BAN: Error can now be constructed from c_string or format string
If the resulting string would overflow, we just truncate it to fit
the error message buffer (128) bytes
2023-03-08 17:05:37 +02:00
Bananymous a068d828fe Kernel: ATA reads go through the ata controller and not only device 2023-03-08 03:26:25 +02:00
Bananymous 52aa98ba25 Kernel+LibC: Add some errno codes
Kernel now returns ENOMEM and other errnos, so we dont have to write
error messages
2023-03-02 21:10:44 +02:00
Bananymous 7d84f290a1 Kernel: Add lock to Disk reads before I forget 2023-02-26 03:48:11 +02:00
Bananymous 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