Commit Graph

1779 Commits

Author SHA1 Message Date
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
0c97abb053 BAN: Implement find() for HashMap 2024-02-27 15:40:30 +02:00
1759d247d9 Kernel: Simplify writing to threads stacks
This can be done more simply as all stacks are now page aligned
2024-02-25 21:57:33 +02:00
21dc64dc21 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-25 21:56:37 +02:00
264eff3ad0 Kernel: Cleanup kmalloc VirtualRange creation 2024-02-25 21:33:30 +02:00
05c7b21b0a Kernel: Print to debug log ICMP unreachable messages
These messages should be forwarded to underlying sockets
2024-02-25 21:32:37 +02:00
40b626b0aa Kernel: Rewrite all kernel mutexes
Now SpinLock is actually just a spin lock and I added a Mutex that
does the same as the old "SpinLock". This is in preparation for
starting to support smp and making the kernel smp safe. This commit
also removes obsolete PageTableScope and CriticalScope which should
now be used by alternative APIs.
2024-02-25 21:29:43 +02:00
6ebfe05fce BAN: Add parenthesis in ASSERT macros 2024-02-25 21:22:47 +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
ac9e71d9c7 LibC: Fix parsing mode from string 2024-02-20 13:25:24 +02:00
f3f5ca1bd8 Kernel: Seed RNG by real time if no RDRAND available 2024-02-20 13:00:26 +02:00
b979023b9d Shell: Add test cases for stroul and strod in builtin test-strtox 2024-02-16 15:35:02 +02:00
915dea01c9 LibC: fix printf %e for inf/nan values 2024-02-16 15:34:24 +02:00
566bb73897 LibC: Implement ato* and strto* functions for floating point numbers 2024-02-16 15:28:52 +02:00
fb0d8d746f BAN: Add {max,min}_exponent{2,10} to numeric_limits<T> 2024-02-16 15:27:40 +02:00
1b24c4f279 LibC: Implement strtou{l,ll} 2024-02-15 12:25:56 +02:00
a5a041e637 LibC: Remove cast from S_* macros so they can be used in preprocessor 2024-02-15 12:20:09 +02:00
c469d9b3ff Shell: Add builtin test for strtol test-strtol 2024-02-14 22:38:16 +02:00
373d166076 LibC: Implement ato{i,l,ll} and strto{l,ll} 2024-02-14 22:35:23 +02:00
3c54243ac7 BAN: Implement some numerical limits 2024-02-14 22:34:42 +02:00
1f467580ee Userspace: Add test for popen 2024-02-14 17:23:26 +02:00
1ba883719a LibC: Implement popen and pclose 2024-02-14 17:22:45 +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
de629291b9 LibC: Implement freopen, rewind and fix bugs in code
Now everything will be properly locked once threads are implemented.
All functions "lock" the stream for the wanted operation
2024-02-14 16:36:48 +02:00
7eb5d220fd Userspace: Implement getopt for testing libc getopt() 2024-02-14 15:01:27 +02:00
4cd9abdd15 LibC: Implement getopt() 2024-02-14 15:00:58 +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
5ad4340679 BAN: Use strerrordesc_np instead of strerror 2024-02-14 14:58:27 +02:00
b56fa4a29d LibC: Implement fscanf
I had missed this when I was implementing *scanf functions
2024-02-14 14:39:22 +02:00
e946b392c9 LibC: Add definition for S_IFMT
I was using S_IFMASK, but linux seems to use this
2024-02-14 14:39:22 +02:00
81689b5f02 LibC: Implement most of missing functions from string.h
only strcoll*, strxfrm* and strerror_l are left unimplemented
2024-02-14 14:39:22 +02:00
c18d926174 LibC: Fix timeval field name 2024-02-14 03:36:18 +02:00
00662bad46 Kernel: Rewrite HPET code
Now the set timer frequency actually works... :D
2024-02-13 17:59:48 +02:00
420a7b60ca resolver: use select for client communication 2024-02-12 23:47:39 +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
78ef7e804f BAN: Implement bit_cast 2024-02-12 21:46:33 +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
ccde8148a7 Userspace: Implement basic udp test program 2024-02-12 04:45:42 +02:00
b9bbf42538 Userspace: Implement basic test program for tcp connection 2024-02-12 04:45:42 +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