Andreas Kling
12b612ab14
Kernel: Mark sys$adjtime() as not needing the big lock
...
This syscall works on global kernel state and so doesn't need protection
from threads in the same process.
2022-04-04 00:42:18 +02:00
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