|
7a78609a85
|
kernel: Preserve kernel threads' page directories when they differ from the regular kernel page directory
continuous-integration/drone/push Build is passing
|
2023-06-17 00:49:31 +02:00 |
|
|
c2cdb861c9
|
kernel/ATA: Fix buffer overflow in ATADevice::read() with small sizes and unaligned offsets
|
2023-06-17 00:48:53 +02:00 |
|
|
27b26f389c
|
kernel: Lock ATADevice::read_lba() using ATA::Channel's KMutex
continuous-integration/drone/push Build is passing
|
2023-06-17 00:22:38 +02:00 |
|
|
4f86cd9f08
|
libluna: Add a so very basic HashMap
continuous-integration/drone/push Build is passing
|
2023-06-17 00:07:43 +02:00 |
|
|
32d2e0e6b7
|
kernel: Remove register_special_device()'s name parameter
continuous-integration/drone/push Build is passing
This is now duplicate information that can be queried using device->device_path().
|
2023-06-16 21:46:51 +02:00 |
|
|
ba46399bbd
|
kernel/ATA: Remove debug messages
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
|
2023-06-16 21:34:36 +02:00 |
|
|
738b218a49
|
kernel/ATA+MBR: Dynamically generate device names + create devices for MBR partitions
continuous-integration/drone/pr Build is passing
|
2023-06-16 21:30:50 +02:00 |
|
|
72b8ebe02c
|
kernel: Make the MBR code read from a device instead of an inode
continuous-integration/drone/pr Build is failing
|
2023-06-16 21:10:33 +02:00 |
|
|
72e798cedb
|
kernel: Do not automatically read the MBR partition table from /dev/cdrom
Since ff952cfe16 made /dev mounted from userspace, /dev/cdrom does not exist when ATA drives are scanned.
|
2023-06-16 21:10:33 +02:00 |
|
|
7593947c33
|
kernel/ATA: Route interrupts to the correct drive
|
2023-06-16 21:10:33 +02:00 |
|
|
93922932fa
|
kernel: Start reading the MBR partition table from the ATAPI drive
|
2023-06-16 21:10:33 +02:00 |
|
|
a3beaa4d53
|
ATA: Mark the CDROM as a block device
|
2023-06-16 21:10:33 +02:00 |
|
|
bb0db450b3
|
kernel/ATA: Pass extra information to DeviceRegistry
This is needed since merging e7d482e from main.
|
2023-06-16 21:10:33 +02:00 |
|
|
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 |
|