Commit Graph

1098 Commits

Author SHA1 Message Date
90878a7c2b Kernel: Replace CriticalScopes with SpinLocks in networking code 2024-02-29 19:17:28 +02:00
7f028f70d5 Kernel: Replace CriticalScopes with SpinLock in PS/2 and input code 2024-02-29 19:17:28 +02:00
ec0cb5fd54 Kernel: Remove CriticalScopes from memory handing code 2024-02-29 19:16:41 +02:00
682de62c57 Kernel: Replace HPET CriticalScope with SpinLock 2024-02-29 19:15:33 +02:00
18253b6966 Kernel: Replace InterruptController CriticalScopes with SpinLock 2024-02-29 19:15:33 +02:00
d94f6388b7 Kernel: Fix all broken locks from new mutexes 2024-02-28 22:45:34 +02:00
5c39903323 Kernel: Simplify writing to threads stacks
This can be done more simply as all stacks are now page aligned
2024-02-28 13:20:17 +02:00
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
09c24088a2 Kernel: Cleanup kmalloc VirtualRange creation 2024-02-28 13:19:18 +02:00
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
59abb5d344 Kernel: Make HPET read_main_counter() atomic with 32 bit main counter 2024-02-23 13:42:04 +02:00
9594ee8e47 Kernel: Start making device numbers unique for each device 2024-02-22 15:53:48 +02:00
7a4ec7f7a3 Kernel: Use static_cast instead of c-style cast in HPET 2024-02-22 14:44:39 +02:00
51db1706e9 Kernel: Fix checking of partition boundaries on write 2024-02-22 13:31:12 +02:00
f3f5ca1bd8 Kernel: Seed RNG by real time if no RDRAND available 2024-02-20 13:00:26 +02:00
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
198dde8365 Kernel: Add klibc for kernel
Now building same source as libc is not needed and libc doesn't
have to do hacks to allow kernel compilation
2024-02-14 15:00:04 +02:00
b165340662 Kernel: Don't use strcat in kernel code 2024-02-14 14:59:13 +02:00
00662bad46 Kernel: Rewrite HPET code
Now the set timer frequency actually works... :D
2024-02-13 17:59:48 +02:00
2ab3eb4109 Kernel: Fix bugs in select
Unix domain socket is now select readable when it has pending
connection
2024-02-12 23:46:27 +02:00
9314528b9b Kernel: Improve syscall handling
Syscalls are now called from a list of function pointers
2024-02-12 21:51:11 +02:00
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
f50b4be162 Kernel: Cleanup TCP code 2024-02-12 15:44:40 +02:00
435636a655 Kernel: Implement super simple TCP stack
No SACK support and windows are fixed size
2024-02-12 04:45:42 +02:00
ba06269b14 Kernel: Move on_close_impl from network socket to udp socket 2024-02-12 04:45:42 +02:00
be01ccdb08 Kernel: Fix E1000 mtu 2024-02-12 04:25:39 +02:00
b45d27593f Kernel: Implement super simple PRNG 2024-02-12 04:25:06 +02:00
ff49d8b84f Kernel: Cleanup OSI layer overlapping 2024-02-09 17:05:07 +02:00
5d78cd3016 Kernel: Add spin lock assert back. I had accidentally deleted it 2024-02-09 16:58:55 +02:00
ed0b1a86aa Kernel: Semaphores and Threads can now be blocked with timeout 2024-02-09 15:28:15 +02:00
534b3e6a9a Kernel: Add LockFreeGuard to LockGuard.h 2024-02-09 15:13:54 +02:00
d452cf4170 Kernel: Fix checksum for packets with odd number of bytes 2024-02-09 01:20:40 +02:00
acf79570ef Kernel: Cleanup network APIs and error messages 2024-02-08 18:33:49 +02:00
9bc7a72a25 Kernel: Implement unix domain sockets with SOCK_DGRAM
Also unbind sockets on close
2024-02-08 13:18:54 +02:00
49889858fa Kernel: Allow chmod on TmpSocketInode 2024-02-08 03:16:01 +02:00
e7dd03e551 Kernel: Implement basic connection-mode unix domain sockets 2024-02-08 02:28:19 +02:00
e26f360d93 Kernel: allow kmalloc of size 0 2024-02-07 22:36:24 +02:00
572c4052f6 Kernel: Fix Process APIs 2024-02-07 15:57:45 +02:00
132286895f Kernel: Implement Socket inodes for tmpfs 2024-02-07 15:57:45 +02:00
41cad88d6e Kernel/LibC: Implement dummy syscalls for accept, connect, listen 2024-02-07 15:57:45 +02:00
5da59c9151 Kernel: Make better abstractions for networking 2024-02-06 16:45:39 +02:00
f804e87f7d Kernel: Implement basic gateway for network interfaces 2024-02-05 18:18:56 +02:00
dd3641f054 Kernel: Cleanup ARPTable code
Packet process is now killed if ARPTable dies.

ARP wait loop now just reschecules so timeout actually works.
2024-02-05 18:18:56 +02:00
b2291ce162 Kernel/BAN: Fix network strucute endianness 2024-02-05 18:18:56 +02:00
d15cbb2d6a Kernel: Fix IPv4 header checksum calculation 2024-02-05 18:18:56 +02:00
692cec8458 Kernel/Userspace/LibC: Implement basic dprintln for userspace 2024-02-05 01:24:09 +02:00
649e9f4500 Kernel: ARP now replies to requests 2024-02-03 18:04:12 +02:00
5cfe249945 Kernel: Cleanup network code and implement basic ARP request 2024-02-03 02:39:26 +02:00
a0138955cd Kernel: Implement barebones arp table 2024-02-03 01:50:10 +02:00
e1ffbb710b Kernel/LibC: Implement basic ioctl for network addresses 2024-02-03 01:50:10 +02:00