Bananymous
ac5c77ee2c
Kernel: Implement USB Keyboard
...
This is kinda hacky, as I had disable the PS/2 initialization so that
usb keyboard gets /dev/keyboard0. I should add device hot plugging
support for TTY and GUI...
2024-07-14 02:09:18 +03:00
Bananymous
1efc6a1385
Kernel: Implement simple USB HID driver
...
This should be easily expandable to add HID devices
2024-07-14 02:04:48 +03:00
Bananymous
a97a574718
Kernel: Rewrite the whole input system
...
PS/2 code is now kind of messed up, but it works. Keyboards and mice are
now an abstract class that is automatically exposed to userspace. This
will make adding USB input much nicer.
2024-07-14 01:53:50 +03:00
Bananymous
240684bc1f
Kernel: Refactor some xHCI code and add new definitions
2024-07-12 11:25:24 +03:00
Bananymous
e905634343
Kernel: Fix bugs and cleanup USB and xHCI code and API
2024-07-11 14:10:55 +03:00
Bananymous
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
Bananymous
5dc441c4af
Kernel/userspace: Implement KD_LOADFONT and loadfont program
2024-07-03 09:02:49 +03:00
Bananymous
08cbd009ac
Kernel: PCI don't report multi function bit with header_type()
2024-06-29 22:11:55 +03:00
Bananymous
3d4219bfee
Kernel: Don't panic if nvme initialization fails
2024-06-29 22:07:55 +03:00
Bananymous
42237a3bc8
Kernel: Implement fast scrolling for TTY
2024-06-28 23:15:03 +03:00
Bananymous
48a76426e7
BAN: Add more APIs for Atomic and make compare_exchage take a reference
2024-06-28 21:47:47 +03:00
Bananymous
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
Bananymous
60a05412c9
Kernel: ACPI implement SizeOf
2024-06-25 23:24:51 +03:00
Bananymous
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
Bananymous
2fccff5a35
Kernel: Implement ACPI IndexOp into Strings
2024-06-25 23:23:00 +03:00
Bananymous
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
Bananymous
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
Bananymous
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
Bananymous
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
Bananymous
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
Bananymous
cad55a4da5
Kernel/LibC: Implement getsockname for ipv4 sockets
2024-06-17 20:54:45 +03:00
Bananymous
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
Bananymous
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
Bananymous
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
Bananymous
765ccfa18c
Kernel: Deliver SIGCHLD on process exit and ignore it properly
2024-06-03 17:58:24 +03:00
Bananymous
bd1290706a
Kernel: Implement SharedMemoryObject cloning
2024-06-03 03:41:00 +03:00
Bananymous
aec5a09caf
Kernel/LibC: Implement SYS_ISATTY and isatty()
2024-06-03 03:36:25 +03:00
Bananymous
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
Bananymous
8bfacb0091
Kernel: Implement deletion of SMO objects
2024-05-31 13:04:23 +03:00
Bananymous
0501f3bd99
Kernel: Move font code to its own library LibFont
2024-05-31 10:47:05 +03:00
Bananymous
6840a8983c
Kernel: Make sure MSB is not set on SMO keys
2024-05-29 20:01:12 +03:00
Bananymous
a1b3490764
Kernel: Improve random number generation for unsigned types
2024-05-29 20:00:47 +03:00
Bananymous
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
Bananymous
3823de6552
Kernel: Add templated get function for Random
2024-05-29 15:32:00 +03:00
Bananymous
8bc6c2eb20
Kernel: Move KeyEvent/MouseEvent from kernel to LibInput
2024-05-28 23:30:08 +03:00
Bananymous
18e2559b1e
Kernel/LibC: Add SYS_TRUNCATE
2024-05-28 01:08:04 +03:00
Bananymous
8b1514e575
Kernel: Make all storage devices readable and writable
...
I only had a {read,write}_impl defined for ATABaseDevice. This patch
moves that implmentation to general storage device.
2024-05-27 13:41:55 +03:00
Bananymous
2d3810874d
Kernel: Fix thread signal handling
...
Threads will now only handle signals once they are not holding any
mutexes. This removes some dead locks.
2024-05-26 20:08:35 +03:00
Bananymous
2a4d986da5
Kernel: Add preliminary support for PCIe
...
Only segment 0 is supported, but devices can now be accessed through
mmio.
Adding more segments would require adding argument to every PCI API so
it is left for later.
2024-05-25 20:50:07 +03:00
Bananymous
df260fe0e8
Kernel: Process::validate_pointer_access now maps the whole range
...
This fixes a bug where userspace provided address is not fully mapped
and the kernel tries to read/write it while using PageTable fast page.
In the future userspace input should be copied on syscall entry, so
userspace could not modify the input during syscall. Currently there
is change that userspace input passes kernel syscall validation and
after that userspace could modify the input before the value is
actually used.
2024-05-24 14:14:17 +03:00
Bananymous
2be4fe8404
Kernel: Make PageTable::s_fast_page_lock non-recursive
...
This lock is only used in wrapper of PageTable. There is no possiblity
of taking the lock outside of these wrappers.
2024-05-24 14:12:35 +03:00
Bananymous
06f4b0b29a
BAN: Make String and StringView header only
...
This allows linking with libc without having to link ban
2024-05-23 15:43:26 +03:00
Bananymous
83e3409bd8
Kernel/LibC: Update SYS_SEEK to return new offset and implement lseek
2024-05-23 14:49:23 +03:00
Bananymous
0af74fccda
Kernel/LibC: Rework dirent structure
...
dirent now contains statically sized d_name. This allows using
sizeof on the name and dirent properly, which some programs seem
to be using.
2024-05-22 20:19:59 +03:00
Bananymous
e7e1dd91c7
Kernel: Implement ACPI reset
2024-04-22 21:12:13 +03:00
Bananymous
693f90449f
Kernel: Rework AML package and implement indexing in to packages
2024-04-19 11:26:48 +03:00
Bananymous
061012a268
Kernel: Fix signal trampoline
...
32 bit did not even support it and 64 bit did not align stack
2024-04-18 13:32:40 +03:00
Bananymous
a698f91db4
Kernel: Fix PriorityMutex::try_lock()
...
Forgot to check this when I updated Mutex::try_lock()
2024-04-18 01:36:15 +03:00
Bananymous
30d12a76bc
Kernel: Fix 32 bit compilation
2024-04-18 01:35:56 +03:00
Bananymous
687fa44eff
Kernel: Add support for ACPI general purpose events
2024-04-17 21:51:03 +03:00
Bananymous
aefb33efff
Kernel: Implement dummy AML NotifyOp
2024-04-17 15:40:11 +03:00
Bananymous
da0c45b7ee
Kernel: Cleanup AML debug dump output
2024-04-17 15:35:42 +03:00
Bananymous
956335e844
Kernel: Implement AML WhileOp
2024-04-17 15:00:14 +03:00
Bananymous
701fc600cd
Kernel: Implement evaluate and store for BankFieldElement
2024-04-17 14:59:51 +03:00
Bananymous
e38b2cff4f
Kernel: Implement proper synchronization for AML opregions
2024-04-17 14:59:26 +03:00
Bananymous
b268293402
Kernel: Fix Buffer evaluate and store for sizes >= byte
...
All reads and writes were to the first byte. This patch adds the
correct offset for reading and writing.
2024-04-17 14:57:13 +03:00
Bananymous
45b9dc8be9
Kernel: Make ACPI \\_OSI return true for Linux
2024-04-17 02:19:35 +03:00
Bananymous
49b7467840
Kernel: Simplify AML method invocation API
2024-04-17 01:20:58 +03:00
Bananymous
a40ef610a2
Kernel: Allow demand paging only for userspace threads
2024-04-17 01:16:43 +03:00
Bananymous
f9943b60e4
Kernel: Fix mutex try_lock return value
...
WHY IS GCC NOT COMPLAINING FROM HEADERS... I used almost 2 hours
trying to locate why AML was broken
2024-04-17 01:16:43 +03:00
Bananymous
cbc27a94ac
Kernel: AML cleanup IfElse code
2024-04-17 00:49:07 +03:00
Bananymous
6a4f999b88
Kernel: Cleanup AML code and add evaluate for string
2024-04-16 17:39:16 +03:00
Bananymous
7707e01352
Kernel: AML add flag to force absolute lookup for ACPI namespace
2024-04-16 17:38:23 +03:00
Bananymous
e667326df5
Kernel: Fix AML if parsing
...
Parse else case unconditionally, even if _if_ case evaluates to true
2024-04-16 17:36:04 +03:00
Bananymous
f1b2d7530d
Kernel: Rework AML namespace and object hierarchy
...
Remove tree-like structure from AML. This allows more spec compliant
parsing of named objects inside not yet declared devices.
This also allows AML to be run thread safely. All object adds/removes
are now guarded by a mutex.
2024-04-16 16:47:45 +03:00
Bananymous
b89bafa165
Kernel: Add support for power button shutdown
...
This patch implements basic support for power button using ACPI
fixed events. I still need to implement general purpose events
and embedded controller for full power button support.
2024-04-15 23:55:25 +03:00
Bananymous
9fac5f94ba
Kernel: Fix entering ACPI mode
...
My condition to check wheter to enter ACPI mode was incorrect.
I only entered ACPI mode if I already was in ACPI mode :DD
2024-04-15 15:05:48 +03:00
Bananymous
8f2f98b7b4
Kernel: AML implement SleepOp
2024-04-12 16:17:14 +03:00
Bananymous
6b43d12469
Kernel: AML package doesn't mark ZeroOp as NullName reference
2024-04-12 16:10:16 +03:00
Bananymous
74940ed33c
Kernel: Cleanup AML code and fix bugs
...
I can enter ACPI mode on my own laptop!
2024-04-12 16:03:14 +03:00
Bananymous
89c4abc07a
Kernel: Cleanup AML device initialization
...
_STA and _INI are now properly called on call devices
2024-04-12 02:00:30 +03:00
Bananymous
afb1d7ef0c
Kernel: Implement more features for AML parser/interpreter
...
Added
- BankField
- BufferField
- PowerResource
- ThermalZone
- Reference
- Package element forward declare
2024-04-12 01:47:40 +03:00
Bananymous
93ddee5956
Kernel: Implement locking for AML
...
Now global lock uses the actual global lock. Currenly if no lock
can be acquired, we just panic the kernel so that I remember to
implement it properly once AML is running concurrently.
2024-04-11 01:48:46 +03:00
Bananymous
0184e5beb5
Kernel: AML tries to initialize processors when entering ACPI mode
...
I had forgotten that Processors used to be a different definition
in AML.
I also implemented reads/writes for FieldElement/IndexFieldElement
that fit in 64 bits. Reads and writes to buffer are still a TODO.
2024-04-11 01:48:46 +03:00
Bananymous
0ff68b7d66
Kernel: Make ACPI load all SSDT headers after DSDT is loaded
2024-04-10 15:03:54 +03:00
Bananymous
cdbdc1a822
Kernel: Remove lai as a dependecy
...
I don't think lai is needed anymore, since my own AML interpreter
can do ACPI poweroff which was all that lai was used for.
2024-04-10 04:39:48 +03:00
Bananymous
7a2be05c69
Kernel: Implement poweroff with my AML interpreter
...
This can succesfully poweroff qemu!
2024-04-10 04:32:35 +03:00
Bananymous
5be38d0702
Kernel: My AML parser can now enable ACPI mode on QEMU!
2024-04-10 03:05:27 +03:00
Bananymous
ff203d8d34
Kernel: Implement more AML method invocation stuff
...
Method invocation is starting to come together. This implemenetation
can interpret some of the qemu's functions to enter ACPI mode.
PCI config space access is currently the one thing is between
entering ACPI mode.
2024-04-10 01:52:14 +03:00
Bananymous
23fa39121c
Kernel: Start working on AML method evaluations
...
Also fix namespace lookup and scope creations.
2024-04-09 18:37:51 +03:00
Bananymous
b16e65168f
Kernel: Rewrite whole AML parser
...
Now AML parsing is actually done while respecting namespaces and
scopes. I implemented the minimal functionality to parse qemu's AML.
Next step is to implement AML interpreting and then we can drop lai
as a dependency.
2024-04-09 01:16:07 +03:00
Bananymous
22bc4b4271
Kernel: Fix AML package parsing
2024-04-07 20:32:22 +03:00
Bananymous
e7ef7a9e55
Kernel: Implement barebones AML parser
...
This implements only parsing for AML in qemu. InvokeMethods are not
parsed since number of arguments to Methods is not yet known.
Parsing AML uses multiple kilobytes of stack space, so I increased
boot stack size by a lot :D
I am not sure where my own AML is going, but this is good start if
I decide to implement full ACPI on my own.
This code is very much just ugly macro expansion.
Qemu has 2 DefPackage elements that I am not able to parse. Package
data ends while there should be still multiple elements.
2024-04-07 17:03:30 +03:00
Bananymous
e0011d22f2
Kernel: Move ACPI to its own directory and namespace
2024-04-04 15:00:13 +03:00
Bananymous
f8c01418b1
Kernel: Fix multiprocessing on x86_64
...
I did not even start APs after initializing them... :D
2024-04-03 14:21:55 +03:00
Bananymous
c95a271821
Kernel: Set ss in i686 tss
2024-04-03 00:43:38 +03:00
Bananymous
2106a9e373
Kernel: Rework scheduler/processor stacks.
2024-04-02 12:34:42 +03:00
Bananymous
5050047cef
Kernel: Rewrite whole scheduler
...
Current context saving was very hacky and dependant on compiler
behaviour that was not consistent. Now we always use iret for
context saving. This makes everything more clean.
2024-03-29 18:02:12 +02:00
Bananymous
1b65f850ee
Kernel: Rename thread stacks to more appropriate names
2024-03-27 15:06:24 +02:00
Bananymous
4d1f0e77f2
Kernel: Fix physical address size for x86_32
...
Having 32 bit address space does not mean physical address space
is also only 32 bits...
2024-03-26 20:16:20 +02:00
Bananymous
1943c3e7a1
Kernel: Unify IDT and GDT code between x86_64 and x86_32
...
The code is pretty much the same, so there are just couple macros
differiating initialization.
2024-03-26 16:42:02 +02:00
Bananymous
99e30a4d7d
Kernel: Replace i386 with i686
...
I don't really want to be working with i386 since it doesn't support
compare exchange instruction
2024-03-26 02:48:26 +02:00
Bananymous
93975fdc45
Kernel: Process signal mask is now 2 32 bit values
...
This allows signal mask to be atomic on 32 bit target
2024-03-26 02:46:51 +02:00
Bananymous
a9db4dd9a3
Kernel: NVMe Queue max simultaneous commands is dependent on arch
...
This allows mask to be atomic on 32 bit architectures
2024-03-26 01:45:43 +02:00
Bananymous
fe17958b9f
Kernel: Rename rsp->sp and rip->ip
...
This makes more sense if we support i386
2024-03-22 15:41:15 +02:00
Bananymous
7f029b2713
Kernel: Allow Processor compilation for i386 targets
...
This is achieved by rewriting some inline assembly and changing
ProcessorID to be 32 bit value. For some reason if processor id
is 8 bits gcc runs out of 8 bit registers on i386.
2024-03-22 15:41:15 +02:00
Bananymous
2352c86048
Kernel: i386 has 14 indirect blocks in TmpInode instead of 2
...
This allows keeping size of TmpInodeInfo as 128
2024-03-22 14:01:27 +02:00
Bananymous
7ce0370b6a
Kernel: Define KERNEL_OFFSET for i386 target
2024-03-22 12:35:49 +02:00
Bananymous
090c3c9930
Kernel: NVMe queues now supports upto 64 simultaneous operations
2024-03-15 13:46:35 +02:00
Bananymous
48ea9e1c1d
Kernel: PS2Controller uses RecursiveSpinLock so timeouts don't panic
2024-03-15 13:45:44 +02:00
Bananymous
89ca4c8a8b
Kernel: Implement IPI broadcasting
2024-03-09 23:53:38 +02:00
Bananymous
45d6caa1d0
Kernel: APs now start their idle threads when scheduler is started
2024-03-09 23:51:40 +02:00
Bananymous
55d2a64f54
Kernel: Map interrupt handlers for all processors
...
This doesn't mean that processors will actually handle the irqs
2024-03-09 23:50:57 +02:00
Bananymous
2420886c2c
Kernel: Move current and idle thread to Processor
2024-03-08 23:39:29 +02:00
Bananymous
e636dce919
Kernel: Rewrite scheduler thread lists
...
Scheduler now has its own data SchedulerQueue which holds active nad
blocking thread lists. This removes need for BAN/Errors.h and making
current thread separate element instead of iterator into linked list.
This makes it possible to have current_thread on each processor
instead of a global one in Scheduler.
2024-03-08 22:13:45 +02:00
Bananymous
1a1f9b1cf2
Kernel: Fix {read,write}_gs_sized input operands to work always
2024-03-08 22:12:33 +02:00
Bananymous
29fd682672
Kernel: Store current processor pointer in IA32_GS_BASE
...
This allows easier access to processors fields
2024-03-07 16:05:29 +02:00
Bananymous
54f64e7618
Kernel: Move current page table to Processor
...
APs can now map kernel page table and print current time!
2024-03-06 02:19:59 +02:00
Bananymous
f0105cb7fb
Kernel: Move Interruptable from InterruptController.h to its own file
2024-03-06 00:47:02 +02:00
Bananymous
76b0f80169
Kernel: Move IDT to Processor
2024-03-06 00:45:54 +02:00
Bananymous
f84df175ce
Kernel: Save BSB id
2024-03-06 00:36:09 +02:00
Bananymous
58aca68726
Kernel: Move GDT to Processor
2024-03-06 00:35:45 +02:00
Bananymous
418bc54f2b
Kernel: Move SpinLock definition to header and fix Scheduler locking
...
This patch allows inlining of spinlocks :)
2024-03-04 22:36:41 +02:00
Bananymous
9c36d7c338
BAN/Kernel: Rework assertion/panic system
...
BAN/Assert.h does not need any includes meaning it can be included
anywhere without problems.
2024-03-04 11:41:54 +02:00
Bananymous
8141b9977d
Kernel: Per processor information is now stored in class Processor
...
This allows us to allocate processor stacks, and other per processor
structures dynamically in runtime. Giving processor stack to
ap_trampoline feels super hacky, but it works for now.
2024-03-03 22:30:06 +02:00
Bananymous
c035d3c82c
Kernel: Start all processors on kernel boot
...
Processors don't do anything, except print hello message and halt.
2024-03-03 02:19:43 +02:00
Bananymous
1de9daa40f
Kernel: Move interrupt status stuff to Processor.h
...
SpinLocks are now locked with processor id instead of thread id. This
allows having multiple processors running while scheduler is not yet
activated.
2024-03-03 01:47:22 +02:00
Bananymous
a667d88f93
Kernel: Remove now obsolete CriticalScope
...
All critical scopes in kernel are now replaced by SpinLocks. This
allows proper locking in actual multiprocessing with multiple cores.
2024-03-01 15:51:02 +02:00
Bananymous
8d7dd577ab
Kernel: Replace last CriticalScopes in kernel with SpinLocks
2024-03-01 15:49:39 +02:00
Bananymous
054b41383f
Kernel: Implement SpinLock unsafe that does not keep track of locker
...
This will be used in scheduler where thread ids are changing
2024-03-01 15:48:08 +02:00
Bananymous
02ad199138
Kernel: Move interrupt status functions to kernel/Interrupts.h
2024-03-01 02:13:28 +02:00
Bananymous
65c4f9db5b
Kernel: Replace CriticalScopes with SpinLocks in Process/Thread
2024-03-01 02:13:28 +02:00
Bananymous
51e38b7614
Kernel: Replace CriticalScope with SpinLock in SerialTTY
2024-02-29 19:17:28 +02:00
Bananymous
90878a7c2b
Kernel: Replace CriticalScopes with SpinLocks in networking code
2024-02-29 19:17:28 +02:00
Bananymous
7f028f70d5
Kernel: Replace CriticalScopes with SpinLock in PS/2 and input code
2024-02-29 19:17:28 +02:00
Bananymous
ec0cb5fd54
Kernel: Remove CriticalScopes from memory handing code
2024-02-29 19:16:41 +02:00
Bananymous
682de62c57
Kernel: Replace HPET CriticalScope with SpinLock
2024-02-29 19:15:33 +02:00
Bananymous
18253b6966
Kernel: Replace InterruptController CriticalScopes with SpinLock
2024-02-29 19:15:33 +02:00
Bananymous
d94f6388b7
Kernel: Fix all broken locks from new mutexes
2024-02-28 22:45:34 +02:00
Bananymous
6d59a2b45d
Kernel: Remove VirtualRanges created in kmalloc memory
...
These were only used as stacks of kernel threads, but they can just
as well be allocated as full pages from Heap
2024-02-28 13:19:18 +02:00
Bananymous
efdc4817bb
Kernel: Print to debug log ICMP unreachable messages
...
These messages should be forwarded to underlying sockets
2024-02-28 13:19:18 +02:00
Bananymous
9594ee8e47
Kernel: Start making device numbers unique for each device
2024-02-22 15:53:48 +02:00
Bananymous
f73e954b28
Kernel: Remove SpinLock from Pipe
...
Pipe already is using lock on the inode. If you read from pipe when
there was no data, pipe blocked indefinately since writes were blocked
by Inode::m_lock.
2024-02-14 17:21:32 +02:00
Bananymous
00662bad46
Kernel: Rewrite HPET code
...
Now the set timer frequency actually works... :D
2024-02-13 17:59:48 +02:00
Bananymous
9314528b9b
Kernel: Improve syscall handling
...
Syscalls are now called from a list of function pointers
2024-02-12 21:51:11 +02:00
Bananymous
3fc1edede0
Kernel/LibC: Implement super basic select
...
This does not really even block but it works... :D
2024-02-12 17:26:33 +02:00
Bananymous
f50b4be162
Kernel: Cleanup TCP code
2024-02-12 15:44:40 +02:00
Bananymous
435636a655
Kernel: Implement super simple TCP stack
...
No SACK support and windows are fixed size
2024-02-12 04:45:42 +02:00
Bananymous
ba06269b14
Kernel: Move on_close_impl from network socket to udp socket
2024-02-12 04:45:42 +02:00
Bananymous
be01ccdb08
Kernel: Fix E1000 mtu
2024-02-12 04:25:39 +02:00
Bananymous
b45d27593f
Kernel: Implement super simple PRNG
2024-02-12 04:25:06 +02:00
Bananymous
ff49d8b84f
Kernel: Cleanup OSI layer overlapping
2024-02-09 17:05:07 +02:00
Bananymous
ed0b1a86aa
Kernel: Semaphores and Threads can now be blocked with timeout
2024-02-09 15:28:15 +02:00
Bananymous
534b3e6a9a
Kernel: Add LockFreeGuard to LockGuard.h
2024-02-09 15:13:54 +02:00
Bananymous
d452cf4170
Kernel: Fix checksum for packets with odd number of bytes
2024-02-09 01:20:40 +02:00
Bananymous
acf79570ef
Kernel: Cleanup network APIs and error messages
2024-02-08 18:33:49 +02:00
Bananymous
9bc7a72a25
Kernel: Implement unix domain sockets with SOCK_DGRAM
...
Also unbind sockets on close
2024-02-08 13:18:54 +02:00
Bananymous
49889858fa
Kernel: Allow chmod on TmpSocketInode
2024-02-08 03:16:01 +02:00
Bananymous
e7dd03e551
Kernel: Implement basic connection-mode unix domain sockets
2024-02-08 02:28:19 +02:00
Bananymous
572c4052f6
Kernel: Fix Process APIs
2024-02-07 15:57:45 +02:00