Commit Graph

1791 Commits

Author SHA1 Message Date
fa47237ddb
kernel/ATA: Route interrupts to the correct drive
All checks were successful
continuous-integration/drone/pr Build is passing
2023-06-03 21:02:37 +02:00
2722bd73af
kernel: Start reading the MBR partition table from the ATAPI drive 2023-06-03 21:02:37 +02:00
b8541747c2
ATA: Mark the CDROM as a block device 2023-06-03 21:02:37 +02:00
37a3f13de7
kernel/ATA: Pass extra information to DeviceRegistry
This is needed since merging e7d482e from main.
2023-06-03 21:02:37 +02:00
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.
All checks were successful
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
All checks were successful
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
All checks were successful
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
All checks were successful
continuous-integration/drone/push Build is passing
2023-06-03 13:15:10 +02:00
d2334a67dd
apps: Add mktemp
All checks were successful
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
All checks were successful
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
All checks were successful
continuous-integration/drone/push Build is passing
2023-06-03 11:18:52 +02:00
ff952cfe16
kernel+init: Let userspace control devfs mountpoints
All checks were successful
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
All checks were successful
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
All checks were successful
continuous-integration/drone/push Build is passing
2023-05-28 21:57:04 +02:00
51a5727c8d
libluna: Fix a crash in quicksort
All checks were successful
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
All checks were successful
continuous-integration/drone/push Build is passing
2023-05-27 19:32:59 +02:00
d572d56460
libc: Add dummy time fields to struct stat
All checks were successful
continuous-integration/drone/push Build is passing
2023-05-27 12:22:06 +02:00
18115ca04a
libc: Add alloca.h
All checks were successful
continuous-integration/drone/push Build is passing
2023-05-27 12:11:51 +02:00
8d90d146b2
libc: Fix including sys/time.h
All checks were successful
continuous-integration/drone/push Build is passing
2023-05-27 12:06:00 +02:00
88d1da59e8
kernel+libc: Add access()
All checks were successful
continuous-integration/drone/push Build is passing
2023-05-27 12:04:27 +02:00
bd8aaa917f
kernel+libc+ln: Add support for userspace hard link creation
All checks were successful
continuous-integration/drone/push Build is passing
2023-05-27 11:32:40 +02:00