ladybird/Kernel
Peter Ross 9d94c85b6a Kernel: Use IO init method for Bochs emulated VGA adapter
In short: QEMU supports both Memory-Mapped-IO and classic IO methods
for controlling the emulated VGA device. Bochs and VirtualBox only
support the classic IO method. An excellent write up on the history of
these interfaces can be found here:
https://www.kraxel.org/blog/2018/10/qemu-vga-emulation-and-bochs-display

The IO method was how things were done originally in SerenityOS. Commit
6a728e2d76 introduced the MMIO method for
all devices, breaking Bochs and VirtualBox compatibility. Later in
commit 6a9dc5562d the classic IO method
was restored for VirtualBox graphics adapters.

QEMU and Bochs use the same PCI VID/DID (0x1234/0x1111) for the emulated
VGA adapter. To distinguish betwen QEMU and Bochs we use the PCI
revision ID field (0=Bochs, 2=QEMU).
2022-02-24 09:08:04 +02:00
..
API Kernel/Profiling: Add profiling to read syscall 2022-02-14 11:38:13 +01:00
Arch Kernel: Implement booting all CPU cores on x86_64 2022-02-21 17:46:02 +01:00
Bus Kernel: Init receive buffer for dynamically created VirtIO console port 2022-02-20 20:32:22 -08:00
Devices Kernel/Audio: Remove the SB16 driver 2022-02-24 07:26:45 +01:00
FileSystem AK+Kernel: Specialize Trie for NNOP<KString> and use it in UnveilNode 2022-02-16 22:21:37 +01:00
Firmware Kernel: Change static constexpr variables to constexpr where possible 2022-02-09 21:04:51 +00:00
Graphics Kernel: Use IO init method for Bochs emulated VGA adapter 2022-02-24 09:08:04 +02:00
Heap Kernel: Put kmalloc heap expansion debug spam behind KMALLOC_DEBUG 2022-02-05 22:50:39 +01:00
Interrupts Kernel: Fix allocating identity-mapped APIC memory on x86_64 2022-02-21 20:44:09 +02:00
Library Kernel: Remove dead code from ThreadSafeWeakPtr 2022-02-13 23:02:57 +01:00
Locking Kernel: Update terminology around Thread's "blocking mutex" 2022-01-30 16:21:59 +01:00
Memory Kernel: Make Inode::set_shared_vmobject() OOM-fallible 2022-02-14 11:35:20 +01:00
Net Kernel: Lock socket Mutex when servicing IPv4Socket ioctls 2022-02-18 02:22:12 +02:00
Prekernel Kernel: Change static constexpr variables to constexpr where possible 2022-02-09 21:04:51 +00:00
Storage Kernel: Remove useless partition UUID length check 2022-02-16 22:21:37 +01:00
Syscalls Kernel: Use TRY() when validating clock_id in TimeManagement 2022-02-21 15:47:51 -08:00
Tasks Kernel: Remove unnecessary includes from Thread.h 2022-01-30 16:21:59 +01:00
Time Kernel: Use TRY() when validating clock_id in TimeManagement 2022-02-21 15:47:51 -08:00
TTY Kernel: Change static constexpr variables to constexpr where possible 2022-02-09 21:04:51 +00:00
AddressSanitizer.cpp Everywhere: Use bgianf@serenityos.org for my copyright attribution 2021-04-22 21:15:54 +02:00
AddressSanitizer.h Everywhere: Use bgianf@serenityos.org for my copyright attribution 2021-04-22 21:15:54 +02:00
Assertions.h Kernel: Remove ASM_Wrapper include from platform independent processor.h 2021-12-01 11:22:04 -08:00
AtomicEdgeAction.h Kernel: Add per platform Processor.h headers 2021-10-14 01:23:08 +01:00
BootInfo.h Kernel: Add an x86 include check+error in x86/PageDirectory.h 2021-12-01 11:22:04 -08:00
CMakeLists.txt Kernel/Audio: Remove the SB16 driver 2022-02-24 07:26:45 +01:00
CMOS.cpp Kernel: Move x86 IO instructions code into the x86 specific folder 2021-10-01 12:27:20 +02:00
CMOS.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
CommandLine.cpp Kernel: Add nvme_poll command line parameters 2022-02-02 18:26:59 +01:00
CommandLine.h Kernel: Add nvme_poll command line parameters 2022-02-02 18:26:59 +01:00
Coredump.cpp Kernel: Stop trying to write unmapped Process regions into CoreDumps 2022-02-11 17:49:46 +02:00
Coredump.h Kernel: Replace KResult and KResultOr<T> with Error and ErrorOr<T> 2021-11-08 01:10:53 +01:00
Debug.h.in AK+Kernel: Alphabetize debug macros 2022-02-09 17:59:19 +00:00
DoubleBuffer.cpp Kernel: Share code between DoubleBuffer's read() and peek() 2021-11-21 20:22:48 +01:00
DoubleBuffer.h Kernel: Share code between DoubleBuffer's read() and peek() 2021-11-21 20:22:48 +01:00
embedmap.sh Kernel: Make new kernel build process work on macOS 2021-07-15 11:04:30 +02:00
Forward.h Kernel: Replace KResult and KResultOr<T> with Error and ErrorOr<T> 2021-11-08 01:10:53 +01:00
FutexQueue.cpp Kernel: Don't register thread as custom data for FutexBlocker 2021-08-24 01:57:11 +02:00
FutexQueue.h Kernel: Don't register thread as custom data for FutexBlocker 2021-08-24 01:57:11 +02:00
GlobalProcessExposed.cpp AK+Kernel: Return KString from MACAddress::to_string() in the Kernel 2022-02-16 22:21:37 +01:00
init.cpp Kernel: Fixed argument passing for profiling_enable syscall 2022-02-19 11:37:02 +01:00
KBuffer.h Kernel: Propagate overflow errors from Memory::page_round_up 2021-12-28 23:08:50 +01:00
KBufferBuilder.cpp Kernel+AK: Eliminate a couple of temporary String allocations 2021-12-30 14:16:03 +01:00
KBufferBuilder.h Kernel: Make Thread::backtrace() fallible using KString 2022-01-12 16:09:09 +02:00
KLexicalPath.cpp Everywhere: Pass AK::StringView by value 2021-11-11 01:27:46 +01:00
KLexicalPath.h Everywhere: Pass AK::StringView by value 2021-11-11 01:27:46 +01:00
kprintf.cpp Kernel: Instantiate a TextModeConsole early on if there's no framebuffer 2022-02-09 21:05:48 +00:00
kstdio.h Kernel+UE+LibC: Remove unused dbgputch syscall 2021-11-24 22:56:39 +01:00
KString.cpp Kernel: Add an error propagating KString::format(..) API :^) 2021-11-30 11:16:35 +01:00
KString.h Kernel: Make {Nonnull,}OwnPtr<KString> hash compatible with StringView 2022-01-29 23:01:23 +02:00
KSyms.cpp Kernel: Remove unnecessary includes from Thread.h 2022-01-30 16:21:59 +01:00
KSyms.h Everywhere: Pass AK::StringView by value 2021-11-11 01:27:46 +01:00
linker.ld Kernel+Toolchain: Use .init_array section for global constructors 2022-01-24 10:41:47 +00:00
MiniStdLib.cpp Kernel: Build MiniStdLib.cpp in aarch64 builds 2021-09-07 20:15:15 +01:00
mkmap.sh Kernel: Use the toolchain's nm in mkmap.sh 2021-12-30 18:10:51 +01:00
Multiboot.h Kernel: Only use multiboot framebuffer details if present 2022-01-06 22:34:11 +01:00
Panic.cpp Kernel: Ensure that CommandLine is initialized before choosing PanicMode 2022-01-21 19:34:10 +02:00
Panic.h Kernel/Graphics + SystemServer: Support text mode properly 2021-05-16 19:58:33 +02:00
PerformanceEventBuffer.cpp Kernel/Profiling: Add profiling to read syscall 2022-02-14 11:38:13 +01:00
PerformanceEventBuffer.h Kernel/Profiling: Add profiling to read syscall 2022-02-14 11:38:13 +01:00
PerformanceManager.h Kernel/Profiling: Add profiling to read syscall 2022-02-14 11:38:13 +01:00
PhysicalAddress.h AK: Convert AK::Format formatting helpers to returning ErrorOr<void> 2021-11-17 00:21:13 +01:00
Process.cpp Kernel: VERIFY that signals are not sent to Kernel processes 2022-02-21 19:42:16 +01:00
Process.h Kernel: Fixed argument passing for profiling_enable syscall 2022-02-19 11:37:02 +01:00
ProcessExposed.cpp Kernel: Add some implied auto qualifiers 2021-12-30 14:32:17 +01:00
ProcessExposed.h Kernel: Remove unnecessary includes from Thread.h 2022-01-30 16:21:59 +01:00
ProcessGroup.cpp Kernel: Replace KResult and KResultOr<T> with Error and ErrorOr<T> 2021-11-08 01:10:53 +01:00
ProcessGroup.h Kernel: Replace KResult and KResultOr<T> with Error and ErrorOr<T> 2021-11-08 01:10:53 +01:00
ProcessProcFSTraits.cpp Kernel+SystemServer: Add /dev/tty 2021-12-12 22:32:35 +01:00
ProcessSpecificExposed.cpp Kernel: Make Process::procfs_get_pledge_stats OOM-fallible 2022-02-16 22:21:37 +01:00
Random.cpp Kernel: Make KernelRng not inherit from Lockable 2021-12-26 21:22:59 +01:00
Random.h Everywhere: Convert ByteBuffer factory methods from Optional -> ErrorOr 2022-01-24 22:36:09 +01:00
RTC.cpp Everywhere: Fix many spelling errors 2022-01-07 10:56:59 +01:00
RTC.h Kernel: Ensure we read valid values from the RTC CMOS registers 2021-08-04 19:53:04 +02:00
SanCov.cpp Kernel: Add some implied auto qualifiers 2021-12-30 14:32:17 +01:00
Scheduler.cpp Kernel: Try to dispatch pending signals on context switch 2022-02-21 19:42:16 +01:00
Scheduler.h Kernel: Remove unused bool return values from scheduler functions 2022-01-30 16:21:59 +01:00
Sections.h Kernel: Move userspace virtual address range base to 0x10000 2021-12-22 00:02:36 -08:00
StdLib.cpp Kernel: Remove unnecessary includes from Thread.h 2022-01-30 16:21:59 +01:00
StdLib.h Kernel: Remove unused forward declaration of Syscall::StringArgument 2021-11-14 22:52:35 +01:00
Syscall.cpp Kernel: Change static constexpr variables to constexpr where possible 2022-02-09 21:04:51 +00:00
Thread.cpp Kernel: Try to dispatch pending signals on context switch 2022-02-21 19:42:16 +01:00
Thread.h Kernel: Update terminology around Thread's "blocking mutex" 2022-01-30 16:21:59 +01:00
ThreadBlockers.cpp Kernel: Move Thread::block<BlockerType>() out of the Thread.h header 2022-01-30 16:21:59 +01:00
ThreadTracer.cpp Kernel: Add cross platform RegisterState header and Aarch64 version 2021-10-15 21:48:45 +01:00
ThreadTracer.h Kernel: Add missing includes in ThreadTracer and WorkQueue 2021-12-30 14:32:17 +01:00
TimerQueue.cpp Kernel: Remove a bunch of unused TimerQueue functions 2021-09-07 22:16:25 +02:00
TimerQueue.h AK+Everywhere: Reduce the number of template parameters of IntrusiveList 2021-09-10 18:05:46 +03:00
UBSanitizer.cpp AK+Kernel+LibSanitizer: Store "ubsan-is-deadly" flag as Atomic<bool> 2022-02-03 16:11:26 +01:00
UnixTypes.h Kernel: Move {Process,Thread,Session,ProcessGroup}ID to Kernel/Forward.h 2021-08-14 19:58:11 +02:00
UserOrKernelBuffer.cpp Kernel: Replace KResult and KResultOr<T> with Error and ErrorOr<T> 2021-11-08 01:10:53 +01:00
UserOrKernelBuffer.h Kernel+LibC: Move errno definitions to Kernel/API/POSIX 2021-12-16 22:21:35 +03:30
VirtualAddress.h AK: Convert AK::Format formatting helpers to returning ErrorOr<void> 2021-11-17 00:21:13 +01:00
WaitQueue.cpp Kernel: Don't register thread as custom data for WaitQueueBlocker 2021-08-24 01:57:11 +02:00
WaitQueue.h Kernel: Don't register thread as custom data for WaitQueueBlocker 2021-08-24 01:57:11 +02:00
WorkQueue.cpp Kernel: Mark kernel smart-pointer classes as [[nodiscard]] 2021-12-05 15:31:03 +01:00
WorkQueue.h Kernel: Add missing includes in ThreadTracer and WorkQueue 2021-12-30 14:32:17 +01:00