Commit Graph

916 Commits

Author SHA1 Message Date
bb7d460149
kernel/ATA: Pass extra information to DeviceRegistry
All checks were successful
continuous-integration/drone/pr Build is passing
This is needed since merging e7d482e from main.
2023-05-20 22:01:07 +02:00
51ca93d2b4
kernel+init: Create a device node in /dev to access the CDROM from userspace!
Still using PIO, though.
2023-05-20 22:01:07 +02:00
e1a6282fee
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-05-20 22:01:07 +02:00
1437127455
kernel/x86_64: Implement writing to PCI fields 2023-05-20 22:01:07 +02:00
18d21abe8f
kernel/PCI: Add bit enum for the Command field 2023-05-20 22:01:07 +02:00
2a04adfe06
kernel: Actually register interrupt handlers properly 2023-05-20 22:01:07 +02:00
61fc1e9548
kernel/ATA: Calculate block sizes for ATA devices as well 2023-05-20 22:01:06 +02:00
d8b9ea4157
kernel/ATA: Send a READ CAPACITY packet to an ATA drive on initialization 2023-05-20 22:01:06 +02:00
1fbc8d0dda
kernel/ATA: Read the PCI Busmaster registers and start preparing for DMA 2023-05-20 22:01:06 +02:00
ebb6452ee6
kernel/ATA: Read the Busmaster base port and verify it 2023-05-20 22:01:06 +02:00
36386e541b
kernel: Handle device BARs properly 2023-05-20 22:01:06 +02:00
e81acab407
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-05-20 22:01:06 +02:00
4db6bb25b8
kernel/ATA: Implement enough to send an IDENTIFY command and read the model number :) 2023-05-20 22:01:06 +02:00
57ccac47aa
kernel/ATA: Handle drive IRQs in compatibility mode 2023-05-20 22:01:05 +02:00
f75c4c9d9a
kernel/CPU: Allow passing arbitrary data to interrupt handlers 2023-05-20 22:01:05 +02:00
ee080174fc
kernel/ATA: Start reading/writing registers and detecting drives 2023-05-20 22:01:05 +02:00
f7667b40e6
kernel: Warn if no ATA controller is found 2023-05-20 22:01:05 +02:00
fc86888547
kernel: Add a KMutex class and use that for ATA::Controller locking 2023-05-20 22:01:05 +02:00
51d45bd37e
kernel/x86_64: Add basic ATA controller and channel identification 2023-05-20 22:01:05 +02:00
f5dfe5faac
kernel/PCI: Add more PCI field types 2023-05-20 22:01:04 +02:00
6554b448e9
kernel/x86_64: Add a way to register IRQ handlers from other kernel subsystems 2023-05-20 22:01:04 +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
64d0f30bd9
kernel: Disallow write-related flags when opening a directory, not only when the directory flag is set
All checks were successful
continuous-integration/drone/push Build is passing
Also return EISDIR instead of EINVAL as that is what Dr. POSIX mandates.
2023-05-11 21:29:49 +02:00
411c6c40cd
kernel: Add the fchmodat() and fchownat() system calls
All checks were successful
continuous-integration/drone/push Build is passing
2023-05-11 19:49:03 +02:00
efc6d03f23
kernel+libc: Add support for unnamed pipes
All checks were successful
continuous-integration/drone/push Build is passing
2023-05-10 22:48:31 +02:00
1a2fce5316
kernel+libc: Add the O_TMPFILE open flag and the tmpfile() function
All checks were successful
continuous-integration/drone/push Build is passing
2023-05-09 22:04:34 +02:00
4753e80583
kernel: Make DeviceRegistry store the created devices instead of creating them when requested
All checks were successful
continuous-integration/drone/push Build is passing
2023-05-09 18:31:27 +02:00
916a73ca95
kernel: Rework the timer subsystem to count in microseconds
All checks were successful
continuous-integration/drone/push Build is passing
2023-05-07 21:51:36 +02:00
9bab4c62a1
kernel: Compilation fixes
All checks were successful
continuous-integration/drone/push Build is passing
2023-05-07 21:42:03 +02:00
72dadc6706
kernel: Define a constant to check for default memory access
Some checks failed
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
Some checks failed
continuous-integration/drone/push Build is failing
2023-05-07 21:37:01 +02:00
77560bbc3e
kernel+tools: Allow loading files with different owners + add a more dynamic install script
All checks were successful
continuous-integration/drone/push Build is passing
2023-05-06 12:11:35 +02:00
9184bbfef6
kernel: Disallow passing O_WRONLY and O_DIRECTORY at the same time
All checks were successful
continuous-integration/drone/push Build is passing
2023-05-05 18:53:50 +02:00
d9d8f7cdc7
kernel: Remove unused headers from main.cpp
All checks were successful
continuous-integration/drone/push Build is passing
2023-05-04 23:59:46 +02:00
293a992133
kernel: Add a kernel_wait_for_event() function to avoid weird calls to kernel_wait in kthreads
All checks were successful
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
3a1c22bb93
kernel: Add keyboard combinations for debug information dumps
Ctrl+Alt+E: Dump threads
Ctrl+Alt+M: Dump memory usage
Ctrl+Alt+H: Dump heap state
2023-05-04 23:32:48 +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
96f3d29d37
kernel: Tell the reap thread to run when it's needed, instead of checking every 200 ms 2023-05-04 23:06:00 +02:00
42eb0a1d74
kernel: Freeze waitpid()'s calling thread until a child tells us it's done, instead of polling it every 10 ms 2023-05-04 23:03:31 +02:00
4616997f5b
kernel: Store a thread's parent directly instead of its parent's PID 2023-05-04 22:58:04 +02:00