serenity/Kernel
Liav A f5090ab810 Kernel: Restore ATA PIO functionality
First, before this change, specifying 'force_pio' in the kernel
commandline was meaningless because we nevertheless set the DMA flag to
be enabled.

Also, we had a problem in which we used IO::repeated_out16() in PIO
write method. This might work on buggy emulators, but I suspect that on
real hardware this code will fail.

The most difficult problem was to restore the PIO read operation.
Apparently, it seems that we can't use IO::repeated_in16() here because
it will read zeroed data. Currently we rely on a simple loop that
invokes IO::in16() to a buffer. Also, the interrupt handling stage in
the PIO read method is moved to be handled inside the loop of reading
the requested sectors.
2020-04-15 12:35:10 +02:00
..
ACPI Kernel: Reorder bitwise operations when creating PCI interrupt overrides 2020-04-09 20:45:44 +02:00
Arch/i386 CPU: Handle Debug exception 2020-04-13 23:20:59 +02:00
Devices Kernel: Restore ATA PIO functionality 2020-04-15 12:35:10 +02:00
FileSystem Kernel: Keep records of PCI::Address & PCI::ID pairs for enumeration 2020-04-11 10:02:31 +02:00
Heap Kernel: Update cryptically-named functions related to symbolication 2020-04-08 17:19:46 +02:00
Interrupts Interrupts: Simplify initialization a bit more 2020-04-09 20:45:44 +02:00
Net Kernel: Instantiate network adapters in their own detect() methods 2020-04-11 10:02:31 +02:00
PCI Kernel: Instantiate network adapters in their own detect() methods 2020-04-11 10:02:31 +02:00
Tasks Kernel: Move sync and finalization tasks into their own files 2020-04-08 17:19:46 +02:00
Time Kernel: Simplify the Time management initialization 2020-04-09 19:59:53 +02:00
TTY Kernel: Add explicit offset parameter to File::read etc 2020-04-10 11:59:30 +02:00
VM Kernel: Switch the first-8MB-of-upper-3GB pseudo mappings to 4KB pages 2020-04-13 22:35:37 +02:00
.bochsrc Meta: Make Serenity run on Bochs once again 2019-08-06 21:09:24 +02:00
.gitignore Meta: Removed all gitignore in the source tree only keeping the root one 2019-06-30 10:41:26 +02:00
Assertions.h Kernel: Remove more <LibBareMetal/Output/kstdio.h> includes 2020-02-10 12:07:48 +01:00
build-image-grub.sh Partition Table: Change Script files 2020-02-02 00:20:41 +01:00
build-image-qemu.sh Build: Add FreeBSD support (#1492) 2020-03-21 09:46:30 +01:00
build-root-filesystem.sh Debugger: Add DebugSession 2020-04-13 00:53:22 +02:00
CMOS.cpp Kernel: Apply changes to use LibBareMetal definitions 2020-02-09 19:38:17 +01:00
CMOS.h Meta: Add license header to source files 2020-01-18 09:45:54 +01:00
CommandLine.cpp Kernel: Simplify VMWareBackdoor somewhat 2020-04-08 17:19:46 +02:00
CommandLine.h Kernel: Simplify VMWareBackdoor somewhat 2020-04-08 17:19:46 +02:00
debug-kernel Debugging: Add kernel debugging support 2020-01-13 11:06:42 +01:00
DoubleBuffer.cpp AK: Reduce header dependency graph of String.h 2020-03-23 13:48:44 +01:00
DoubleBuffer.h Kernel: Move all code into the Kernel namespace 2020-02-16 01:27:42 +01:00
FB.h Meta: Add license header to source files 2020-01-18 09:45:54 +01:00
Forward.h Kernel: Add 'ptrace' syscall 2020-03-28 18:27:18 +01:00
grub-ebr.cfg Kernel: Change noacpi GRUB entry to use the right boot argument 2020-03-24 16:15:33 +01:00
grub-gpt.cfg Kernel: Change noacpi GRUB entry to use the right boot argument 2020-03-24 16:15:33 +01:00
grub-mbr.cfg Kernel: Change noacpi GRUB entry to use the right boot argument 2020-03-24 16:15:33 +01:00
init.cpp Kernel: Instantiate network adapters in their own detect() methods 2020-04-11 10:02:31 +02:00
KBuffer.h AK: Reduce header dependency graph of String.h 2020-03-23 13:48:44 +01:00
KBufferBuilder.cpp Kernel: Move all code into the Kernel namespace 2020-02-16 01:27:42 +01:00
KBufferBuilder.h Kernel: Move all code into the Kernel namespace 2020-02-16 01:27:42 +01:00
KernelInfoPage.h Meta: Add license header to source files 2020-01-18 09:45:54 +01:00
KeyCode.h Kernel: Add key_code_count 2020-01-31 13:13:04 +01:00
KResult.h Kernel+LibC: Remove ESUCCESS 2020-04-10 13:09:35 +02:00
KSyms.cpp LibELF: Move ELF classes into namespace ELF 2020-04-11 22:41:05 +02:00
KSyms.h Kernel: Update cryptically-named functions related to symbolication 2020-04-08 17:19:46 +02:00
linker.ld Kernel: Move kernel above the 3GB virtual address mark 2020-01-17 22:34:26 +01:00
Lock.cpp Kernel: Use klog() instead of kprintf() 2020-03-02 22:23:39 +01:00
Lock.h Kernel: Allow process with multiple threads to call exec and exit 2020-02-26 13:06:40 +01:00
makeall.sh Build: Add FreeBSD support (#1492) 2020-03-21 09:46:30 +01:00
Makefile ptrace: Add PT_SETREGS 2020-04-13 00:53:22 +02:00
mkmap.sh Meta: Fix shellcheck warnings in various scripts 2020-02-10 10:46:25 +01:00
Module.h Kernel: Move all code into the Kernel namespace 2020-02-16 01:27:42 +01:00
MousePacket.h Kernel: Simplify VMWareBackdoor somewhat 2020-04-08 17:19:46 +02:00
Multiboot.h Meta: Add license header to source files 2020-01-18 09:45:54 +01:00
PerformanceEventBuffer.cpp Kernel: Include the current instruction pointer in profile samples 2020-04-11 21:04:45 +02:00
PerformanceEventBuffer.h AK: Add global FlatPtr typedef. It's u32 or u64, based on sizeof(void*) 2020-03-08 13:06:51 +01:00
Process.cpp Kernel: Don't include null terminator in sys$readlink() result 2020-04-14 18:40:24 +02:00
Process.h Kernel: Don't ignore validation result in ptrace(PT_PEEK) 2020-04-13 22:40:38 +02:00
Profiling.cpp LibELF: Move ELF classes into namespace ELF 2020-04-11 22:41:05 +02:00
Profiling.h Kernel: Bump the max stack frame count in sample profiles to 50 2020-04-12 11:00:38 +02:00
Ptrace.cpp Kernel: Remove SmapDisablers in sys$ptrace() implementation 2020-04-14 09:50:14 +02:00
Ptrace.h ptrace: Add PT_SETREGS 2020-04-13 00:53:22 +02:00
Random.cpp Kernel: Move all code into the Kernel namespace 2020-02-16 01:27:42 +01:00
Random.h Kernel: Move all code into the Kernel namespace 2020-02-16 01:27:42 +01:00
RTC.cpp Kernel: Fix awkward RTC log message at boot 2020-04-08 17:19:46 +02:00
RTC.h Meta: Add license header to source files 2020-01-18 09:45:54 +01:00
run Kernel: Run QEMU machine with two virtual processors 2020-03-24 16:15:33 +01:00
Scheduler.cpp Kernel: Include the current instruction pointer in profile samples 2020-04-11 21:04:45 +02:00
Scheduler.h Scheduler: Use monotonic time for blocking threads 2020-03-19 15:48:00 +01:00
SharedBuffer.cpp Kernel: Use klog() instead of kprintf() 2020-03-02 22:23:39 +01:00
SharedBuffer.h Kernel+LibC: Rename shared buffer syscalls to use a prefix 2020-02-28 12:55:58 +01:00
sync.sh Meta: Fix shellcheck warnings in various scripts 2020-02-10 10:46:25 +01:00
Syscall.cpp Kernel: Add 'ptrace' syscall 2020-03-28 18:27:18 +01:00
Syscall.h ptrace: Report error in PT_PEEK via errno 2020-04-13 00:53:22 +02:00
TestModule.cpp Kernel: Use klog() instead of kprintf() 2020-03-02 22:23:39 +01:00
Thread.cpp ptrace: Add PT_SETREGS 2020-04-13 00:53:22 +02:00
Thread.h ptrace: Add PT_SETREGS 2020-04-13 00:53:22 +02:00
ThreadTracer.cpp ptrace: Add PT_SETREGS 2020-04-13 00:53:22 +02:00
ThreadTracer.h Debugger: Add DebugSession 2020-04-13 00:53:22 +02:00
TimerQueue.cpp Kernel: Move all code into the Kernel namespace 2020-02-16 01:27:42 +01:00
TimerQueue.h Kernel: Introduce the new Time management subsystem 2020-03-19 15:48:00 +01:00
UnixTypes.h ptrace: Add PT_SETREGS 2020-04-13 00:53:22 +02:00
WaitQueue.cpp Kernel: Allow process with multiple threads to call exec and exit 2020-02-26 13:06:40 +01:00
WaitQueue.h Kernel: Allow process with multiple threads to call exec and exit 2020-02-26 13:06:40 +01:00