summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-04-03Kernel: Mark sys$sendfd() and sys$recvfd() as not needing the big lockAndreas Kling
These syscalls already perform the necessary locking and don't rely on the process big lock.
2022-04-03Kenrel: Update a dmesgln() to say "RegionTree" instead of old class nameAndreas Kling
2022-04-03Kernel: Add a little explainer comment above RegionTreeAndreas Kling
2022-04-03Kernel: Improve RegionTree's internal helper function namesAndreas Kling
It's a bit nicer if functions that allocate ranges have some kind of name that includes both "allocate" and "range". :^)
2022-04-03Kernel: Add missing include to PageDirectory.hAndreas Kling
2022-04-03Kernel: Unbreak ASLR in the new RegionTree worldAndreas Kling
Functions that allocate and/or place a Region now take a parameter that tells it whether to randomize unspecified addresses.
2022-04-03Kernel: Stop exposing RegionTree API for VM range allocationAndreas Kling
...and remove the last remaining client of the API. It's no longer possible to ask the RegionTree for a VM range. You can only ask it to place your Region somewhere in available space.
2022-04-03Kernel: Make VM allocation atomic for userspace regionsAndreas Kling
This patch move AddressSpace (the per-process memory manager) to using the new atomic "place" APIs in RegionTree as well, just like we did for MemoryManager in the previous commit. This required updating quite a few places where VM allocation and actually committing a Region object to the AddressSpace were separated by other code. All you have to do now is call into AddressSpace once and it'll take care of everything for you.
2022-04-03LibWeb: Make VM allocation atomic for kernel regionsAndreas Kling
Instead of first allocating the VM range, and then inserting a region with that range into the MM region tree, we now do both things in a single atomic operation: - RegionTree::place_anywhere(Region&, size, alignment) - RegionTree::place_specifically(Region&, address, size) To reduce the number of things we do while locking the region tree, we also require callers to provide a constructed Region object.
2022-04-03Kernel: Remove now-unused VirtualRangeAllocatorAndreas Kling
This has been replaced with the allocation-free RegionTree. :^)
2022-04-03Kernel: Use intrusive RegionTree solution for kernel regions as wellAndreas Kling
This patch ports MemoryManager to RegionTree as well. The biggest difference between this and the userspace code is that kernel regions are owned by extant OwnPtr<Region> objects spread around the kernel, while userspace regions are owned by the AddressSpace itself. For kernelspace, there are a couple of situations where we need to make large VM reservations that never get backed by regular VMObjects (for example the kernel image reservation, or the big kmalloc range.) Since we can't make a VM reservation without a Region object anymore, this patch adds a way to create unbacked Region objects that can be used for this exact purpose. They have no internal VMObject.)
2022-04-03Kernel: Add Memory::RegionTree to share code between AddressSpace and MMAndreas Kling
RegionTree holds an IntrusiveRedBlackTree of Region objects and vends a set of APIs for allocating memory ranges. It's used by AddressSpace at the moment, and will be used by MM soon.
2022-04-03Kernel: Use AddressSpace region tree for range allocationAndreas Kling
This patch stops using VirtualRangeAllocator in AddressSpace and instead looks for holes in the region tree when allocating VM space. There are many benefits: - VirtualRangeAllocator is non-intrusive and would call kmalloc/kfree when used. This new solution is allocation-free. This was a source of unpleasant MM/kmalloc deadlocks. - We consolidate authority on what the address space looks like in a single place. Previously, we had both the range allocator *and* the region tree both being used to determine if an address was valid. Now there is only the region tree. - Deallocation of VM when splitting regions is no longer complicated, as we don't need to keep two separate trees in sync.
2022-04-03Tests: Make TestEFault not rely on automatic guard pagesAndreas Kling
I'm about to break automatic guard page allocation in sys$mmap(), so we need to fix this test to not rely on it.
2022-04-03Tests: Clear errno before syscalls in TestEFaultAndreas Kling
This makes the debug output a little more helpful.
2022-04-03Tests: Remove unused macro in TestEFaultAndreas Kling
2022-04-03Kernel: Store AddressSpace memory regions in an IntrusiveRedBlackTreeAndreas Kling
This means we never need to allocate when inserting/removing regions from the address space.
2022-04-03LibWeb: Don't break text lines if white-space: nowrapEnver Balalic
If white-space is nowrap then we don't want to break a text_node into multiple line boxes. This fixes the width calculation in the min-content case for white-space: nowrap elements. Before this the min-width would be the width of the biggest line box.
2022-04-03Tests: Add some test coverage for the TTF parserNico Weber
This is in Tests/LibTTF instead of Tests/LibGfx because Tests/LibGfx depends on serenity's file system layout and can't run in lagom, but this new test runs just fine in lagom.
2022-04-03Meta: Give Lagom build errors colored diagnosticsNico Weber
Non-lagom builds get this from the root CMakeLists.txt file, but lagom builds didn't before this change.
2022-04-03Ports: Add GNU core utilitiesTim Schumacher
2022-04-03Kernel: Implement `f_basetype` in statvfsTim Schumacher
2022-04-03AK: Add `StringView::copy_characters_to_buffer()`Tim Schumacher
2022-04-03LibC: Implement __fseterrTim Schumacher
2022-04-03LibC: Implement __freadptrincTim Schumacher
2022-04-03LibC: Implement __freadaheadTim Schumacher
2022-04-03LibC: Implement __freadptrTim Schumacher
2022-04-03Applets: Add a network graph appletkleines Filmröllchen
This resource graph applet shows incoming network traffic graphically, and the tooltip shows both TX and RX. The data of all adapters is combined. The scale of the applet auto-adapts to the shown traffic load. Co-authored-by: bgianfo <bgianf@serenityos.org>
2022-04-03AK: Add non-const iterator for CircularQueuekleines Filmröllchen
2022-04-03LibCompress: Change DeflateSpecialCodeLengths to constexpr variablesLenny Maiorani
2022-04-03LibChess: Change UCI::Command::Type to enum classLenny Maiorani
2022-04-03TextEditor: Update file argument parser regex patternAli Chraghi
2022-04-03LibJS: Remove a bunch of gratuitous JS namespace qualifiersLinus Groh
2022-04-03Userland: Remove a few gratuitous IPC namespace qualifiersValtteri Koskivuori
Spotted this while trying to search for specific IPC encode/decode implementations. Now they are all the same, so searching is easier.
2022-04-03Ports: Enable libx264 support in FFmpegHunter Kvalevog
2022-04-03Ports: Add x264Hunter Kvalevog
2022-04-03Meta: Move screenshots into subdirJelle Raaijmakers
It's a bit neater to give them their own directory instead of jamming them in between our shell scripts :^)
2022-04-03Browser+LibWeb+WebContent: Add ability to inspect local storageValtteri Koskivuori
The storage inspector now has a new tab for local storage. The next step would be to persist local storage and receive real-time notifications for changes to update the table view.
2022-04-03LibIPC: Add encoder and decoder for AK::OrderedHashMapValtteri Koskivuori
Seems like a useful thing to have.
2022-04-03Base: Update font Ataraxia with additional glyphsdjwisdom
Latin Extended-A 0132,0152,0153 https://www.unicode.org/charts/PDF/U0100.pdf LISU Supplement 11FB0 https://www.unicode.org/charts/PDF/U11FB0.pdf Egyptian Hieroglyph Format Controls 13430-13438 https://www.unicode.org/charts/PDF/U13430.pdf Ideographic Symbols and Punctuation 16FE0-16FE4,16FF0,16FF1 https://www.unicode.org/charts/PDF/U16FE0.pdf
2022-04-03Base: Update font Satori Regular with additional glyphsdjwisdom
Latin Extended-A 0132,0152,0153 https://www.unicode.org/charts/PDF/U0100.pdf LISU Supplement 11FB0 https://www.unicode.org/charts/PDF/U11FB0.pdf Egyptian Hieroglyph Format Controls 13430-13438 https://www.unicode.org/charts/PDF/U13430.pdf Ideographic Symbols and Punctuation 16FE0-16FE4,16FF0,16FF1 https://www.unicode.org/charts/PDF/U16FE0.pdf
2022-04-03Base: Update font Satori Mono Regular with additional glyphsdjwisdom
Latin Extended-A 0132,0152,0153 https://www.unicode.org/charts/PDF/U0100.pdf LISU Supplement 11FB0 https://www.unicode.org/charts/PDF/U11FB0.pdf Egyptian Hieroglyph Format Controls 13430-13438 https://www.unicode.org/charts/PDF/U13430.pdf Ideographic Symbols and Punctuation 16FE0-16FE4,16FF0,16FF1 https://www.unicode.org/charts/PDF/U16FE0.pdf
2022-04-03Base: Update font Satori Mono Bold with additional glyphsdjwisdom
Latin Extended-A 0132,0152,0153 https://www.unicode.org/charts/PDF/U0100.pdf LISU Supplement 11FB0 https://www.unicode.org/charts/PDF/U11FB0.pdf Egyptian Hieroglyph Format Controls 13430-13438 https://www.unicode.org/charts/PDF/U13430.pdf Ideographic Symbols and Punctuation 16FE0-16FE4,16FF0,16FF1 https://www.unicode.org/charts/PDF/U16FE0.pdf
2022-04-03Base: Update Satori Bold with additional glyphsdjwisdom
Latin Extended-A 0132,0152,0153 https://www.unicode.org/charts/PDF/U0100.pdf LISU Supplement 11FB0 https://www.unicode.org/charts/PDF/U11FB0.pdf Egyptian Hieroglyph Format Controls 13430-13438 https://www.unicode.org/charts/PDF/U13430.pdf Ideographic Symbols and Punctuation 16FE0-16FE4,16FF0,16FF1 https://www.unicode.org/charts/PDF/U16FE0.pdf
2022-04-03Meta: Check `port` property for ports in the linterJelle Raaijmakers
We now make sure the directory name and `port` property are identical.
2022-04-03Ports: Set `port` to match the port's directoryJelle Raaijmakers
We currently have no valid use case for having a `port` property different from the directory name the port's residing in. We do have issues when this is the case when referencing dependencies, so let's make sure all ports have a sensible `port` property to begin with.
2022-04-03Ports: Move luajit warning into `preconfigure`Jelle Raaijmakers
Otherwise this message will be printed during other `package.sh` actions such as `showproperty`.
2022-04-03Revert "Ports: Fix dependency install if port name is not folder name"Tim Schumacher
This breaks ports whose name may come up in more than one port name. This reverts commit cc08f82ddb104829112c7c5fe028f2e7dd9aaee1.
2022-04-03DisplaySettings+WindowServer: Allow updating theme without backgroundBen Maxwell
With this change you can now set the theme and background color at the same time in the Display Settings. Before if both were changed before hitting 'apply' the theme background color would overwrite the custom background.
2022-04-03DisplaySettings: Stop theme tab from overriding background colorBen Maxwell
Fixes #13448