Commit graph

261 commits

Author SHA1 Message Date
Erin 7652bbf402 made kernel the system entrypoint. 2022-12-07 01:10:38 +01:00
Erin fa82e49dc3 Threw stuff from the microkernel. Start of moving core parts there. 2022-12-06 23:04:26 +01:00
Erin aaf840c5b4 removed module that I forgot to remove + 1.65 stuff 2022-12-06 23:04:09 +01:00
Erin b2cf3621b5 »fixed« scratchpad 2022-12-06 22:39:52 +01:00
Able 82a48f5c98 remove path 2022-12-06 13:24:04 -06:00
Able 78a52f7102 Consolidating limine graphics 2022-12-02 08:51:21 -06:00
Able d94e50be39 forgor smp is broked 2022-11-30 01:14:34 -06:00
Able e8712d7c39 framebuffer + smp work 2022-11-24 07:20:16 -06:00
Able 65bb92e02b Ready 2022-11-24 03:35:55 -06:00
Able a2d6d7245a Revert "get ableOS running proper on limine sans graphics"
This reverts commit 1e1d004240.
2022-11-23 06:00:38 -06:00
Able 1e1d004240 get ableOS running proper on limine sans graphics 2022-11-23 05:06:38 -06:00
Able 6e20d33817 limine compiling booting and not panicking 2022-11-23 04:02:02 -06:00
TheOddGarlic 23c355762c progress on porting to limine 2022-08-20 09:28:48 +03:00
TheOddGarlic fe69e31b91 interrupts: page fault handler 2022-08-20 09:26:59 +03:00
TheOddGarlic 346d3a9166 repbuild: generate disk image with limine 2022-08-19 09:22:05 +03:00
TheOddGarlic 643db212ef build: fix rust-toolchain configuration 2022-08-18 09:32:14 +03:00
TheOddGarlic c6f7f7665c IDE: Implement writing using Bus Mastering DMA 2022-08-17 17:19:27 +03:00
TheOddGarlic 9329059510 IDE: Add LBA28 addressing support
LBA28 is obsolete at this point, but we prefer to use it over LBA48
whenever we can because LBA28 is faster.
2022-08-17 15:29:50 +03:00
TheOddGarlic f993f6d7b9 IDE: clean everything up 2022-08-17 13:29:34 +03:00
TheOddGarlic 8a1c77db58 IDE: Rename PiixIde to PciIde, use it for all IDE controllers
If the controller is not a known PCI IDE controller, then we warn about
the controller during PCI device discovery. :^)
2022-08-17 13:29:34 +03:00
TheOddGarlic f140938ee6 working IDE DMA implementation 2022-08-17 13:29:34 +03:00
TheOddGarlic 998a1d30cf PCI: device discovery 2022-08-17 13:29:34 +03:00
TheOddGarlic 57d6a5f2bb PCI: a lot of refactoration 2022-08-17 13:29:34 +03:00
TheOddGarlic ca3826bfe5 IDE device discovery 2022-08-17 13:29:34 +03:00
TheOddGarlic 012452dec1 ATA device detection 2022-08-17 13:29:34 +03:00
TheOddGarlic 148c66eae2 progress, i guess 2022-08-17 13:29:34 +03:00
TheOddGarlic 3cb666d26e allocate 16 frames for DMA 2022-08-17 13:29:34 +03:00
TheOddGarlic 6bc74e896c allocate DMA frame 2022-08-17 13:29:34 +03:00
TheOddGarlic 3836416891 PCI: add PIIX3_IDE to supported devices
PIIX4_IDE and PIIX3_IDE are similar enough that we can have one driver
for both.
2022-08-17 13:29:34 +03:00
TheOddGarlic f5c4db98f9 Devices: Add block devices 2022-08-17 13:29:34 +03:00
TheOddGarlic ed68ef9fa0 PCI: add INTEL_PIIX4_IDE device 2022-08-17 13:29:34 +03:00
TheOddGarlic b8f0074aa0 PCI: revision id, programming interface byte and device ID 2022-08-17 13:29:33 +03:00
TheOddGarlic 86b0ac95aa ATA: configure qemu to boot from an IDE drive 2022-08-17 13:29:33 +03:00
TheOddGarlic 5d1b4ed55d ATA: get rid of x86_ata
We'll be using our own implementation.
2022-08-17 13:29:30 +03:00
TheOddGarlic 030a5812f7 make stuff use the new VFS interface 2022-08-08 08:22:58 +03:00
TheOddGarlic 8e487e1697 VFS: fix little oopsie 2022-08-08 08:22:58 +03:00
TheOddGarlic 0cc1aaa64f VFS: path resolution 2022-08-08 08:22:55 +03:00
TheOddGarlic 960da43383 NOT ONE, but TWO deadlocks fixed! 2022-08-08 08:21:35 +03:00
TheOddGarlic 70342c5f46 VFS: move stuff into a VirtualFileSystem struct 2022-08-08 08:21:35 +03:00
TheOddGarlic b01ce11fab recursively walk directories 2022-08-08 08:21:35 +03:00
TheOddGarlic e766229b58 VFS+Ext2: many simplifications and filesystem initialisation 2022-08-08 08:21:35 +03:00
TheOddGarlic 52cd72a949 Ext2: find_dir implementation 2022-08-08 08:21:35 +03:00
TheOddGarlic e21b34a3e7 Ext2: read_dir implementation 2022-08-08 08:21:35 +03:00
TheOddGarlic 8c9521e893 VFS: simplify everything 2022-08-08 08:21:35 +03:00
TheOddGarlic 91c1783b99 vfs+ext2: initial FsNode::read() implementation
The VFS side of things for read() should be done, however due to my
limited ext2 knowledge, I've not implemented partially reading a file,
and in this state only full files can be read.
2022-08-08 08:21:35 +03:00
TheOddGarlic 600a81adf7 vfs: FsNode::release() implementation and weak ref to VFS node in file descriptors 2022-08-08 08:21:35 +03:00
TheOddGarlic 2a163a55ee vfs: rename FsNode::close() to FsNode::release()
FsNode::close() will instead become a method that takes a closes a file descriptor, while release() will close the whole VFS node.
2022-08-08 08:21:35 +03:00
TheOddGarlic cdb6632f98 vfs+ext2: full implementation of FsNode::open() 2022-08-08 08:21:35 +03:00
TheOddGarlic aa3667714b vfs: documentation and a few minor changes 2022-08-08 08:21:35 +03:00
TheOddGarlic 9ed5ffc521 vfs: FsNode::new() 2022-08-08 08:21:35 +03:00