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
Bananymous
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
Bananymous
f50b4be162
Kernel: Cleanup TCP code
2024-02-12 15:44:40 +02:00
Bananymous
ccde8148a7
Userspace: Implement basic udp test program
2024-02-12 04:45:42 +02:00
Bananymous
b9bbf42538
Userspace: Implement basic test program for tcp connection
2024-02-12 04:45:42 +02:00
Bananymous
435636a655
Kernel: Implement super simple TCP stack
...
No SACK support and windows are fixed size
2024-02-12 04:45:42 +02:00
Bananymous
ba06269b14
Kernel: Move on_close_impl from network socket to udp socket
2024-02-12 04:45:42 +02:00
Bananymous
be01ccdb08
Kernel: Fix E1000 mtu
2024-02-12 04:25:39 +02:00
Bananymous
b45d27593f
Kernel: Implement super simple PRNG
2024-02-12 04:25:06 +02:00
Bananymous
ff49d8b84f
Kernel: Cleanup OSI layer overlapping
2024-02-09 17:05:07 +02:00
Bananymous
5d78cd3016
Kernel: Add spin lock assert back. I had accidentally deleted it
2024-02-09 16:58:55 +02:00
Bananymous
ed0b1a86aa
Kernel: Semaphores and Threads can now be blocked with timeout
2024-02-09 15:28:15 +02:00
Bananymous
534b3e6a9a
Kernel: Add LockFreeGuard to LockGuard.h
2024-02-09 15:13:54 +02:00
Bananymous
d452cf4170
Kernel: Fix checksum for packets with odd number of bytes
2024-02-09 01:20:40 +02:00
Bananymous
f117027175
resolver: dump errors to debug output
2024-02-08 18:34:15 +02:00
Bananymous
acf79570ef
Kernel: Cleanup network APIs and error messages
2024-02-08 18:33:49 +02:00
Bananymous
5a939cf252
Userspace: Add simple test for unix domain sockets
2024-02-08 13:18:54 +02:00
Bananymous
9bc7a72a25
Kernel: Implement unix domain sockets with SOCK_DGRAM
...
Also unbind sockets on close
2024-02-08 13:18:54 +02:00
Bananymous
065ee9004c
Userspace: Add DNS cache to resolver
...
Also the format of resolver reply is now just sockaddr_storage with
family set and address in the storage field.
2024-02-08 12:06:30 +02:00
Bananymous
6fb69a1dc2
LibC: Implement inet_ntop for IPv4 addresses
2024-02-08 11:59:11 +02:00
Bananymous
49889858fa
Kernel: Allow chmod on TmpSocketInode
2024-02-08 03:16:01 +02:00
Bananymous
2424f38a62
Userspace: Implement super simple DNS resolver in userspace
...
You connect to this service using unix domain sockets and send the
asked domain name. It will respond with ip address or 'unavailable'
There is no DNS cache implemented so all calls ask the nameserver.
2024-02-08 03:14:00 +02:00
Bananymous
218456d127
BAN: Fix some includes
2024-02-08 03:13:21 +02:00
Bananymous
e7dd03e551
Kernel: Implement basic connection-mode unix domain sockets
2024-02-08 02:28:19 +02:00
Bananymous
0c8e9fe095
Kernel: Add operator bool() for WeakPtr
2024-02-08 02:26:46 +02:00
Bananymous
5b4acec4ca
BAN: Add capacity() getter for Queue
2024-02-07 22:53:56 +02:00
Bananymous
e26f360d93
Kernel: allow kmalloc of size 0
2024-02-07 22:36:24 +02:00
Bananymous
2cc9534570
BAN: Add emplace for Variant
...
This allows variant to store values that are not copy/move
constructible.
2024-02-07 22:33:16 +02:00
Bananymous
572c4052f6
Kernel: Fix Process APIs
2024-02-07 15:57:45 +02:00
Bananymous
132286895f
Kernel: Implement Socket inodes for tmpfs
2024-02-07 15:57:45 +02:00
Bananymous
454bee3f02
LibC: Fix sockaddr_un implementation
2024-02-07 15:57:45 +02:00
Bananymous
41cad88d6e
Kernel/LibC: Implement dummy syscalls for accept, connect, listen
2024-02-07 15:57:45 +02:00
Bananymous
40e341b0ee
BAN: Remove unstable hash map and set
...
These can now be implemented safely with new linked list api
2024-02-06 17:35:15 +02:00
Bananymous
5da59c9151
Kernel: Make better abstractions for networking
2024-02-06 16:45:39 +02:00