|
a0fa1f2cfd
|
kernel+init: Create a device node in /dev to access the CDROM from userspace!
Still using PIO, though.
|
2023-06-16 21:10:33 +02:00 |
|
|
2fa11a5ae3
|
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-16 21:10:32 +02:00 |
|
|
cc8450751c
|
kernel/x86_64: Implement writing to PCI fields
|
2023-06-16 21:10:32 +02:00 |
|
|
3762d3f959
|
kernel/PCI: Add bit enum for the Command field
|
2023-06-16 21:10:32 +02:00 |
|
|
a99c5e325d
|
kernel: Actually register interrupt handlers properly
|
2023-06-16 21:10:32 +02:00 |
|
|
82db0e39ea
|
kernel/ATA: Calculate block sizes for ATA devices as well
|
2023-06-16 21:10:32 +02:00 |
|
|
46c45068e0
|
kernel/ATA: Send a READ CAPACITY packet to an ATA drive on initialization
|
2023-06-16 21:10:32 +02:00 |
|
|
cfcde5af55
|
kernel/ATA: Read the PCI Busmaster registers and start preparing for DMA
|
2023-06-16 21:10:31 +02:00 |
|
|
268252c89e
|
kernel/ATA: Read the Busmaster base port and verify it
|
2023-06-16 21:10:31 +02:00 |
|
|
5d16754632
|
kernel: Handle device BARs properly
|
2023-06-16 21:10:31 +02:00 |
|
|
6307b01689
|
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-16 21:10:31 +02:00 |
|
|
e118c9ea0d
|
kernel/ATA: Implement enough to send an IDENTIFY command and read the model number :)
|
2023-06-16 21:10:31 +02:00 |
|
|
ee691bbb0f
|
kernel/ATA: Handle drive IRQs in compatibility mode
|
2023-06-16 21:10:31 +02:00 |
|
|
739950e8f0
|
kernel/CPU: Allow passing arbitrary data to interrupt handlers
|
2023-06-16 21:10:31 +02:00 |
|
|
3a84127fd6
|
kernel/ATA: Start reading/writing registers and detecting drives
|
2023-06-16 21:10:30 +02:00 |
|
|
e8507d23ee
|
kernel: Warn if no ATA controller is found
|
2023-06-16 21:10:30 +02:00 |
|
|
d9a1e8a980
|
kernel: Add a KMutex class and use that for ATA::Controller locking
|
2023-06-16 21:10:30 +02:00 |
|
|
7efc6dc985
|
kernel/x86_64: Add basic ATA controller and channel identification
|
2023-06-16 21:10:30 +02:00 |
|
|
beeafb73e6
|
kernel/PCI: Add more PCI field types
|
2023-06-16 21:10:30 +02:00 |
|
|
f0caf010bf
|
kernel/x86_64: Add a way to register IRQ handlers from other kernel subsystems
|
2023-06-16 21:10:26 +02:00 |
|
|
d589834eb7
|
libluna: Add HashTable
continuous-integration/drone/push Build is passing
|
2023-06-15 15:50:04 +02:00 |
|
|
da1439126a
|
libos: Correct wrong manpage section for execve()
continuous-integration/drone/push Build is passing
|
2023-06-09 23:35:23 +02:00 |
|
|
e4e501ecfe
|
libos: Add Process::wait()
continuous-integration/drone/push Build is passing
|
2023-06-09 23:12:31 +02:00 |
|
|
a1bf4dafbe
|
libluna: Remove implicit vector copying and add an explicit way to do it
continuous-integration/drone/push Build is passing
Closes #28.
|
2023-06-09 22:54:22 +02:00 |
|
|
bc07cc94cb
|
libos: Document it entirely using Doxygen comments =D
continuous-integration/drone/push Build is passing
Also, add copyright information to individual files. This is going to be a hassle to do for EVERY file.
|
2023-06-09 22:45:06 +02:00 |
|
|
5f5b58a2c0
|
apps: Add a syscall fuzzer
continuous-integration/drone/push Build is passing
|
2023-06-08 19:58:00 +02:00 |
|
|
d0b65674e6
|
kernel: Fix 0-delay sleeps blocking the thread forever
|
2023-06-08 19:57:38 +02:00 |
|
|
85896214ba
|
libos: Make File::read_all() read chunked blocks instead of one character at a time
continuous-integration/drone/push Build is passing
This results in a speedup of 0.23s -> 0.13s for Base64 encoding of /bin/ls.
|
2023-06-04 00:23:06 +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 |
|
|
e10cc2d954
|
libc: Add the internal TRY_OR_SET_ERRNO macro
continuous-integration/drone/push Build is passing
Similar mechanism to TRY(), but propagating C-like errors instead of Results on failure.
|
2023-06-03 20:20:01 +02:00 |
|
|
6b4d41529e
|
libc: Fix execvp() calling the shell after an ENOEXEC
continuous-integration/drone/push Build is passing
|
2023-06-03 17:00:24 +02:00 |
|
|
6ad7491300
|
sh: Skip comments (and shebangs!)
|
2023-06-03 16:59: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 |
|
|
d2334a67dd
|
apps: Add mktemp
continuous-integration/drone/push Build is passing
|
2023-06-03 12:15:57 +02:00 |
|
|
fd62de6474
|
libluna: Do not sort empty arrays; avoids a segfault
continuous-integration/drone/push Build is passing
|
2023-06-03 11:55:46 +02:00 |
|
|
1090815c8d
|
kernel: Honor the sticky bit
|
2023-06-03 11:55:10 +02:00 |
|
|
89d7866abb
|
libos: Show the sticky bit on symbolic modes
|
2023-06-03 11:35:13 +02:00 |
|
|
0540879959
|
init+initrd: Create /tmp and mount it on boot
|
2023-06-03 11:34:53 +02:00 |
|
|
cc72a1655d
|
libc+libluna: Move libluna hooks out of libc and into a central place in libluna
continuous-integration/drone/push Build is passing
|
2023-06-03 11:18:52 +02:00 |
|
|
ff952cfe16
|
kernel+init: Let userspace control devfs mountpoints
continuous-integration/drone/push Build is passing
|
2023-06-02 21:45:31 +02:00 |
|
|
dcb8ab569a
|
libc: Add basic sys/param.h for programs that want it
continuous-integration/drone/push Build is passing
|
2023-05-31 22:15:22 +02:00 |
|
|
d467f6257d
|
libc: Define EXIT_* macros and strto(u)ll in stdlib.h
|
2023-05-31 22:15:05 +02:00 |
|
|
5c68d50070
|
libc: Add a very bare-bones locale.h
|
2023-05-31 22:12:50 +02:00 |
|
|
d40654a00c
|
libos+ls: Allow calling ArgumentParser::short_usage() directly
continuous-integration/drone/push Build is passing
|
2023-05-28 21:57:04 +02:00 |
|
|
51a5727c8d
|
libluna: Fix a crash in quicksort
continuous-integration/drone/push Build is passing
|
2023-05-28 21:51:50 +02:00 |
|
|
069f1c0f97
|
ls: Sort displayed entries
|
2023-05-28 21:51:50 +02:00 |
|
|
e864ef2d36
|
libos: Add a way to also list entry sizes, modes and mtimes
|
2023-05-28 21:51:50 +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 |
|
|
30e4ef970e
|
all: Minor version bump up to 0.2.0
continuous-integration/drone/push Build is passing
|
2023-05-27 19:32:59 +02:00 |
|
|
d572d56460
|
libc: Add dummy time fields to struct stat
continuous-integration/drone/push Build is passing
|
2023-05-27 12:22:06 +02:00 |
|