240684bc1f
Kernel: Refactor some xHCI code and add new definitions
2024-07-12 11:25:24 +03:00
e905634343
Kernel: Fix bugs and cleanup USB and xHCI code and API
2024-07-11 14:10:55 +03:00
14dce1abac
Kernel: Start work on USB stack
...
Current code can enumerate all xHCI devices and detect their type based
on the class code on device or interface descriptors.
2024-07-10 12:06:00 +03:00
5dc441c4af
Kernel/userspace: Implement KD_LOADFONT and loadfont program
2024-07-03 09:02:49 +03:00
f18c33563d
Kernel: Fix PCI MSI-X allocation
2024-06-30 20:36:43 +03:00
08cbd009ac
Kernel: PCI don't report multi function bit with header_type()
2024-06-29 22:11:55 +03:00
3d4219bfee
Kernel: Don't panic if nvme initialization fails
2024-06-29 22:07:55 +03:00
1a844426c3
Kernel: Add fast path for framembuffer sync if bpp == 32
2024-06-28 23:34:11 +03:00
42237a3bc8
Kernel: Implement fast scrolling for TTY
2024-06-28 23:15:03 +03:00
48a76426e7
BAN: Add more APIs for Atomic and make compare_exchage take a reference
2024-06-28 21:47:47 +03:00
31568fc5a1
Kernel: Rewrite Sockets to not be TmpInodes
...
TmpInodes just caused issues because TmpFS kept them alive. There was
really no reason for sockets to even be stored inside a TmpFS...
2024-06-27 00:35:19 +03:00
cb07142832
Kernel: ACPI allow more calling or \_S5
...
Spec says that \_Sx must have 4 fields, but virtual box seems to only
have the two defined once. This patch allows shutodown on virtual box
2024-06-25 23:25:10 +03:00
60a05412c9
Kernel: ACPI implement SizeOf
2024-06-25 23:24:51 +03:00
0179f5ea09
Kernel: ACPI add \_OS string
2024-06-25 23:24:19 +03:00
f671ed7e3f
Kernel: ACPI implement integer stores to registers as copies
...
Before storing const integer and then modifying the register it would
error.
2024-06-25 23:23:52 +03:00
2fccff5a35
Kernel: Implement ACPI IndexOp into Strings
2024-06-25 23:23:00 +03:00
af4b138094
Kernel/LibC: Implement realpath
...
realpath is implemented as a syscall. This is not really required but it
was the easiest way to get it working as there is already path
canonicalization at kernel level.
2024-06-25 19:32:40 +03:00
25099b4c98
Kernel: Don't validate O_SEARCH for non-directories
2024-06-25 19:27:55 +03:00
d7b8458a56
Kernel: Fix TCP sending
...
TCP send was effectively always waiting for connection to close and then
return a value of 0.
2024-06-25 11:04:03 +03:00
67dfe0bcf3
BAN: Allow String::formatted to fail
2024-06-25 11:04:03 +03:00
9e1b5cbaab
BuildSystem: Cleanup CMake code to allow libc only installation
...
There was no way to just install libc which is required for stdlibc++
2024-06-21 01:45:14 +03:00
4f0457a268
Kernel: Rewrite a lot of TCP code and implement TCP server sockets
...
TCP stack is now implemented much closer to spec
2024-06-20 13:26:50 +03:00
bce16cdd6e
Kernel: Fix how socket closing works
...
Sockets are now closed only when they are not referenced any more. This
allows child process to close socket and still keep it open for the
parent.
2024-06-19 10:39:44 +03:00
ad6d95ba52
BuildSystem: Rework the whole cmake build system
...
Now files are installed using the install() command instead of manually
copying files to their destinations. This allows automatic recompilation
of headers that did not work previously
2024-06-19 09:40:03 +03:00
318ce5dec8
All: Fix a lot of compiler warnings from header files
...
While reworking build system, header files started to report warnings.
2024-06-18 23:02:10 +03:00
c69919738b
BuildSystem: Move all userpace libraries under the userspace directory
...
As the number of libraries is increasing, root directory starts to
expand. This adds better organization for libraries
2024-06-18 13:14:35 +03:00
f1e366d36f
Kernel: Free keyboard mutex while waiting for data to read
...
This was making select hang if one thread was trying to read from
keyboard.
2024-06-17 23:04:37 +03:00
be7ed8e74a
Kernel/LibC: Implement {get,set}sockopt()
...
These are pretty much dummy functions in the kernel side. Only case that
is handled is SOL_SOCKET with SO_ERROR. This is hard coded to return no
error. Network stack is currently synchronous, so all errors are already
reported through synchronous network functions.
2024-06-17 20:56:48 +03:00
cad55a4da5
Kernel/LibC: Implement getsockname for ipv4 sockets
2024-06-17 20:54:45 +03:00
511fc870a1
BAN: Mark RefPtr and WeakPtr operator bool() as explicit
2024-06-17 20:19:36 +03:00
ea7fc7f6c4
Kernel: Implement read-only FAT12/16/32 driver with long name support
...
You can now mount FAT filesystems! This code might not work perfectly
but my quick testing seemed to work on all (FAT12/16/32) variants.
2024-06-14 01:04:12 +03:00
6b1d5d28be
Kernel: VFS root now has to be block device instead of partition
2024-06-14 00:19:12 +03:00
766439db6d
Kernel: Start work on adding support for new filesystems
...
Old code tried to create ext2 filesystem from all devices.
2024-06-11 10:50:26 +03:00
d4903caafa
Kernel: Combine consecutive mouse move and scroll events
...
This makes mouse work much smoother when running without kvm.
2024-06-11 00:07:31 +03:00
ffacff67cf
LibFont: Move PSF code to separate file
2024-06-10 16:10:05 +03:00
530c259e71
Kernel: Close unix domain socket when it gets destoyed
...
Inode closing is something that needs a complete rework. Currently all
sockets are closed when close() is called, which leads to connection
closing if you fork()/exec() with socket being marked as CLOEXEC.
Inodes should probably only be closed once they are not referenced
anywhere.
2024-06-03 18:06:01 +03:00
765ccfa18c
Kernel: Deliver SIGCHLD on process exit and ignore it properly
2024-06-03 17:58:24 +03:00
bd1290706a
Kernel: Implement SharedMemoryObject cloning
2024-06-03 03:41:00 +03:00
aec5a09caf
Kernel/LibC: Implement SYS_ISATTY and isatty()
2024-06-03 03:36:25 +03:00
446220494e
Kernel: Unix domain sockets close can now be detected
...
When a unix domain socket is closed and it has a connection to another
socket, it will make the other socket readable and recv will return 0.
This allows detection of socket closing
2024-06-02 16:48:55 +03:00
8bfacb0091
Kernel: Implement deletion of SMO objects
2024-05-31 13:04:23 +03:00
0501f3bd99
Kernel: Move font code to its own library LibFont
2024-05-31 10:47:05 +03:00
84b3289a2a
Kernel: Move Scheduler::yield() lock check after interrupts disabled
...
I have no idea why this solves a bug where current processor has
scheduler lock at the beginning of yield.
2024-05-31 02:56:39 +03:00
b760892de2
Kernel: Make pselect use nanosecods instead of milliseconds
2024-05-31 02:56:17 +03:00
6840a8983c
Kernel: Make sure MSB is not set on SMO keys
2024-05-29 20:01:12 +03:00
a1b3490764
Kernel: Improve random number generation for unsigned types
2024-05-29 20:00:47 +03:00
076f1efecb
Kernel: Fix 32 bit fast page locking
...
I forgot to change this when changing the lock type. 32 bit boots again
fine :D
2024-05-29 19:44:39 +03:00
53e572f072
Kernel: Fix s_fast_page_lock type on 32 bit target
2024-05-29 18:04:23 +03:00
d4d530e6c8
Kernel: Implement basic shared memory objects
...
These can allocate memory that can be shared between processes using
a global key. There is currenly no safety checks meaning anyone can
map any shared memory object just by trying to map every possible key.
2024-05-29 15:58:46 +03:00
99270e96a9
Kernel: Lock debug lock while printing fault details
...
This allows multiprocessor to dump clean output on concurrent faults
2024-05-29 15:49:24 +03:00