summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-03-02Kernel: Use IOAddress class in PATAChannel classLiav A
This change make the code a bit more readable. Also, kprintf() calls are replaced with klog() calls.
2020-03-02Kernel: Use IOAddress class in Network adapters' driversLiav A
Also, kprintf() calls were replaced with klog() calls.
2020-03-02LibBareMetal: Add IOAddress classLiav A
2020-03-02AK: Add support for Kernel Log StreamLiav A
2020-03-02LibBareMetal: Add support for kernel log streamLiav A
2020-03-02Meta: Adjust some copyright dates by Fei WuAndreas Kling
2020-03-02AK: Add missing copyright headers to StringUtils.{cpp,h}Andreas Kling
2020-03-02AK: Move to_int(), to_uint() implementations to StringUtils (#1338)howar6hill
Provide wrappers in String and StringView. Add some tests for the implementations.
2020-03-02Kernel: MemoryManager should create cacheable regions by defaultAndreas Kling
2020-03-02Kernel: Remove ability to create kernel-only regions at user addressesAndreas Kling
This was only used by the mechanism for mapping executables into each process's own address space. Now that we remap executables on demand when needed for symbolication, this can go away.
2020-03-02Kernel: Map executables at a kernel address during ELF loadAndreas Kling
This is both simpler and more robust than mapping them in the process address space.
2020-03-02Kernel: Load executables on demand when symbolicatingAndreas Kling
Previously we would map the entire executable of a program in its own address space (but make it unavailable to userspace code.) This patch removes that and changes the symbolication code to remap the executable on demand (and into the kernel's own address space instead of the process address space.) This opens up a couple of further simplifications that will follow.
2020-03-02AK: Move the wildcard-matching implementation to StringUtilshowar6hill
Provide wrappers in the String and StringView classes, and add some tests.
2020-03-02AK: Add enqueue_begin() for the CircularDeque class (#1320)howar6hill
Also add tests for CircularDeque.
2020-03-02AK: Remove superfluous explicit in Bitmap (#1337)howar6hill
2020-03-02CI: Update .travis.yml (#1334)Nicolas Van Bossuyt
According to the Travis build config validation, the `sudo` key does nothing and `os` should be specified.
2020-03-02Kernel: Make the "entire executable" region sharedAndreas Kling
This makes Region::clone() do the right thing with it on fork().
2020-03-01Kernel: Mark read-only PT_LOAD mappings as shared regionsAndreas Kling
This makes Region::clone() do the right thing for these now that we differentiate based on Region::is_shared().
2020-03-01Kernel: Use SharedInodeVMObject for executables after allAndreas Kling
I had the wrong idea about this. Thanks to Sergey for pointing it out! Here's what he says (reproduced for posterity): > Private mappings protect the underlying file from the changes made by > you, not the other way around. To quote POSIX, "If MAP_PRIVATE is > specified, modifications to the mapped data by the calling process > shall be visible only to the calling process and shall not change the > underlying object. It is unspecified whether modifications to the > underlying object done after the MAP_PRIVATE mapping is established > are visible through the MAP_PRIVATE mapping." In practice that means > that the pages that were already paged in don't get updated when the > underlying file changes, and the pages that weren't paged in yet will > load the latest data at that moment. > The only thing MAP_FILE | MAP_PRIVATE is really useful for is mapping > a library and performing relocations; it's definitely useless (and > actively harmful for the system memory usage) if you only read from > the file. This effectively reverts e2697c2dddd531c0ac7cad3fd6ca78e81d0d86da.
2020-03-01Kernel: Run clang-format on Process.cppAndreas Kling
2020-03-01Kernel: Fix suspicious local shadowing in PerformanceEventBufferAndreas Kling
2020-03-01Kernel: Name perfcore files "perfcore.PID"Andreas Kling
This way we can trace many things and we get one perfcore file per process instead of everyone trying to write to "perfcore"
2020-03-01ps: Add some options and slim down the default output styleAndreas Kling
The following options are now available: -e: Show every process (not just the ones on your TTY) -f: Full format (instead of the short format) We should definitely support more options and formats, I just wanted to get away from the static single style of output. :^)
2020-03-01Shell: Remove bogus assertionAndreas Kling
2020-03-01Shell: Handle the "delete" key correctlyAndreas Kling
We were deleting the wrong character in the line buffer, oopsie!
2020-03-01Kernel: Reduce code duplication a little bit in Region allocationAndreas Kling
This patch reduces the number of code paths that lead to the allocation of a Region object. It's quite hard to follow the various ways in which this can happen, so this is an effort to simplify.
2020-03-01Kernel: Move ProcessPagingScope to its own filesAndreas Kling
2020-03-01Kernel: Restore the previous thread state on SIGCONT after SIGSTOPAndreas Kling
When stopping a thread with the SIGSTOP signal, we now store the thread state in Thread::m_stop_state. That state is then restored on SIGCONT. This fixes an issue where previously-blocked threads would unblock upon resume. Now they simply resume in the Blocked state, and it's up to the regular unblocking mechanism to unblock them. Fixes #1326.
2020-03-01WindowServer: Clear the current resize candidate when in menusAndreas Kling
While the menu system is swallowing mouse events, just clear any resize candidate we had set. This ensures that we don't end up with a resize cursor when slipping into a menu-controlled part of the screen. Fixes #1306.
2020-03-01WindowServer: Remove a whole bunch of unused WindowManager membersAndreas Kling
2020-03-01WindowServer: Put some WindowManager debug spam inside #ifdefsAndreas Kling
2020-03-01Kernel: Remove some unnecessary .characters() when doing dbg()<<StringAndreas Kling
2020-03-01AK: Remove unnecessary casts to size_t, after Vector changesAndreas Kling
Now that Vector uses size_t, we can remove a whole bunch of redundant casts to size_t.
2020-03-01Kernel: Remove some more harmless InodeVMObject miscastsAndreas Kling
2020-03-01Kernel: Include the dirty bits when cloning an InodeVMObjectAndreas Kling
Now that (private) InodeVMObjects can be CoW-cloned on fork(), we need to make sure we clone the dirty bits as well.
2020-03-01rm: Allow specifying multiple paths to removeAndreas Kling
2020-03-01Kernel: Fix harmless type miscast in Process::amount_clean_inode()Andreas Kling
2020-03-01Kernel: Use PrivateInodeVMObject for loading program executablesAndreas Kling
This will be a memory usage pessimization until we actually implement CoW sharing of the memory pages with SharedInodeVMObject. However, it's a huge architectural improvement, so let's take it and improve on this incrementally. fork() should still be neutral, since all private mappings are CoW'ed.
2020-03-01Kernel: Add some InodeVMObject type assertions in Region::clone()Andreas Kling
Let's make sure that we're never cloning shared inode-backed objects as if they were private, and vice versa.
2020-03-01Kernel: Remove some Region construction helpersAndreas Kling
It's now up to the caller to provide a VMObject when constructing a new Region object. This will make it easier to handle things going wrong, like allocation failures, etc.
2020-03-01Kernel: CoW-clone private inode-backed memory regions on fork()Andreas Kling
When forking a process, we now turn all of the private inode-backed mmap() regions into copy-on-write regions in both the parent and child. This patch also removes an assertion that becomes irrelevant.
2020-03-01Keymaps: Added keymap for norwegian keyboardsMathias Danielsen
2020-02-29Kernel: Disable interrupts throughout Thread::raw_backtrace()Andreas Kling
Otherwise we may hit an assertion when validating stack addresses.
2020-02-29ProfileViewer: Unbreak after Vector size_t changesAndreas Kling
Another backwards iteration accident.
2020-02-29About: Add mascot tooltipAndreas Kling
2020-02-29Terminal: Put PAGER=more in the default environmentAndreas Kling
This should be done at some other level (shell rc script for example), this is just to make "git" stop complaining that I don't have "less".
2020-02-29Kernel: Return bytes written if sys$write() fails after writing someAndreas Kling
If we wrote anything we should just inform userspace that we did, and not worry about the error code. Userspace can call us again if it wants, and we'll give them the error then.
2020-02-29LibMarkdown: Fix breakage from Vector using size_tAndreas Kling
It's no longer possible rely on negative VectorIterator when iterating backwards. It would be nice to have a general solution for reverse iteration, but for now let me just patch this up.
2020-02-29Welcome: Remove the default GUI::Frame look from TextWidgetAndreas Kling
2020-02-29About: Adopt Buggie :^)Andreas Kling
Simon Struthers drew a SerenityOS ladybug and since it's so cute, I figured we could adopt it!