46d4e32510
Kenrel: Validate inode open mode on read/write syscalls
2024-12-15 20:49:12 +02:00
1815a913c3
Kernel: Remove unnecessary hash map lookups
2024-12-15 20:47:40 +02:00
12a37500b0
Kernel: Fix triple-fault in vitual tty
...
This was happening when printing non-utf8 data while having virtual tty
as the debug console.
2024-12-09 03:35:51 +02:00
2d0690ae2d
Kernel: Cleanup most of syscalls dealing with files
2024-12-07 05:33:04 +02:00
71a2d0971f
Kernel: Remove unnecessary reverse from VFS file search
2024-12-07 01:41:23 +02:00
3bf57e0748
Kernel: Add . and .. entries to /proc/<pid> directories
...
This allows to run `cd ..` in one of these directories
2024-12-07 01:37:40 +02:00
51b6329c86
Kernel: Make backspace \b and delete 0x7F
...
This is what `vim` seems to expect and imo makes way more sense.
2024-12-05 17:34:37 +02:00
72d9e4c1e7
Kernel: Remove accidental debug prints from fcntl syscall
2024-12-05 17:34:32 +02:00
49133dce48
Kernel: Make pipe check data every 100ms
...
This prevents dead lock if read-end does not detect data before blocking
why write-end already notified.
2024-12-03 21:54:27 +02:00
0a5aacfd87
Kernel: Allow open with O_CREAT bypass file permission checks
...
call to open(path, O_CREAT|O_EXCL|O_RDWR, 0444) should open file as
read-write although file is created as read-only on filesystem.
2024-12-03 16:17:34 +02:00
2dec3a6c95
Kernel: Add some sanity checks for existanse of threads
2024-12-03 16:16:50 +02:00
fcc2814199
Kernel: Remove process from alarm list after it dies
2024-12-03 16:16:08 +02:00
0fab7ad63b
Kernel: Fix SYS_FCNTL command handling :)
...
I had misunderstood how these work
2024-12-03 16:12:26 +02:00
e6a2f55a59
Kernel: Closing file backed mmap wont expand the file size
2024-12-03 16:12:26 +02:00
67e9ca56ac
Kernel: Create /dev/urandom -> /dev/random symlink
...
Most software uses urandom instead of random so this allows it work
normally.
2024-12-03 16:12:26 +02:00
713daf6cd3
Kernel/LibC: Add support for creating hardlinks
2024-12-03 16:12:26 +02:00
415b20f884
LibC: Remove errno EEXISTS
...
I don't know why I had added this. It doesn't seem to be a thing on
either POSIX or linux. This was literally equivalent to EXIST
2024-12-02 20:13:38 +02:00
d58ca5f37a
Kernel/LibC: Implement symlink{,at}
2024-12-02 20:13:38 +02:00
a10ca47657
Kernel/LibC: Implement {,f}statvfs
2024-12-02 20:13:37 +02:00
ad1f175a39
Kernel/LibC: Implement getppid
2024-12-02 20:13:37 +02:00
6ed1435aeb
Kernel/LibC: Implement tcgetpgrp
2024-12-02 20:13:37 +02:00
6346e288ad
LibC: Implement getrlimit
2024-12-02 20:13:37 +02:00
747c3b2a4b
Kernel/LibC: Implement fsync
2024-12-02 20:13:37 +02:00
c02de2580d
Kernel: Add support for SIOCGIFNAME ioctl
2024-12-02 20:13:37 +02:00
4149748766
Kernel: Add missing include in ACPI headers
2024-12-01 21:32:34 +02:00
8dbbbc1a1a
Kernel: Add command line option readonly
...
This prevents calls to write_sectors_impl and all dirty pages are always
kept in RAM.
2024-11-27 13:31:55 +02:00
a6fc3cf7a6
Kernel: Clear AHCI pending interrupts
...
I have no idea why I did not have this in. All devices were just
constatly spamming interrupts like crazy :D
2024-11-26 01:39:11 +02:00
1941885cfd
Kernel: Disable USB Mass Storage writing until I get it fixed
...
This prevented real hw from running for over 10-20 seconds. When first
disk sync happens after 10 secods, USB storage would enter faulty state
and not allow any io operations.
I have no idea what the problem is. If I don't send Reset command to the
USB device writing seems to work fine. I also don't think its part of
the Reset process either as reading works just fine.
2024-11-26 01:01:25 +02:00
88a86a9927
Kernel: Fix Thread destruction after sys_exit
...
This had undefined behaviour as Thread's (Processes's) PageTable was
destroyed before Thread had the change to destroy its own stacks that
lived on the PageTable.
2024-11-26 00:59:34 +02:00
48e030bca3
Kernel: Make PageTable non-copyable and non-movable
...
Also PageTable destructor now verifies that is has allocated something
instead of assuming paddr of 0.
2024-11-26 00:58:35 +02:00
793c0368f2
Kernel: Refactor USB mass storage code
...
Also increment command timeout to 10 seconds so commands don't timeout
when they are not supposted to :)
2024-11-23 01:24:32 +02:00
076001462e
Kernel: Implement AML ConcatOp
2024-11-22 22:23:07 +02:00
d2e1d8ec13
Kernel: Implement AML NotOp
2024-11-22 22:22:44 +02:00
30ceaa6bef
Kernel: Implement AML ToHexStringOp
2024-11-22 22:22:27 +02:00
0247d47a3d
Kernel: Make USBMassStorage send_scsi_command templated
...
This allows passing ConstByteSpan when data will not be modified
2024-11-22 22:21:19 +02:00
480368c878
Kernel: Cleanup and fix xHCI interrupt handling
...
Always clear EventHandlerBusy bit and remove unnecessary nesting
2024-11-22 22:19:53 +02:00
c1d8790623
Kernel: Don't allow sending commands to halted xHCI
2024-11-22 22:19:29 +02:00
fb1ffec5bb
Kernel: Remove unused mutex from xHCI
...
This was preventing multiple xHCI controllers to do parallel device
initialization
2024-11-22 22:18:38 +02:00
1bdabe693f
Kernel: Preserve RsvdP bits in xHCI controller initialization
2024-11-22 22:18:09 +02:00
ce09f35275
Kernel: Fix PCI 64 bit MSI msg_data offset
2024-11-22 22:17:25 +02:00
40c13043b3
Kernel: Add support for scratchpad buffers in xHCI
2024-11-22 22:16:57 +02:00
e620068416
Kernel: Allow USB devices to handle STALL conditions
2024-11-22 22:15:22 +02:00
8e624ca85a
Kernel: Don't panic if uninitialized AHCI device gets an interrupt
2024-11-21 20:41:13 +02:00
c7afd46016
Kernel: Don't log spurious interrupts
...
Some PCs seem to be spamming a lot of int 7
2024-11-21 20:40:29 +02:00
3573656244
Kernel: Make PARTUUID matching case insensitive
...
Case sensitivity made it super annoying to work with :)
2024-11-21 20:39:27 +02:00
1de6de975a
Kernel: Rename cmdline UUID= to PARTUUID=
...
This makes more sense and behaves more like existing software.
2024-11-21 20:38:50 +02:00
865061b492
Kernel: Temporary fix to make tmpfs more stable
...
whole TmpFS will have to be rewritten at some point :)
2024-11-21 18:13:26 +02:00
70880636f4
Kernel: Implement basic USB Mass Storage support
...
I finally decided to do this :D
2024-11-21 18:08:37 +02:00
8054f6c618
Kernel: Wait 10 seconds to find root device
...
If root device is initialized asynchronously it may not be ready when
main initialization thread is finished. This patch adds searching for
root device every 500 ms for 10 seconds.
2024-11-21 17:56:58 +02:00
658ea68d04
Kernel: Check max packet size for all USB devices
...
Spec says that this has to be done. Most cases can be probably skipped
as I used to do, but this is less error prone and adds practically no
overhead
2024-11-21 13:46:42 +02:00