Commit Graph

1737 Commits

Author SHA1 Message Date
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 21f05eb118 Merge branch 'main' into locking 2024-02-28 23:00:02 +02:00
Bananymous d94f6388b7 Kernel: Fix all broken locks from new mutexes 2024-02-28 22:45:34 +02:00
Bananymous 1971813336 BAN: Add HashMap::remove(iterator) 2024-02-28 22:35:42 +02:00
Bananymous 3c88d2aad3 BAN: Implement find() for HashMap 2024-02-28 13:20:24 +02:00
Bananymous 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
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 09c24088a2 Kernel: Cleanup kmalloc VirtualRange creation 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 0c97abb053 BAN: Implement find() for HashMap 2024-02-27 15:40:30 +02:00
Bananymous 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
Bananymous 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
Bananymous 264eff3ad0 Kernel: Cleanup kmalloc VirtualRange creation 2024-02-25 21:33:30 +02:00
Bananymous 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
Bananymous 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
Bananymous 6ebfe05fce BAN: Add parenthesis in ASSERT macros 2024-02-25 21:22:47 +02:00
Bananymous 59abb5d344 Kernel: Make HPET read_main_counter() atomic with 32 bit main counter 2024-02-23 13:42:04 +02:00
Bananymous 9594ee8e47 Kernel: Start making device numbers unique for each device 2024-02-22 15:53:48 +02:00
Bananymous 7a4ec7f7a3 Kernel: Use static_cast instead of c-style cast in HPET 2024-02-22 14:44:39 +02:00
Bananymous 51db1706e9 Kernel: Fix checking of partition boundaries on write 2024-02-22 13:31:12 +02:00
Bananymous ac9e71d9c7 LibC: Fix parsing mode from string 2024-02-20 13:25:24 +02:00
Bananymous f3f5ca1bd8 Kernel: Seed RNG by real time if no RDRAND available 2024-02-20 13:00:26 +02:00
Bananymous b979023b9d Shell: Add test cases for stroul and strod in builtin `test-strtox` 2024-02-16 15:35:02 +02:00
Bananymous 915dea01c9 LibC: fix printf %e for inf/nan values 2024-02-16 15:34:24 +02:00
Bananymous 566bb73897 LibC: Implement ato* and strto* functions for floating point numbers 2024-02-16 15:28:52 +02:00
Bananymous fb0d8d746f BAN: Add {max,min}_exponent{2,10} to numeric_limits<T> 2024-02-16 15:27:40 +02:00
Bananymous 1b24c4f279 LibC: Implement strtou{l,ll} 2024-02-15 12:25:56 +02:00
Bananymous a5a041e637 LibC: Remove cast from S_* macros so they can be used in preprocessor 2024-02-15 12:20:09 +02:00
Bananymous c469d9b3ff Shell: Add builtin test for strtol `test-strtol` 2024-02-14 22:38:16 +02:00
Bananymous 373d166076 LibC: Implement ato{i,l,ll} and strto{l,ll} 2024-02-14 22:35:23 +02:00
Bananymous 3c54243ac7 BAN: Implement some numerical limits 2024-02-14 22:34:42 +02:00
Bananymous 1f467580ee Userspace: Add test for popen 2024-02-14 17:23:26 +02:00
Bananymous 1ba883719a LibC: Implement popen and pclose 2024-02-14 17:22:45 +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 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
Bananymous 7eb5d220fd Userspace: Implement getopt for testing libc getopt() 2024-02-14 15:01:27 +02:00
Bananymous 4cd9abdd15 LibC: Implement getopt() 2024-02-14 15:00:58 +02:00
Bananymous 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
Bananymous b165340662 Kernel: Don't use strcat in kernel code 2024-02-14 14:59:13 +02:00
Bananymous 5ad4340679 BAN: Use strerrordesc_np instead of strerror 2024-02-14 14:58:27 +02:00
Bananymous b56fa4a29d LibC: Implement fscanf
I had missed this when I was implementing *scanf functions
2024-02-14 14:39:22 +02:00
Bananymous 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
Bananymous 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
Bananymous c18d926174 LibC: Fix timeval field name 2024-02-14 03:36:18 +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 420a7b60ca resolver: use select for client communication 2024-02-12 23:47:39 +02:00
Bananymous 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
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 78ef7e804f BAN: Implement bit_cast 2024-02-12 21:46:33 +02:00