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
21f05eb118
Merge branch 'main' into locking
2024-02-28 23:00:02 +02:00
d94f6388b7
Kernel: Fix all broken locks from new mutexes
2024-02-28 22:45:34 +02:00
1971813336
BAN: Add HashMap::remove(iterator)
2024-02-28 22:35:42 +02:00
3c88d2aad3
BAN: Implement find() for HashMap
2024-02-28 13:20:24 +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
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