Andreas Kling
4306422f29
Kernel: Mark sys$clock_settime() as not needing the big log
...
This syscall ends up disabling interrupts while changing the time,
and the clock is a global resource anyway, so preventing threads in the
same process from running wouldn't solve anything.
2022-04-04 00:42:18 +02:00
Andreas Kling
55814f6e0e
Kernel: Mark sys$sched_{set,get}param() as not needing the big lock
...
Both of these syscalls take the scheduler lock while accessing the
thread priority, so there's no reliance on the process big lock.
2022-04-04 00:42:18 +02:00
Andreas Kling
9250ac0c24
Kernel: Randomize non-specific VM allocations done by sys$execve()
...
Stuff like TLS regions, main thread stacks, etc. All deserve to be
randomized unless the ELF requires specific placement. :^)
2022-04-04 00:42:18 +02:00
Nico Weber
10b2b71a2c
LibGfx: Use binary search in glyph_id_for_code_point_table_4
...
No behavior change for valid ttf files (which have a trailing
0xffff endCodes entry, and a sorted endCodes array).
2022-04-03 23:28:43 +01:00
Timur Sultanov
33d19a562f
LibELF: Look up symbols in all global modules
...
dlsym() called with RTLD_DEFAULT (nullptr) should look up
symbol in all global modules instead of only looking into the
executable file
2022-04-03 23:25:39 +01:00
djwisdom
fbbea77fa4
Base: Add new glyphs to Lucidity font
...
Unified Canadian Aboriginal Syllabics Extended-A
11AB0-11ABF
https://www.unicode.org/charts/PDF/U11AB0.pdf
Mayan Numerals
1D2E0-1D2F3
https://www.unicode.org/charts/PDF/U1D2E0.pdf
Ancient Greek Musical Notation
1D200-1D245
https://www.unicode.org/charts/PDF/U1D200.pdf
2022-04-03 23:24:17 +01:00
djwisdom
c339604789
Base: Add new glyphs to Satori Regular font
...
Unified Canadian Aboriginal Syllabics Extended-A
11AB0-11ABF
https://www.unicode.org/charts/PDF/U11AB0.pdf
Mayan Numerals
1D2E0-1D2F3
https://www.unicode.org/charts/PDF/U1D2E0.pdf
Ancient Greek Musical Notation
1D200-1D245
https://www.unicode.org/charts/PDF/U1D200.pdf
2022-04-03 23:24:04 +01:00
djwisdom
0af71d7c22
Base: Add new glyphs to Satori Mono Regular font
...
Unified Canadian Aboriginal Syllabics Extended-A
11AB0-11ABF
https://www.unicode.org/charts/PDF/U11AB0.pdf
Mayan Numerals
1D2E0-1D2F3
https://www.unicode.org/charts/PDF/U1D2E0.pdf
Ancient Greek Musical Notation
1D200-1D245
https://www.unicode.org/charts/PDF/U1D200.pdf
2022-04-03 23:24:04 +01:00
djwisdom
3478b8de1b
Base: Add new glyphs to Satori Mono Bold font
...
Unified Canadian Aboriginal Syllabics Extended-A
11AB0-11ABF
https://www.unicode.org/charts/PDF/U11AB0.pdf
Mayan Numerals
1D2E0-1D2F3
https://www.unicode.org/charts/PDF/U1D2E0.pdf
Ancient Greek Musical Notation
1D200-1D245
https://www.unicode.org/charts/PDF/U1D200.pdf
2022-04-03 23:24:04 +01:00
djwisdom
55aa03b57b
Base: Add new glyphs to Satori Bold font
...
Unified Canadian Aboriginal Syllabics Extended-A
11AB0-11ABF
https://www.unicode.org/charts/PDF/U11AB0.pdf
Mayan Numerals
1D2E0-1D2F3
https://www.unicode.org/charts/PDF/U1D2E0.pdf
Ancient Greek Musical Notation
1D200-1D245
https://www.unicode.org/charts/PDF/U1D200.pdf
2022-04-03 23:24:04 +01:00
djwisdom
acd5abe936
Base: Add new glyphs to Ataraxia font
...
Unified Canadian Aboriginal Syllabics Extended-A
11AB0-11ABF
https://www.unicode.org/charts/PDF/U11AB0.pdf
Mayan Numerals
1D2E0-1D2F3
https://www.unicode.org/charts/PDF/U1D2E0.pdf
Ancient Greek Musical Notation
1D200-1D245
https://www.unicode.org/charts/PDF/U1D200.pdf
2022-04-03 23:23:50 +01:00
Brian Gianforcaro
8b750998d2
Kernel: Fix aarch64 kernel build on case sensitive file systems
...
The dummy file has the wrong case, so it would fail to be found on case
sensitive file systems.
2022-04-03 15:18:36 -07:00
Idan Horowitz
d6e4a25e0c
Kernel: Use the InstrusiveRedBlackTree::begin_from(V&) API
...
This let's us skip an O(logn) tree traversal.
2022-04-04 00:16:11 +02:00
Idan Horowitz
1787d94907
AK: Add begin_from(V&) APIs to IntrusiveRedBlackTree
...
This method exploits the fact that the values themselves hold the tree
pointers, and as a result this let's us skip the O(logn) traversal down
to the matching Node for a Key-Value pair.
2022-04-04 00:16:11 +02:00
Idan Horowitz
30e6b313b4
Kernel: Remove false condition in RegionTree::allocate_range_specific
...
Since find_largest_not_above returns the highest region that is below
the end of the request range, no region after it can intersect with it.
2022-04-04 00:16:11 +02:00
James Mintram
f943e97b76
Kernel: Add RegionTree and remove VirtualRangeAllocator from aarch64
2022-04-04 00:14:20 +02:00
Igor Pissolati
7ae116b81b
LibWeb: Bring BorderRadiusStyleValue::to_string() closer to spec
2022-04-04 00:03:15 +02:00
Andreas Kling
db75bab493
Kernel: Actually fix accidental overlaps in allocate_range_specific()
...
Thanks to Idan for spotting this! :^)
2022-04-03 23:58:57 +02:00
Humberto Alves
5506932788
Shell: Refresh PATH cache after running shellrc files
...
This fixes the highlight of runnable commands, whenever PATH variable
is changed in one of the shellrc files.
2022-04-03 23:28:01 +02:00
GeekFiftyFive
e292a038b7
ThemeEditor: Open files with ReadWrite
...
Open theme files with ReadWrite in order to fix issue when saving.
2022-04-03 23:27:23 +02:00
James Mintram
2b442ae44f
Kernel: Add kmalloc.cpp to aarch64
2022-04-03 23:21:04 +02:00
Linus Groh
b0f701d053
Kernel: Convert ProcessorInfo::build_brand_string() to StringBuilder
2022-04-03 23:20:33 +02:00
Linus Groh
4f35c206e4
lscpu: Show hypervisor_vendor_id if present
2022-04-03 23:20:33 +02:00
Linus Groh
33004f9b9d
Kernel: Add hypervisor_vendor_id entry to /proc/cpuinfo
2022-04-03 23:20:33 +02:00
Linus Groh
0f27432ec6
Kernel+SystemMonitor+lscpu: Rename 'CPUID' -> 'Vendor ID'
...
This is what the Intel manual, as well as Linux's cpuinfo calls it.
2022-04-03 23:20:33 +02:00
Linus Groh
3f9c2495e5
Kernel: Remove EBX, ECX, and EDX values from hypervisor dmesgln()
2022-04-03 23:20:33 +02:00
Linus Groh
8d96525b9d
Kernel: Move hypervisor vendor ID string to ProcessorInfo
...
This will make it possible to expose it in /proc/cpuinfo. :^)
2022-04-03 23:20:33 +02:00
Linus Groh
f6181cd47e
Kernel: Make ProcessorInfo::build_foo_string() private
2022-04-03 23:20:33 +02:00
Linus Groh
afce63fffc
Kernel: Move feature string building to ProcessorInfo
...
Other than a dmesgln(), ProcessorInfo is the only user of this function
and is already responsible for building other CPUID-related strings.
2022-04-03 23:20:33 +02:00
Linus Groh
53a95a5347
Kernel: Rename some ProcessorInfo members to match Intel manual
...
Let's use terminology from the the Intel manual to avoid confusion.
Also add `_string` suffixes to better distinguish the numeric values
from the string values.
2022-04-03 23:20:33 +02:00
Linus Groh
ebe2cf8995
Kernel: Move private ProcessorInfo members to the end
2022-04-03 23:20:33 +02:00
Simon Wanner
509362c103
LibWeb: Include all row-groups in column width calculations
...
This was noticeable for example on fonts.serenityos.net, where the
thead and tfoot would not get the same column widths as the tbody.
2022-04-03 23:12:13 +02:00
Simon Wanner
d28f3e0735
LibWeb: Handle failed browsing context creation in HTMLObjectElement
...
If the document is not attached to a browsing context we can't create
a new nested browsing context.
This can happen when the resource load for the <object> finishes after
the user navigated away from the current document, for example by
reloading ACID 3 while it's running.
2022-04-03 23:12:13 +02:00
Simon Wanner
450c0df938
LibWeb: Make resolved styles handle calculated length-percentages
...
This could lead to a crash when inspecting for example the <body>
on holidaycss.js.org, because it has `width: calc(100% - 1em)`
2022-04-03 23:12:13 +02:00
Simon Wanner
fe0f0b0acf
LibWeb: Add a null-check for page() in ESO::is_scripting_enabled()
...
This could lead to a crash when spamming reload on a page with a
<script> element.
2022-04-03 23:12:13 +02:00
Andreas Kling
9765f9f67e
Kernel: Fix accidental overlaps in RegionTree::allocate_range_specific()
...
Thanks to Idan for spotting this! :^)
2022-04-03 23:07:29 +02:00
Andreas Kling
36d829b97c
Kernel: Mark sys$listen() as not needing the big lock
...
This syscall already performs the necessary locking and so doesn't
need to rely on the process big lock.
2022-04-03 22:22:22 +02:00
Andreas Kling
e103c5fe2d
Kernel: Don't hog file descriptor table lock in sys$bind()
...
We don't need to hold the lock across the entire syscall. Once we've
fetched the open file description we're interested in, we can let go.
2022-04-03 22:20:34 +02:00
Andreas Kling
85ceab1fec
Kernel: Don't hog file descriptor table lock in sys$listen()
...
We don't need to hold the lock across the entire syscall. Once we've
fetched the open file description we're interested in, we can let go.
2022-04-03 22:18:57 +02:00
Andreas Kling
bc4282c773
Kernel: Mark sys$sendfd() and sys$recvfd() as not needing the big lock
...
These syscalls already perform the necessary locking and don't rely on
the process big lock.
2022-04-03 22:06:03 +02:00
Andreas Kling
92dfcdb6b1
Kenrel: Update a dmesgln() to say "RegionTree" instead of old class name
2022-04-03 22:00:19 +02:00
Andreas Kling
9e1da1f4f5
Kernel: Add a little explainer comment above RegionTree
2022-04-03 21:59:48 +02:00
Andreas Kling
8b01789ec4
Kernel: Improve RegionTree's internal helper function names
...
It's a bit nicer if functions that allocate ranges have some kind of
name that includes both "allocate" and "range". :^)
2022-04-03 21:56:16 +02:00
Andreas Kling
32dea6bde5
Kernel: Add missing include to PageDirectory.h
2022-04-03 21:51:58 +02:00
Andreas Kling
858b196c59
Kernel: Unbreak ASLR in the new RegionTree world
...
Functions that allocate and/or place a Region now take a parameter
that tells it whether to randomize unspecified addresses.
2022-04-03 21:51:58 +02:00
Andreas Kling
e89c9ed2ca
Kernel: Stop exposing RegionTree API for VM range allocation
...
...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-03 21:51:58 +02:00
Andreas Kling
07f3d09c55
Kernel: Make VM allocation atomic for userspace regions
...
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-03 21:51:58 +02:00
Andreas Kling
e852a69a06
LibWeb: Make VM allocation atomic for kernel regions
...
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-03 21:51:58 +02:00
Andreas Kling
cbf52d474c
Kernel: Remove now-unused VirtualRangeAllocator
...
This has been replaced with the allocation-free RegionTree. :^)
2022-04-03 21:51:58 +02:00
Andreas Kling
e8f543c390
Kernel: Use intrusive RegionTree solution for kernel regions as well
...
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-03 21:51:58 +02:00