1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 07:08:10 +00:00
serenity/Kernel/Devices
Conrad Pankoff 6f43f81fb4 Kernel: Implement OffsetDiskDevice to prepare for partition support
This implements a passthrough disk driver that translates the read/write
block addresses by a fixed offset. This could form the basis of MBR
partition support if we were to parse the MBR table at boot and create that
OffsetDiskDevice dynamically, rather than seeking to a fixed offset.

This also introduces a dependency in the form of grub. You'll need to have
32-bit grub binaries installed to build the project now.

As a bonus, divorcing Serenity from qemu's kernel loading means we can now
*technically* boot on real hardware. It just... doesn't get very far yet.
If you write the `_disk_image` file to an IDE hard drive and boot it in a
machine that supports all the basic PC hardware, it *will* start loading
the kernel.
2019-06-02 12:37:29 +02:00
..
BlockDevice.cpp Kernel: Move devices into Kernel/Devices/. 2019-04-03 12:36:40 +02:00
BlockDevice.h Add clang-format file 2019-05-28 17:31:20 +02:00
BXVGADevice.cpp Kernel: Memory-mapped files now have the absolute path as their name. 2019-06-02 10:14:28 +02:00
BXVGADevice.h Kernel: Memory-mapped files now have the absolute path as their name. 2019-06-02 10:14:28 +02:00
CharacterDevice.cpp Kernel: Move devices into Kernel/Devices/. 2019-04-03 12:36:40 +02:00
CharacterDevice.h Add clang-format file 2019-05-28 17:31:20 +02:00
DebugLogDevice.cpp Kernel: Have File virtuals take a FileDescriptor& rather than a Process&. 2019-04-29 13:58:40 +02:00
DebugLogDevice.h Kernel: Have File virtuals take a FileDescriptor& rather than a Process&. 2019-04-29 13:58:40 +02:00
Device.cpp Kernel: Make File::absolute_path() const. 2019-06-01 18:56:56 +02:00
Device.h Kernel: Add comment block about File, taking some from Device. 2019-06-02 09:23:37 +02:00
DiskDevice.cpp Kernel: Tidy up IDEDiskDevice a bit. 2019-05-24 04:17:15 +02:00
DiskDevice.h Add clang-format file 2019-05-28 17:31:20 +02:00
FileBackedDiskDevice.cpp Kernel: Move devices into Kernel/Devices/. 2019-04-03 12:36:40 +02:00
FileBackedDiskDevice.h Add clang-format file 2019-05-28 17:31:20 +02:00
FullDevice.cpp Kernel: Have File virtuals take a FileDescriptor& rather than a Process&. 2019-04-29 13:58:40 +02:00
FullDevice.h Add clang-format file 2019-05-28 17:31:20 +02:00
IDEDiskDevice.cpp IDEDiskDevice: Implement basic DMA writes. 2019-05-26 14:58:21 +02:00
IDEDiskDevice.h Add clang-format file 2019-05-28 17:31:20 +02:00
KeyboardDevice.cpp Kernel: Have File virtuals take a FileDescriptor& rather than a Process&. 2019-04-29 13:58:40 +02:00
KeyboardDevice.h Add clang-format file 2019-05-28 17:31:20 +02:00
NullDevice.cpp Kernel: Have File virtuals take a FileDescriptor& rather than a Process&. 2019-04-29 13:58:40 +02:00
NullDevice.h Add clang-format file 2019-05-28 17:31:20 +02:00
OffsetDiskDevice.cpp Kernel: Implement OffsetDiskDevice to prepare for partition support 2019-06-02 12:37:29 +02:00
OffsetDiskDevice.h Kernel: Implement OffsetDiskDevice to prepare for partition support 2019-06-02 12:37:29 +02:00
PCSpeaker.cpp Kernel: Add a beep() syscall that beeps the PC speaker. 2019-05-15 21:40:41 +02:00
PCSpeaker.h Kernel: Add a beep() syscall that beeps the PC speaker. 2019-05-15 21:40:41 +02:00
PS2MouseDevice.cpp Kernel: Add support for the PS/2 mouse wheel if detected. 2019-05-13 19:48:14 +02:00
PS2MouseDevice.h Add clang-format file 2019-05-28 17:31:20 +02:00
RandomDevice.cpp Kernel: Have File virtuals take a FileDescriptor& rather than a Process&. 2019-04-29 13:58:40 +02:00
RandomDevice.h Add clang-format file 2019-05-28 17:31:20 +02:00
ZeroDevice.cpp Kernel: Have File virtuals take a FileDescriptor& rather than a Process&. 2019-04-29 13:58:40 +02:00
ZeroDevice.h Add clang-format file 2019-05-28 17:31:20 +02:00