Conrad Pankoff
a189285658
Kernel: Support reading/writing PATADiskDevices directly via /dev/hdX
2020-02-09 12:58:45 +01:00
asliturk
57edcb54c2
MenuApplets: Add UserName applet.
...
Move code from WindowServer.WSMenuManager to the applet.
2020-02-09 10:37:35 +01:00
Andreas Kling
deb154be61
Kernel: Send SIGPIPE to the current thread on write to a broken pipe
2020-02-08 19:12:06 +01:00
Andreas Kling
70c9a89707
IPv4: Put some TCP close handshake debug spam behind TCP_SOCKET_DEBUG
2020-02-08 16:04:58 +01:00
Andreas Kling
3891e6d739
IPv4: Sockets should say can_read() after reading is shut down
...
This allows clients to get their EOF after shutting down reading.
2020-02-08 16:04:31 +01:00
Andreas Kling
228a1e9099
IPv4: Basic implementation of TCP socket shutdown
...
We can now participate in the TCP connection closing handshake. :^)
This implementation is definitely not complete and needs to handle a
bunch of other cases. But it's a huge improvement over not being able
to close connections at all.
Note that we hold on to pending-close sockets indefinitely, until they
are moved into the Closed state. This should also have a timeout but
that's still a FIXME. :^)
Fixes #428 .
2020-02-08 16:04:27 +01:00
Andreas Kling
1037a1d2ba
IPv4: Don't ACK empty TCP packets
...
Wireshark was complaining about duplicate ACK's and this was why.
2020-02-08 14:09:02 +01:00
Andreas Kling
48f13f2a81
IPv4: Split IPv4Socket::recvfrom() into packet/byte buffered functions
...
This code was really hard to follow since it handles two separate modes
of buffering the data.
2020-02-08 13:09:37 +01:00
Andreas Kling
00d8ec3ead
Kernel: The inode fault handler should grab the VMObject lock earlier
...
It doesn't look healthy to create raw references into an array before
a temporary unlock. In fact, that temporary unlock looks generally
unhealthy, but it's a different problem.
2020-02-08 12:55:21 +01:00
Andreas Kling
a9d7902bb7
x86: Simplify region unmapping a bit
...
Add PageTableEntry::clear() to zero out a whole PTE, and use that for
unmapping instead of clearing individual fields.
2020-02-08 12:49:38 +01:00
Andreas Kling
7291370478
Kernel: Make File::truncate() take a u64
...
No point in taking a signed type here. We validate at the syscall layer
and then pass around a u64 from then on.
2020-02-08 12:07:04 +01:00
Andreas Kling
42d41fdf94
Kernel: Simplify FS::create_inode() a little bit
...
Return a KResultOr<NonnullRefPtr<Inode>> instead of returning errors in
an out-parameter.
2020-02-08 11:58:28 +01:00
Andreas Kling
2f82d4fb31
Kernel: Add KResultOr<T>::result()
...
This is just a handy way to get either an error or a KSuccess, even if
there is a T present.
2020-02-08 11:57:53 +01:00
Andreas Kling
f91b3aab47
Kernel: Cloned shared regions should also be marked as shared
2020-02-08 02:39:46 +01:00
Andreas Kling
8731682d0e
Kernel: Simplify FS::create_directory() a little bit
...
None of the clients of this function actually used the returned Inode,
so it can simply return a KResult instead.
2020-02-08 02:34:22 +01:00
Andreas Kling
cb97ef5589
Ext2FS: Fail with EMFILE if we would overflow i_links_count
2020-02-08 02:26:33 +01:00
Andreas Kling
88ea152b24
Kernel: Merge unnecessary DiskDevice class into BlockDevice
2020-02-08 02:20:03 +01:00
Andreas Kling
6be880bd10
IPv4: Send TCP packets right away instead of waiting to "retry"
...
Also be more explicit about zero-initializing OutgoingPacket objects.
2020-02-08 01:45:45 +01:00
Andreas Kling
0c12d9a618
IPv4: Drop incoming packets on sockets that are shut down for reading
2020-02-08 00:58:11 +01:00
Andreas Kling
2b0b7cc5a4
Net: Add a basic sys$shutdown() implementation
...
Calling shutdown prevents further reads and/or writes on a socket.
We should do a few more things based on the type of socket, but this
initial implementation just puts the basic mechanism in place.
Work towards #428 .
2020-02-08 00:54:43 +01:00
Andreas Kling
a3f39fe789
Net: Make NetworkAdapter reference-counted
...
The idea behind WeakPtr<NetworkAdapter> was to support hot-pluggable
network adapters, but on closer thought, that's super impractical so
let's not go down that road.
2020-02-08 00:19:46 +01:00
Andreas Kling
f3a5985bb2
Kernel: Remove two bad FIXME's
...
We should absolutely *not* create a new thread in sys$exec().
There's also no sys$spawn() anymore.
2020-02-08 00:06:15 +01:00
Andreas Kling
71ca7ba31f
Kernel: Fix three broken format strings in Socket::{get,set}sockopt()
...
These had more %'s than actual arguments, oops!
2020-02-07 23:49:15 +01:00
Andreas Kling
d04fcccc90
Kernel: Truncate addresses stored by getsockname() and getpeername()
...
If there's not enough space in the output buffer for the whole sockaddr
we now simply truncate the address instead of returning EINVAL.
This patch also makes getpeername() actually return the peer address
rather than the local address.. :^)
2020-02-07 23:43:32 +01:00
Andreas Kling
083b81a566
Kernel: Allow PS2MouseDevice to read multiple packets
...
We were overwriting the start of the output buffer over and over when
reading multiple mouse packets.
2020-02-07 11:25:12 +01:00
Andreas Kling
dc18859695
Kernel: memset() all siginfo_t structs after creating them
2020-02-06 14:12:20 +01:00
Sergey Bugaev
1b866bbf42
Kernel: Fix sys$waitid(P_ALL, WNOHANG) return value
...
According to POSIX, waitid() should fill si_signo and si_pid members
with zeroes if there are no children that have already changed their
state by the time of the call. Let's just fill the whole structure
with zeroes to avoid leaking kernel memory.
2020-02-06 16:06:30 +03:00
Liav A
0bce5f7403
Kernel Commandline: Change nopci_mmio to be pci_mmio
...
Instead of having nopci_mmio, the boot argument now is
pci_mmio='on|off'.
2020-02-05 23:01:41 +01:00
Liav A
8a41256497
Kernel Commandline: Change no_vmmouse boot argument to be vmmouse
...
Instead of having no_vmmouse, the boot argument now is vmmouse='on|off'.
2020-02-05 23:01:41 +01:00
Liav A
b5857ceaad
Kernel Commandline: Remove noacpi & noacpi_aml boot arguments
...
Instead of having boot arguments like noacpi & noacpi_aml, we have one
boot argument - acpi='on|off|limited'.
2020-02-05 23:01:41 +01:00
Andreas Kling
75cb125e56
Kernel: Put sys$waitid() debug logging behind PROCESS_DEBUG
2020-02-05 19:14:56 +01:00
Liav A
f6ce24eb48
Kernel: Move the VMWare helpers out of the IO namespace
2020-02-05 18:58:27 +01:00
Liav A
8e8f5c212b
Kernel: Fix vmmouse detection method
...
Also, add debug messages in the VMWareBackdoor class.
2020-02-05 18:58:27 +01:00
Liav A
6070fe581b
Kernel: Add support for high bandwidth IO communication with VMWare
2020-02-05 18:58:27 +01:00
Sergey Bugaev
b3a24d732d
Kernel+LibC: Add sys$waitid(), and make sys$waitpid() wrap it
...
sys$waitid() takes an explicit description of whether it's waiting for a single
process with the given PID, all of the children, a group, etc., and returns its
info as a siginfo_t.
It also doesn't automatically imply WEXITED, which clears up the confusion in
the kernel.
2020-02-05 18:14:37 +01:00
Sergey Bugaev
a6cb7f759e
Kernel+LibC: Add some Unix signal types & definitions
2020-02-05 18:14:37 +01:00
Liav A
47978a5828
Kernel: Add support for vmmouse
...
We add this feature together with the VMWareBackdoor class.
VMWareBackdoor class is responsible for enabling the vmmouse, and then
controlling it from the PS2 mouse IRQ handler.
2020-02-04 19:11:52 +01:00
Sergey Bugaev
0334656e45
Kernel: Stub absolute mouse positioning support
...
This is not the real kernel patch, @supercomputer7 is doing that :^)
2020-02-04 19:11:52 +01:00
Peter Wang
3969fcc72e
build-root-filesystem.sh: Set umask to 0022
...
On my system (Void Linux) the root user has a default umask of 0077,
causing files and directories in the disk image to have zero group and
world permissions.
2020-02-03 19:52:02 +01:00
Andreas Kling
3879e5b9d4
Kernel: Start working on a syscall for logging performance events
...
This patch introduces sys$perf_event() with two event types:
- PERF_EVENT_MALLOC
- PERF_EVENT_FREE
After the first call to sys$perf_event(), a process will begin keeping
these events in a buffer. When the process dies, that buffer will be
written out to "perfcore" in the current directory unless that filename
is already taken.
This is probably not the best way to do this, but it's a start and will
make it possible to start doing memory allocation profiling. :^)
2020-02-02 20:26:27 +01:00
Andreas Kling
25b635c841
Kernel: Remove unnecessary forward declaration in SlabAllocator
2020-02-02 20:25:41 +01:00
Andreas Kling
ea8d386146
Kernel: Update Thread::raw_backtrace() signature to use uintptr_t
2020-02-02 19:00:38 +01:00
Liav A
583e9ad372
Kernel: Detect devices when enumerating the PCI bus
...
Instead of making each driver to enumerate the PCI bus itself,
PCI::Initializer will call detect_devices() to do one enumeration
of the bus.
2020-02-02 00:57:13 +01:00
Liav A
60715695b2
Partition Table: Change Script files
...
From now we can use build-image-grub.sh to generate a virtual disk
with the supported partition schemes - MBR, GPT & EBR (MBR +
Extended partitions).
2020-02-02 00:20:41 +01:00
Liav A
81544dc5b4
Partition Table: Add support for Extended partitions
...
Now also MBR configurations with extended partitions are supported.
2020-02-02 00:20:41 +01:00
Liav A
8cde707931
Partition Table: Replace __attribute__((packed)) with [[gnu::packed]]
2020-02-02 00:20:41 +01:00
Liav A
5d760bf172
Partition Table: Allow to boot with a partition number higher than 4
...
This is true currently only to GUID partitions,
Booting with an MBR partition is still limited to partition numbers 1-4.
2020-02-01 17:32:25 +01:00
Liav A
a3113721d4
Partition Table: Replace __attribute__((packed)) with [[gnu::packed]]
2020-02-01 17:32:25 +01:00
Andreas Kling
625f6c0d86
Kernel: Add -fbuiltin to Kernel CXXFLAGS
...
This allows the compiler to assume some helpful things, like strlen()
not modifying global memory and thus being a safe inlinable thing.
2020-02-01 13:52:52 +01:00
Andreas Kling
37d336d741
Kernel: Add memory scrubbing in slab_alloc() and slab_dealloc()
...
These now scrub allocated and freed memory like kmalloc()/kfree() was
already doing.
2020-02-01 10:56:17 +01:00