Commit Graph

1967 Commits

Author SHA1 Message Date
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
Bananymous f804e87f7d Kernel: Implement basic gateway for network interfaces 2024-02-05 18:18:56 +02:00
Bananymous 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
Bananymous b2291ce162 Kernel/BAN: Fix network strucute endianness 2024-02-05 18:18:56 +02:00
Bananymous c35ed6570b LibC: Implement endiannes and ip address functions 2024-02-05 18:18:56 +02:00
Bananymous d15cbb2d6a Kernel: Fix IPv4 header checksum calculation 2024-02-05 18:18:56 +02:00
Bananymous b8cf6432ef BAN: Implement host_to_network_endian 2024-02-05 17:29:24 +02:00
Bananymous 89805fb092 dhcp-client: Use dprintln for debug printing 2024-02-05 01:24:45 +02:00
Bananymous 692cec8458 Kernel/Userspace/LibC: Implement basic dprintln for userspace 2024-02-05 01:24:09 +02:00
Bananymous 79897e77dc dhcp-client: Remove packet send test :D 2024-02-03 18:04:31 +02:00
Bananymous 649e9f4500 Kernel: ARP now replies to requests 2024-02-03 18:04:12 +02:00
Bananymous 3a6d31d3fa BAN: Add comparison for MAC 2024-02-03 18:03:27 +02:00
Bananymous 2138eeb87f Userspace: Implement super simple DHCP client 2024-02-03 02:41:06 +02:00
Bananymous 102aa50a41 BuildSystem: Use E1000E network controller in qemu 2024-02-03 02:40:15 +02:00
Bananymous 5cfe249945 Kernel: Cleanup network code and implement basic ARP request 2024-02-03 02:39:26 +02:00
Bananymous a0138955cd Kernel: Implement barebones arp table 2024-02-03 01:50:10 +02:00
Bananymous e1ffbb710b Kernel/LibC: Implement basic ioctl for network addresses 2024-02-03 01:50:10 +02:00
Bananymous c18f72ceb9 BAN: Add more APIs for IPv4 address 2024-02-03 01:50:10 +02:00
Bananymous bc1441a5eb LibC: add stropts.h 2024-02-02 14:29:20 +02:00
Bananymous 0f154c3173 Kernel: Implement basic recvfrom 2024-02-02 13:50:00 +02:00
Bananymous 7b287a1d5b BAN: Add types for IPv4 and MAC addresses 2024-02-02 13:48:07 +02:00
Bananymous 4b332b5d42 Kernel: Cleanup PCI code 2024-02-02 03:16:37 +02:00
Bananymous ec2f21bb9f Kernel/LibC: Implement SYS_SENDTO 2024-02-02 03:16:01 +02:00
Bananymous acd6c86f98 BAN: Add NetworkEndian to Endianness 2024-02-02 03:13:14 +02:00
Bananymous ab150b458a Kernel/LibC: Implement basic socket binding 2024-02-02 01:31:58 +02:00
Bananymous cf28ecd5a6 Kernel/LibC: Add SYS_SOCKET 2024-02-01 23:39:09 +02:00
Bananymous 99eed9c37a Kernel: Start work on network stack 2024-02-01 23:38:06 +02:00
Bananymous f4e86028d0 Kernel: Write simple working E1000 and E1000E drivers 2024-02-01 22:08:59 +02:00
Bananymous 7cb71ec6fb test-sort: Test more algorithms and cleanup output format 2024-02-01 15:22:28 +02:00
Bananymous d054e5b4b7 BAN: Implement basic radix sort for unsigned integers 2024-02-01 15:22:28 +02:00
Bananymous c69efc040c Kernel: Scheduler now uses the new LinkedList API for moving threads
Scheduler doesn't have to depend on the fact that allocations should
work when same amount of memory is just deallocated
2024-02-01 15:22:28 +02:00
Bananymous c4bf1641bd BAN: Add cool API for LinkedList
You can now move elements between LinkedLists without allocations or
deallocations. Same node moves from source to destination
2024-02-01 14:19:02 +02:00
Bananymous 9213dd13bc dd: Improve output format
Include written bytes and speed with units
2024-02-01 00:06:46 +02:00
Bananymous 4273f43be1 BAN: Move placement new to its own file and fix includes 2024-01-31 23:55:41 +02:00
Bananymous 139bb5c2a5 Kernel: Fix linker script
I have no idea why rodata was executable :D
2024-01-30 17:32:50 +02:00
Bananymous 95e861bcdd Kernel: Optimize all SpinLocks. All locking operations are atomic 2024-01-30 12:39:37 +02:00
Bananymous ca8e7b40bc Kernel: Implement SpinLock without CriticalScope
This actually is not even spinlock since it yields the current
thread. It will become one when I get to SMP though...
2024-01-30 01:21:15 +02:00
Bananymous cc79f55817 BAN: Add compare_exchange to atomic 2024-01-30 01:21:15 +02:00