marprok
3cbc2f4381
Ext2FS: Reset the found_a_group flag
2020-03-12 12:35:00 +01:00
Andreas Kling
3803196edb
Kernel: Get rid of SmapDisabler in sys$fstat()
2020-03-10 13:34:24 +01:00
Andreas Kling
fa9fba6901
Kernel: Add missing #includes now that <AK/StdLibExtras.h> is smaller
2020-03-08 13:06:51 +01:00
Liav A
f3f8b88d8f
Kernel: Fix syntax error in FIFO_DEBUG
2020-03-06 22:29:24 +01:00
Andreas Kling
c6693f9b3a
Kernel: Simplify a bunch of dbg() and klog() calls
...
LogStream can handle VirtualAddress and PhysicalAddress directly.
2020-03-06 15:00:44 +01:00
Andreas Kling
75a6b27f73
Ext2FS: Remove unused allocate_block()
...
We only use allocate_blocks() now. If you want a single block, you can
just call allocate_blocks() with a count of 1.
2020-03-06 11:22:23 +01:00
Liav A
7ef5d222f1
Kernel: Change data in /proc/interrupts to be more richer
...
Also, during interrupt handlers' enumeration, we call all interrupts
handlers that are not UnhandledInterruptHandler.
2020-03-06 11:19:51 +01:00
Andreas Kling
8bb361889c
AK: Remove Optional::operator bool()
...
This was causing some obvious-in-hindsight but hard to spot bugs where
we'd implicitly convert the bool to an integer type and carry on with
the number 1 instead of the actual value().
2020-03-06 10:32:58 +01:00
Liav A
f0ca29eb4b
Kernel: Run clang-format on various files
2020-03-02 22:23:39 +01:00
Liav A
0fc60e41dd
Kernel: Use klog() instead of kprintf()
...
Also, duplicate data in dbg() and klog() calls were removed.
In addition, leakage of virtual address to kernel log is prevented.
This is done by replacing kprintf() calls to dbg() calls with the
leaked data instead.
Also, other kprintf() calls were replaced with klog().
2020-03-02 22:23:39 +01:00
Andreas Kling
7cd1bdfd81
Kernel: Simplify some dbg() logging
...
We don't have to log the process name/PID/TID, dbg() automatically adds
that as a prefix to every line.
Also we don't have to do .characters() on Strings passed to dbg() :^)
2020-02-29 13:39:06 +01:00
Andreas Kling
5f7056d62c
Kernel: Expose the VMObject type of each Region in /proc/PID/vm
2020-02-28 23:25:40 +01:00
Andreas Kling
8fbdda5a2d
Kernel: Implement basic support for sys$mmap() with MAP_PRIVATE
...
You can now mmap a file as private and writable, and the changes you
make will only be visible to you.
This works because internally a MAP_PRIVATE region is backed by a
unique PrivateInodeVMObject instead of using the globally shared
SharedInodeVMObject like we always did before. :^)
Fixes #1045 .
2020-02-28 23:25:00 +01:00
Andreas Kling
aa1e209845
Kernel: Remove some unnecessary indirection in InodeFile::mmap()
...
InodeFile now directly calls Process::allocate_region_with_vmobject()
instead of taking an awkward detour via a special Region constructor.
2020-02-28 20:29:14 +01:00
Andreas Kling
07a26aece3
Kernel: Rename InodeVMObject => SharedInodeVMObject
2020-02-28 20:07:51 +01:00
Liav A
b0d40e9495
Ext2Filesystem: Use dbg() instead of dbgprintf()
2020-02-27 13:05:12 +01:00
Liav A
67994cd87e
ProcFS: Use dbg() instead of dbgprintf()
2020-02-27 13:05:12 +01:00
Liav A
03592a80fc
FIFO: Use dbg() instead of dbgprintf()
2020-02-27 13:05:12 +01:00
Andreas Kling
d5fe839166
Kernel: Remove unused artifacts of the Custody cache
...
We'll probably want some kind of Custody caching in the future, but as
it's not used at the moment, let's simplify things a bit.
2020-02-26 15:25:53 +01:00
Andreas Kling
7f9a86b495
ProcFS: Expose the physical page map of each region in /proc/PID/vm
...
You can now see the state of each underlying physical page slot in a
VM region.
2020-02-25 23:06:40 +01:00
Andreas Kling
ceec1a7d38
AK: Make Vector use size_t for its size and capacity
2020-02-25 14:52:35 +01:00
Liav A
fe664965c2
Kernel: Change get_sharing_devices_count() in GenericInterruptHandler
...
The new method' name is sharing_devices_count().
The Serenity Coding Style tends to not accept the word "get" in
methods' names if possible.
2020-02-24 11:27:03 +01:00
Liav A
80eea6cd8b
Kernel: Create an entry for viewing interrupts in ProcFS
2020-02-24 11:27:03 +01:00
Andreas Kling
0763f67043
AK: Make Bitmap use size_t for its size
...
Also rework its API's to return Optional<size_t> instead of int with -1
as the error value.
2020-02-24 09:56:07 +01:00
Andreas Kling
97e9deccf0
Ext2FS: Add Missing HashMap.h include
2020-02-22 16:37:51 +01:00
Andreas Kling
3e973bfe14
Kernel: Make FileDescription slab-allocated
2020-02-22 14:37:58 +01:00
Andreas Kling
6428669a37
Kernel: Make Custody slab-allocated
2020-02-22 14:33:51 +01:00
Andreas Kling
983b4bd9f2
Kernel+ProfileViewer: Move symbolication to userspace for time profiles
...
This makes the time profiles look like the memory profiles so we can
use the userspace symbolication code in ProfileViewer.
2020-02-22 10:09:54 +01:00
Andreas Kling
b6887bd9cd
Ext2FS: The max current block count of a file is size/block_size
...
Turns out that i_blocks does not take block list holes into account.
2020-02-21 19:07:23 +01:00
Andreas Kling
59c052a72a
Ext2FS: Allow holes in block lists
...
Linux creates holes in block lists for all-zero content. This is very
reasonable and we can now handle that situation as well.
Note that we're not smart enough to generate these holes ourselves yet,
but now we can at least read from such files.
2020-02-21 17:50:51 +01:00
Sergey Bugaev
1d2986ea15
Kernel: Fix a panic in VFS::rename()
...
If we get an -ENOENT when resolving the target because of some part, that is not
the very last part, missing, we should just return the error instead of panicking
later :^)
To test:
$ mkdir /tmp/foo/
$ mv /tmp/foo/ /tmp/bar/
Related to https://github.com/SerenityOS/serenity/issues/1253
2020-02-20 19:13:20 +01:00
Sergey Bugaev
3439498744
Kernel: Support trailing slashes in VFS::mkdir()
...
This is apparently a special case unlike any other, so let's handle it
directly in VFS::mkdir() instead of adding an alternative code path into
VFS::resolve_path().
Fixes https://github.com/SerenityOS/serenity/issues/1253
2020-02-20 19:13:20 +01:00
Andreas Kling
88b9fcb976
AK: Use size_t for ByteBuffer sizes
...
This matches what we already do for string types.
2020-02-20 13:20:34 +01:00
Andreas Kling
a7dbb3cf96
Kernel: Use a FixedArray for a process's extra GIDs
...
There's not really enough of these to justify using a HashTable.
2020-02-18 11:35:47 +01:00
Andreas Kling
48f7c28a5c
Kernel: Replace "current" with Thread::current and Process::current
...
Suggested by Sergey. The currently running Thread and Process are now
Thread::current and Process::current respectively. :^)
2020-02-17 15:04:27 +01:00
Andreas Kling
635ae70b8f
Kernel: More header dependency reduction work
2020-02-16 02:15:33 +01:00
Andreas Kling
16818322c5
Kernel: Reduce header dependencies of Process and Thread
2020-02-16 02:01:42 +01:00
Andreas Kling
e28809a996
Kernel: Add forward declaration header
2020-02-16 01:50:32 +01:00
Andreas Kling
a356e48150
Kernel: Move all code into the Kernel namespace
2020-02-16 01:27:42 +01:00
Andreas Kling
6cbd72f54f
AK: Remove bitrotted Traits::dump() mechanism
...
This was only used by HashTable::dump() which I used when doing the
first HashTable implementation. Removing this allows us to also remove
most includes of <AK/kstdio.h>.
2020-02-10 11:55:34 +01:00
Liav A
99ea80695e
Kernel: Use VirtualAddress & PhysicalAddress classes from LibBareMetal
2020-02-09 19:38:17 +01:00
Liav A
e559af2008
Kernel: Apply changes to use LibBareMetal definitions
2020-02-09 19:38:17 +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
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
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
c44b4d61f3
Kernel: Make Inode::lookup() return a RefPtr<Inode>
...
Previously this API would return an InodeIdentifier, which meant that
there was a race in path resolution where an inode could be unlinked
in between finding the InodeIdentifier for a path component, and
actually resolving that to an Inode object.
Attaching a test that would quickly trip an assertion before.
Test: Kernel/path-resolution-race.cpp
2020-02-01 10:56:17 +01:00
Andreas Kling
625ab1f527
Kernel: LocalSocket should fail with EADDRINUSE for already-bound files
2020-01-30 22:15:45 +01:00