Commit Graph

685 Commits

Author SHA1 Message Date
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
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
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
8d7dd577ab Kernel: Replace last CriticalScopes in kernel with SpinLocks 2024-03-01 15:49:39 +02:00
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
02ad199138 Kernel: Move interrupt status functions to kernel/Interrupts.h 2024-03-01 02:13:28 +02:00
65c4f9db5b Kernel: Replace CriticalScopes with SpinLocks in Process/Thread 2024-03-01 02:13:28 +02:00
51e38b7614 Kernel: Replace CriticalScope with SpinLock in SerialTTY 2024-02-29 19:17:28 +02:00
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
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
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
9594ee8e47 Kernel: Start making device numbers unique for each device 2024-02-22 15:53:48 +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
00662bad46 Kernel: Rewrite HPET code
Now the set timer frequency actually works... :D
2024-02-13 17:59:48 +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
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
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
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
0f154c3173 Kernel: Implement basic recvfrom 2024-02-02 13:50:00 +02:00
ec2f21bb9f Kernel/LibC: Implement SYS_SENDTO 2024-02-02 03:16:01 +02:00
ab150b458a Kernel/LibC: Implement basic socket binding 2024-02-02 01:31:58 +02:00
cf28ecd5a6 Kernel/LibC: Add SYS_SOCKET 2024-02-01 23:39:09 +02:00