Commit Graph

935 Commits

Author SHA1 Message Date
6be0ff8784
ATA: Mark the CDROM as a block device 2023-06-08 19:58:16 +02:00
4a1a440f88
kernel/ATA: Pass extra information to DeviceRegistry
This is needed since merging e7d482e from main.
2023-06-08 19:58:16 +02:00
b2665ad8d9
kernel+init: Create a device node in /dev to access the CDROM from userspace!
Still using PIO, though.
2023-06-08 19:58:16 +02:00
b2446291d5
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-08 19:58:16 +02:00
33931a50a0
kernel/x86_64: Implement writing to PCI fields 2023-06-08 19:58:16 +02:00
cf4184df9b
kernel/PCI: Add bit enum for the Command field 2023-06-08 19:58:15 +02:00
734e592ac6
kernel: Actually register interrupt handlers properly 2023-06-08 19:58:15 +02:00
d647462500
kernel/ATA: Calculate block sizes for ATA devices as well 2023-06-08 19:58:15 +02:00
439a635d40
kernel/ATA: Send a READ CAPACITY packet to an ATA drive on initialization 2023-06-08 19:58:15 +02:00
10e3c83dff
kernel/ATA: Read the PCI Busmaster registers and start preparing for DMA 2023-06-08 19:58:15 +02:00
8f21e14889
kernel/ATA: Read the Busmaster base port and verify it 2023-06-08 19:58:15 +02:00
6d27aaa8ea
kernel: Handle device BARs properly 2023-06-08 19:58:14 +02:00
3fef0a852e
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-08 19:58:14 +02:00
303eab4f56
kernel/ATA: Implement enough to send an IDENTIFY command and read the model number :) 2023-06-08 19:58:14 +02:00
02b5830e4b
kernel/ATA: Handle drive IRQs in compatibility mode 2023-06-08 19:58:14 +02:00
63a62eb820
kernel/CPU: Allow passing arbitrary data to interrupt handlers 2023-06-08 19:58:14 +02:00
faf0a894bd
kernel/ATA: Start reading/writing registers and detecting drives 2023-06-08 19:58:14 +02:00
ed3ddb77e0
kernel: Warn if no ATA controller is found 2023-06-08 19:58:14 +02:00
8e272110cd
kernel: Add a KMutex class and use that for ATA::Controller locking 2023-06-08 19:58:13 +02:00
8f4f451aaa
kernel/x86_64: Add basic ATA controller and channel identification 2023-06-08 19:58:13 +02:00
202623a54e
kernel/PCI: Add more PCI field types 2023-06-08 19:58:13 +02:00
4ac9dec228
kernel/x86_64: Add a way to register IRQ handlers from other kernel subsystems 2023-06-08 19:58:13 +02:00
d0b65674e6
kernel: Fix 0-delay sleeps blocking the thread forever 2023-06-08 19:57:38 +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
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
1090815c8d
kernel: Honor the sticky bit 2023-06-03 11:55:10 +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
11a4f8cc90
kernel: Wake the parent process when a child exits because of a page fault 2023-05-28 21:50:13 +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
a98e9e8009
kernel: Add /dev/full
All checks were successful
continuous-integration/drone/push Build is passing
2023-05-27 10:42:45 +02:00
b0506bf88f
kernel: Add umask
All checks were successful
continuous-integration/drone/push Build is passing
2023-05-26 22:27:49 +02:00
d89a823924
kernel: Return EACCES when trying to chdir to an unaccessible directory 2023-05-26 20:49:13 +02:00
cba0a23db9
kernel: Make the framebuffer a block device
All checks were successful
continuous-integration/drone/push Build is passing
2023-05-26 20:36:35 +02:00
7cdb967730
kernel: compilation fix
All checks were successful
continuous-integration/drone/push Build is passing
2023-05-26 20:30:39 +02:00
62e14e7580
kernel+libos+apps: Support block devices and disallow seeking character devices or pipes
Some checks failed
continuous-integration/drone/push Build is failing
2023-05-26 20:27:47 +02:00
3a51807fa6
kernel+stat: Handle pipes correctly in stat()
All checks were successful
continuous-integration/drone/push Build is passing
2023-05-23 20:54:25 +02:00
9cdfdbc6f9
kernel: Handle unnamed pipes in stat()
Some checks failed
continuous-integration/drone/push Build is failing
2023-05-23 20:49:26 +02:00
1094042a7d
kernel: Implement st_dev and st_rdev
Some checks failed
continuous-integration/drone/push Build is failing
2023-05-23 20:45:24 +02:00
1a6ad11462
kernel+libc+libos+ls: Add readlink()
All checks were successful
continuous-integration/drone/push Build is passing
2023-05-23 15:42:38 +02:00
67a9d130e2
kernel: Add initial support for symbolic links :D 2023-05-20 21:49:24 +02:00
01111442d3
kernel: Add the getrusage() system call 2023-05-20 12:48:07 +02:00
1506331872
kernel+libc: Add the pstat() system call
Luna-specific, but I like it.
2023-05-18 21:48:47 +02:00
84bed3ceb3
kernel+libc: Remove mknod()
All checks were successful
continuous-integration/drone/push Build is passing
Now that we automatically create files in /dev, mknod() is not needed anymore.
2023-05-18 19:42:14 +02:00
d7c563aebd
kernel: Add reference counting for mounts
All checks were successful
continuous-integration/drone/push Build is passing
This will make sure we cannot unmount a file system while there is another one mounted inside it.
2023-05-18 16:22:31 +02:00
3a73d49aa1
kernel: Remove a mount from the mountpoint list after unmounting it 2023-05-18 16:18:09 +02:00
8f6bd29da3
kernel: Make file system reference counting work for current directories
All checks were successful
continuous-integration/drone/push Build is passing
Also, make pipes usable again.
2023-05-17 20:37:01 +02:00
1f4c4928cc
kernel+libc+apps: Add mount and umount syscalls, libc wrappers, and utilities
All checks were successful
continuous-integration/drone/push Build is passing
2023-05-17 20:30:15 +02:00
29174ca228
kernel/VFS: Add a way to unmount file systems 2023-05-17 19:52:26 +02:00
e7d482e78a
kernel+init: Add a VFS mount system and auto-populate the devfs 2023-05-17 19:40:37 +02:00