|
d69e75eb5a
|
kernel+init: Create a device node in /dev to access the CDROM from userspace!
Still using PIO, though.
|
2023-06-03 21:02:37 +02:00 |
|
|
1b141da3a2
|
kernel/ATA: Read the CDROM's first sector using ATAPI PIO!!
Sadly, for some reason, DMA is not working right now.
This is a problem, as PIO is inconvenient. But hey, it works for now!
|
2023-06-03 21:02:36 +02:00 |
|
|
d79560a531
|
kernel/x86_64: Implement writing to PCI fields
|
2023-06-03 21:02:36 +02:00 |
|
|
4a5929f880
|
kernel/PCI: Add bit enum for the Command field
|
2023-06-03 21:02:36 +02:00 |
|
|
8f4052210e
|
kernel: Actually register interrupt handlers properly
|
2023-06-03 21:02:36 +02:00 |
|
|
7d49f1d172
|
kernel/ATA: Calculate block sizes for ATA devices as well
|
2023-06-03 21:02:36 +02:00 |
|
|
a5ddc17dc5
|
kernel/ATA: Send a READ CAPACITY packet to an ATA drive on initialization
|
2023-06-03 21:02:36 +02:00 |
|
|
b847655058
|
kernel/ATA: Read the PCI Busmaster registers and start preparing for DMA
|
2023-06-03 21:02:35 +02:00 |
|
|
5b906f8dfd
|
kernel/ATA: Read the Busmaster base port and verify it
|
2023-06-03 21:02:35 +02:00 |
|
|
5cf1dea121
|
kernel: Handle device BARs properly
|
2023-06-03 21:02:35 +02:00 |
|
|
88c3a031fb
|
kernel/ATA: Read ATA strings properly instead of backwards
Now we can see the model string. What does it say...
"QEMU DVD-ROM". Let's go!
|
2023-06-03 21:02:35 +02:00 |
|
|
2cdb36b904
|
kernel/ATA: Implement enough to send an IDENTIFY command and read the model number :)
|
2023-06-03 21:02:35 +02:00 |
|
|
cf7527cb03
|
kernel/ATA: Handle drive IRQs in compatibility mode
|
2023-06-03 21:02:34 +02:00 |
|
|
6fcf059da0
|
kernel/CPU: Allow passing arbitrary data to interrupt handlers
|
2023-06-03 21:02:34 +02:00 |
|
|
91c14ba093
|
kernel/ATA: Start reading/writing registers and detecting drives
|
2023-06-03 21:02:34 +02:00 |
|
|
4d1ed6c48b
|
kernel: Warn if no ATA controller is found
|
2023-06-03 21:02:34 +02:00 |
|
|
bb3d11e03b
|
kernel: Add a KMutex class and use that for ATA::Controller locking
|
2023-06-03 21:02:34 +02:00 |
|
|
74a772f780
|
kernel/x86_64: Add basic ATA controller and channel identification
|
2023-06-03 21:02:33 +02:00 |
|
|
aa24dce06a
|
kernel/PCI: Add more PCI field types
|
2023-06-03 21:02:33 +02:00 |
|
|
79d00dafff
|
kernel/x86_64: Add a way to register IRQ handlers from other kernel subsystems
|
2023-06-03 21:02:33 +02:00 |
|
|
3283991ec6
|
kernel: Keep the old Timer::ticks_ms() API.
continuous-integration/drone/push Build is passing
Removing this API broke the ATA branch.
|
2023-06-03 21:02:18 +02:00 |
|
|
8bcec00a9d
|
kernel: Change the timer subsystem to use timespecs natively
continuous-integration/drone/push Build is passing
|
2023-06-03 13:15:10 +02:00 |
|
|
11a4f8cc90
|
kernel: Wake the parent process when a child exits because of a page fault
|
2023-05-28 21:50:13 +02:00 |
|
|
916a73ca95
|
kernel: Rework the timer subsystem to count in microseconds
continuous-integration/drone/push Build is passing
|
2023-05-07 21:51:36 +02:00 |
|
|
72dadc6706
|
kernel: Define a constant to check for default memory access
continuous-integration/drone/push Build is failing
|
2023-05-07 21:38:38 +02:00 |
|
|
b25e212880
|
kernel: Make a generic function for checking memory flags
continuous-integration/drone/push Build is failing
|
2023-05-07 21:37:01 +02:00 |
|
|
293a992133
|
kernel: Add a kernel_wait_for_event() function to avoid weird calls to kernel_wait in kthreads
continuous-integration/drone/push Build is passing
|
2023-05-04 23:43:00 +02:00 |
|
|
4a7f68b989
|
kernel: Add a convenience wake_up() function
|
2023-05-04 23:35:54 +02:00 |
|
|
3ed9e578c7
|
kernel/x86_64: Wake the IO thread up only when there is an IO event, instead of polling every 10 ms
|
2023-05-04 23:07:09 +02:00 |
|
|
abaf24d0da
|
kernel/CPU: Move some stuff to StringView
|
2023-05-03 17:35:46 +02:00 |
|
|
77dcfab5ef
|
kernel: Run the initialization process in a thread
continuous-integration/drone/push Build is passing
This way we can give it more stack and also reclaim it later!
|
2023-04-28 13:23:07 +02:00 |
|
|
5d56638851
|
kernel: Ignore all non-bootstrap processors
continuous-integration/drone/push Build is passing
|
2023-04-22 12:25:43 +02:00 |
|
|
df95126ccd
|
kernel: Remove unneeded debug logs & random cleanups
continuous-integration/drone/push Build is passing
|
2023-04-14 21:10:38 +02:00 |
|
apio
|
ed0727332b
|
x86_64/CPU: Assign a proper IRQ number to the keyboard interrupt
continuous-integration/drone/push Build is passing
Ah, the dangers of copy-and-paste...
|
2023-04-04 12:13:34 +00:00 |
|
|
d48d0efb07
|
kernel: Add names to threads
continuous-integration/drone/push Build is passing
|
2023-03-24 21:05:38 +01:00 |
|
|
f084b57f39
|
kernel+sh: Allow using Ctrl+D to send EOF
continuous-integration/drone/push Build is failing
|
2023-03-24 17:21:21 +01:00 |
|
|
d63c8abbfd
|
kernel/x86_64: Terminate page faults in a waitpid-friendly way
|
2023-03-24 00:52:17 +01:00 |
|
|
03adaa356c
|
kernel: Avoid printing keypresses twice
|
2023-03-23 21:33:50 +01:00 |
|
|
d33fccc66f
|
kernel: Implement reading from /dev/console
|
2023-03-19 19:15:19 +01:00 |
|
|
cd00e41f59
|
arch/x86_64: Decode keyboard scancodes
continuous-integration/drone/push Build is passing
|
2023-03-19 11:17:43 +01:00 |
|
|
54f2d35416
|
kernel: Add the fork() system call
|
2023-03-18 23:45:48 +01:00 |
|
|
8c72e9a49a
|
kernel: Add an exec() system call
continuous-integration/drone/push Build is passing
Doesn't support arguments or environment for now.
|
2023-03-16 22:44:58 +01:00 |
|
|
e30eec4213
|
kernel/x86_64: Avoid kernel panics when a page fault occurs in a userspace thread
|
2023-03-07 21:08:05 +01:00 |
|
|
ca85a69442
|
kernel: Save floating-point environment when switching in and out of userspace threads
|
2023-03-07 20:59:11 +01:00 |
|
|
de38eb6877
|
luna: Remove pure_cstyle_format
continuous-integration/drone/push Build is passing
It was causing a lot of code duplication. If someone doesn't have errors, just return {} from the callback and unwrap the Result.
|
2023-03-02 13:38:21 +01:00 |
|
|
519aa347dd
|
x86_64: Remove recursive mapping related things from MMU.h
continuous-integration/drone/push Build is passing
|
2023-02-27 13:07:52 +01:00 |
|
|
3ec54fafde
|
x86_64/MMU: Do not allocate level 1 page tables for huge page entries
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
This would leak memory, since we would never end up using them.
|
2023-02-27 12:55:15 +01:00 |
|
|
752dfdbf1c
|
MemoryManager: Reuse the existing mapping of physical memory that MMU has
continuous-integration/drone/pr Build is passing
|
2023-02-27 12:51:29 +01:00 |
|
|
8df441064f
|
x86_64/MMU: Map the physical address space using huge pages
|
2023-02-27 12:47:17 +01:00 |
|
|
426f6e4da8
|
x86_64: Allow mapping huge pages, but don't do it yet
|
2023-02-27 12:41:28 +01:00 |
|