Andreas Kling
be46f1bb1f
IPv4: More work on the TCP implementation.
...
Reading from the peer now kinda works. Something still going wrong with
sending packets but it's getting closer.
2019-03-14 01:00:10 +01:00
Andreas Kling
66d55f8e0c
IPv4: More work on the TCP implementation.
...
I can now establish a connection to my little test server on the host.
2019-03-14 00:20:44 +01:00
Andreas Kling
032d9d7065
IPv4: More hacking on bringing up TCP support.
...
This was a bit more complicated than I expected, but it's moving forward.
2019-03-13 23:14:30 +01:00
Andreas Kling
7aba68d51c
Userland+LibC: Add a new little "tc" program for testing TCP.
...
Also added send() and recv() to LibC in support of this. They are just
wrappers around sendto() and recvfrom().
2019-03-13 17:33:40 +01:00
Andreas Kling
c588653f76
IPv4: Begin fleshing out TCP support.
2019-03-13 17:17:07 +01:00
Andreas Kling
ef5d0a397c
IPv4: Do the TCP-to-socket mapping in the same way as UDP.
...
We don't actually have TCP support yet, but we'll get there soon. :^)
2019-03-13 16:43:42 +01:00
Andreas Kling
3ad9561b80
IPv4: Use the UDP-to-socket map to handle incoming UDP packets.
2019-03-13 16:23:22 +01:00
Andreas Kling
209a16bb7f
IPv4: Dynamically allocate the UDP source port if needed.
2019-03-13 16:05:56 +01:00
Andreas Kling
4dddf949c8
IPv4: More work on UDP support.
...
I'm now able to connect to a simple UDP server on my host machine and
exchange some data. Very cool! :^)
2019-03-13 15:40:30 +01:00
Andreas Kling
a9dc332a11
IPv4: recvfrom() shouldn't care about what's in the outparam on entry.
2019-03-13 15:00:28 +01:00
Andreas Kling
ea6a537b70
Userland: Add a simple utility for UDP testing.
2019-03-13 15:00:02 +01:00
Andreas Kling
19a51132f5
Kernel: recvfrom() should treat the address arguments as outparams.
2019-03-13 14:47:21 +01:00
Andreas Kling
b59d588c04
Kernel: Start fleshing out an UDP implementation.
2019-03-13 14:22:27 +01:00
Andreas Kling
562663df7c
Add support for socket send/receive timeouts.
...
Only the receive timeout is hooked up yet. You can change the timeout by
calling setsockopt(..., SOL_SOCKET, SO_RCVTIMEO, ...).
Use this mechanism to make /bin/ping report timeouts.
2019-03-13 13:15:05 +01:00
Andreas Kling
7bcd386338
NetworkAdapter: Use a ByteBuffer instead of kmalloc/kfree in send().
2019-03-13 13:12:29 +01:00
Andreas Kling
cf250e1245
More work on IPv4 sockets and /bin/ping.
...
It's now actually possible to ping other hosts on the network! :^)
I've switched the "run" script over to starting QEMU with user networking
since that works better for my testing needs right now.
2019-03-13 03:26:01 +01:00
Andreas Kling
ce7c302933
Kernel: Oops, gettimeofday()'s tv_usec should be micro, not milliseconds.
2019-03-13 03:25:18 +01:00
Andreas Kling
a7d5e9781a
Kernel+LibC+Userland: Yet more networking bringup hacking.
...
All ICMP sockets now receive all ICMP packets. All this buffering is gonna
need some limits and such.
2019-03-12 17:27:07 +01:00
Andreas Kling
a017a77442
Kernel+LibC+Userland: Start working on an IPv4 socket backend.
...
The first userland networking program will be "ping" :^)
2019-03-12 15:51:42 +01:00
Andreas Kling
8e667747f0
Kernel: Add a way to look up NetworkAdapters by IPv4 address.
2019-03-12 13:30:36 +01:00
Andreas Kling
c6a2012fe9
Kernel: Collect IPv4 stuff in IPv4.h and ARP stuff in ARP.h.
2019-03-12 12:49:01 +01:00
Andreas Kling
87ecf290f4
Kernel: More work on the ICMP and IPv4 support.
2019-03-12 12:43:30 +01:00
Andreas Kling
9858be636f
Kernel: Fix up the ICMP implementation to generate correct Echo replies.
...
Serenity now responds to ping. :^)
2019-03-12 11:44:38 +01:00
Andreas Kling
75e0ddd46a
Kernel: More work on ICMP support.
...
We can now kinda sorta respond to ICMP::EchoRequest although there's
still something not entirely right with the packets.
2019-03-12 04:40:13 +01:00
Andreas Kling
5bd9844dd6
Kernel: Start adding IPv4 support, starting with ICMP echo messages.
...
This doesn't work correctly yet, but it's getting nice enough to commit.
2019-03-12 04:11:20 +01:00
Andreas Kling
d5dbb602b8
Kernel: Tidy up networking code with some named constants.
2019-03-12 01:30:49 +01:00
Andreas Kling
90f60d2f65
Kernel: Cache MAC<->IP mappings (from ARP responses) seen on the wire.
2019-03-12 00:56:33 +01:00
Andreas Kling
05c1a79454
Kernel: Minor style cleanup in NetworkTask.
2019-03-12 00:01:07 +01:00
Andreas Kling
318b01e055
Kernel: Bring up enough networking code that we can respond to ARP requests.
...
This is all pretty rickety but we can now respond to "arping" from the host
while running inside QEMU. Very cool. :^)
2019-03-11 23:21:38 +01:00
Andreas Kling
35098cbde1
Kernel: Add a NetworkTask and a received network packet queue.
...
It will be easier to deal with incoming packets in a separate task.
2019-03-11 12:43:45 +01:00
Andreas Kling
47b096feb4
Kernel: More work on bringing up E1000 support.
2019-03-11 11:11:29 +01:00
Andreas Kling
a36eaeb18c
Kernel: Remove accidentally committed debugging code.
2019-03-11 01:57:34 +01:00
Andreas Kling
1678ac69ef
Kernel: More work on Ethernet support.
2019-03-10 23:40:09 +01:00
Andreas Kling
97664fad60
Kernel: A bunch of hacking towards initial Ethernet support.
2019-03-10 20:59:23 +01:00
Andreas Kling
4641ee49b5
Kernel: Add a simple MACAddress class.
2019-03-10 19:15:22 +01:00
Andreas Kling
405413c354
Kernel: Start adding support for E1000 network adapters.
2019-03-10 15:25:33 +01:00
Andreas Kling
37388b311f
ProcessManager: Show some basic system memory stats below the process table.
...
This really improves the feeling of "system overview" :^)
2019-03-10 12:13:22 +01:00
Andreas Kling
46caa2663b
LibGUI: Use a separate data role for the table model sorting order.
...
This allows data to be displayed nicely while sorting happens based on some
underlying raw data. :^)
2019-03-09 14:24:34 +01:00
Andreas Kling
7d1142c7d9
Make it possible to sort a GTableModel by column+order.
...
This is accomplished by putting a GSortingProxyTableModel between the model
and the view. It's pretty simplistic but it works for this use case. :^)
2019-03-09 13:33:52 +01:00
Andreas Kling
eda0866992
Add a C++ helper class for working with shared buffers.
...
This is a bit more comfortable than passing the shared buffer ID manually
everywhere and keeping track of size etc.
2019-03-08 12:24:05 +01:00
Andreas Kling
0b5d5fc3c9
Kernel: Minor tidying in BXVGADevice.
2019-03-08 02:54:39 +01:00
Andreas Kling
a738b5cb69
TextEditor: Open an empty document by default.
2019-03-07 17:15:59 +01:00
Andreas Kling
ac78cdae46
Kernel: Detect the Delete key.
2019-03-07 16:20:00 +01:00
Andreas Kling
8dcec749ed
Kernel: Detect the Home and End keyboard keys.
2019-03-07 13:19:05 +01:00
Andreas Kling
9158de6c41
Begin working on a graphical TextEditor.
...
It's gonna be a wrapper around a new GTextEditor widget so I can easily
reuse the functionality anywhere I need it. :^)
2019-03-07 00:31:06 +01:00
Andreas Kling
e56fe71dbc
Kernel: And some more KResult/KResultOr<T> porting work.
2019-03-06 22:30:13 +01:00
Andreas Kling
028afabf6b
Kernel: Port more code to KResult and KResultOr<T>.
2019-03-06 22:14:31 +01:00
Andreas Kling
e6f389a544
Kernel: Add two error checks for open() to return EISDIR or ENODEV.
2019-03-06 20:27:19 +01:00
Andreas Kling
e53cef02d5
Kernel: Dump kernel stack trace on assertion failure.
2019-03-06 14:05:41 +01:00
Andreas Kling
26a9d662f4
Kernel+WindowServer: Move mouse input signal parsing to kernel driver.
...
It was silly for the WindowServer to have to know anything about the
format of PS/2 mouse packets.
This patch also enables use of the middle mouse button.
2019-03-05 14:01:03 +01:00