Commit graph

44941 commits

Author SHA1 Message Date
Timon Kruiper f6f43fd65e Kernel: Add Processor::wait_for_interrupt and use it in Scheduler
This removes the x86 specific hlt instruction from the scheduler, and
allows us to run the scheduler code for aarch64 by implementing
Processor::wait_for_interrupt for aarch64.
2022-12-29 19:32:20 -07:00
Timon Kruiper f232133f65 Kernel/aarch64: Implement Processor::{enter,exit}_trap
And use them in interrupt handling.
2022-12-29 19:32:20 -07:00
Timon Kruiper ee883b839c Kernel/aarch64: Implement dbgput{str,char} in kprintf.cpp
Also changes the implementation of kernelearlyputstr to call
kernelputstr, to deduplicate some logic.
2022-12-29 19:32:20 -07:00
Timon Kruiper b991cff60f Kernel/aarch64: Add function to convert DFSC to StringView
This is useful for debugging, when hitting a data abort.
2022-12-29 19:32:20 -07:00
Timon Kruiper 5b06925b8a Kernel: Remove debug printing of code segment
This allows us to use the same code for aarch64.
2022-12-29 19:32:20 -07:00
Timon Kruiper ac788a2c8e Kernel: Remove duplicate Processor::restore_in_critical
There is already Processor::restore_critical, which does exactly the
same thing.
2022-12-29 19:32:20 -07:00
Timon Kruiper b18a7297c5 Kernel: Move ScopedCritical.cpp to Kernel base directory
This file does not contain any architecture specific implementations,
so we can move it to the Kernel base directory. Also update the relevant
include paths.
2022-12-29 19:32:20 -07:00
Timon Kruiper 496a3cdcd3 Kernel/aarch64: Fix typo in RegisterState.h
We are actually storing tpidr_el0, as can be seen in vector_table.S, but
the RegisterState.h incorrectly had tpidr_el1. This will probably save
some annoying debugging later on.
2022-12-29 19:32:20 -07:00
Xexxa ec53d86534 Base: Add more emoji
🕵️ - U+1F575 DETECTIVE
🫂 - U+1FAC2 PEOPLE HUGGING
🦝 - U+1F99D RACCOON
🧄 - U+1F9C4 GARLIC
 - U+26F2 FOUNTAIN
👢 - U+1F462 WOMAN’S BOOT
🖲️ - U+1F5B2 TRACKBALL
📚 - U+1F4DA BOOKS
📇 - U+1F4C7 CARD INDEX
🗃️ - U+1F5C3 CARD FILE BOX
🧹 - U+1F9F9 BROOM
🚸 - U+1F6B8 CHILDREN CROSSING
👩‍❤️‍👩 - U+1F469 U+200D U+2764 U+200D U+1F469
COUPLE WITH HEART: WOMAN, WOMAN
2022-12-29 16:17:53 -05:00
Karol Kosek 780d46c424 Presenter: Accept file drops 2022-12-29 10:22:49 -05:00
Sam Atkins feb0eb9309 AK: Fix constructing ErrorOr from ErrorOr of a related type
Mark other ErrorOr types as friends, and fix a typo in the &&
constructor, so that we can create an ErrorOr<Core::Object> from an
ErrorOr<GUI::Widget>. Also, add some requires() clauses to these
constructors so the error messages are clearer.
2022-12-28 22:34:00 -05:00
Jelle Raaijmakers 7b0adee487 LibGfx+Overall: Remove is_null from Point, Rect and Size
Having a `Point`, `Rect` or `Size` claim it's `null` is silly. We have
`Optional<T>` for that. For `Point`, rename `is_null` to `is_zero` to
better reflect what we're testing. For `Rect` and `Size`, `is_null` is
removed outright.

Also, remove `is_empty` from `Point`. Points can't be empty.
2022-12-28 22:32:21 -05:00
Jelle Raaijmakers d5630bd20e NotificationServer: Use Optional for last rect in NotificationWindow
We were calling `Gfx::Rect<T>::is_null` which checked if the width and
height were 0. What we want to do instead, is check if the rect value
was set at all. `Optional<Rect>` is the right way to do this.
2022-12-28 22:32:21 -05:00
Jelle Raaijmakers d83f1eaeb2 LibWeb: Use Optional for previous SVG path control point
Previously, a control point at `(0, 0)` would have been considered
absent. USe `Optional<Gfx::FloatPoint>` instead.
2022-12-28 22:32:21 -05:00
Nico Weber c051532c82 AK: Add tests for LittleEndian<enum class>
This should've been in 57126a0d3c.
2022-12-28 22:27:19 -05:00
Timothy Flynn 0a7d0362ea CI: Remove extraneous toolchain job from Azure CI
This was useful when building both i686 and x86_64 SerenityOS targets as
we could use a single toolchain build for both targets. But now all this
extra job does is create the opportunity for the toolchain to need to be
built twice (i.e. if the pipelines are backed up and the toolchain cache
is busted between these jobs while the x86_64 step is waiting for a VM).
2022-12-28 15:26:12 -05:00
Arda Cinar 598fcfca26 LibWeb: Make the atob JS function compliant with the spec
It is specified to use the "forgiving-base64" decoder instead of the
regular base64 decoder, which is slightly different
2022-12-28 21:15:02 +01:00
Arda Cinar bbaf86fb46 AK: Add a forgiving_base64_decode helper
According to the specification at
https://infra.spec.whatwg.org/#forgiving-base64
2022-12-28 21:15:02 +01:00
Nico Weber 50c6d133a9 LibGfx: Remove now-unneeded casts 2022-12-28 20:13:12 +00:00
Nico Weber 57126a0d3c AK: Make BigEndian<> and LittleEndian<> work with enum classes 2022-12-28 20:13:12 +00:00
HawDevelopment a21703f1df Demos: Add ability to use scroll wheel in starfield
This change adds the ability to use the scroll wheel to change
the speed in starfield.
2022-12-28 14:49:05 -05:00
Kyle Lanmon e8e1d1905e strace: Propagate errors 2022-12-28 14:45:19 -05:00
Tom bb062e50b0 LibWeb: Don't expand grid for {row,column} spans
Fixes a bug where when you had spans that that were bigger than the
grid, would create enough tracks to accomodate them. When a fixed
position is given, there should be at a minimum a row/column available
for the track. The span will be truncated if there is no space for it
later.
2022-12-28 15:04:58 +01:00
Tom 6e29f693f5 LibWeb: Refactor GridFormattingContext
For legibility, split up the run() function of the GridFormattingContext
into individual components.
2022-12-28 15:04:58 +01:00
Tom 0bbf7a1b54 LibWeb: Refactor should_skip_anonymous_text_runs
This same function was being copied in the {Flex,Grid}FormattingContext,
so unify them in the parent FormattingContext.
2022-12-28 15:04:58 +01:00
Andreas Kling 97dde51a9b Kernel: Add missing x86_64 files to CMakeLists.txt 2022-12-28 11:53:41 +01:00
Andreas Kling fb09661420 Kernel: Add missing Random.h include in x86_64/Processor.cpp 2022-12-28 11:53:41 +01:00
Andreas Kling 7b9ea3efde Kernel+Userland: Remove uses of the __i386__ compiler macro 2022-12-28 11:53:41 +01:00
Andreas Kling 36980d2a66 Meta: Remove i686 references in YCM configuration 2022-12-28 11:53:41 +01:00
Andreas Kling c0e3bdd51b AK: Remove ARCH(I386) macro 2022-12-28 11:53:41 +01:00
Andreas Kling 79b623b52e LibC: Remove use of ARCH(I386) in sys/arch/aarch64/regs.h 2022-12-28 11:53:41 +01:00
Andreas Kling d6fa42dd5c Kernel: Remove the two remaining ARCH(I386) checks 2022-12-28 11:53:41 +01:00
Liav A fb0dee5a54 Meta: Force compilation with DWARF revision 4
We currently don't support DWARF revision 5 and LLVM/Clang might create
such debug info into our binaries in x86_64, which will lead to a crash
in CrashReporter that is unable to parse that information correctly.
2022-12-28 11:53:41 +01:00
Liav A 8c9128f36d Documentation: Remove i686 support 2022-12-28 11:53:41 +01:00
Liav A feeb25bcee AK: Remove i686 support 2022-12-28 11:53:41 +01:00
Liav A 91db482ad3 Kernel: Reorganize Arch/x86 directory to Arch/x86_64 after i686 removal
No functional change.
2022-12-28 11:53:41 +01:00
Liav A 5ff318cf3a Kernel: Remove i686 support 2022-12-28 11:53:41 +01:00
Liav A 32270dcd20 Tests: Remove i686 support 2022-12-28 11:53:41 +01:00
Liav A b49c4eb94f Ports: Remove i686 support 2022-12-28 11:53:41 +01:00
Liav A e11dcd21c1 Applications: Remove i686 support 2022-12-28 11:53:41 +01:00
Liav A c191daa337 DevTools: Remove i686 support 2022-12-28 11:53:41 +01:00
Liav A cae736b5fa HackStudio: Remove i686 support 2022-12-28 11:53:41 +01:00
Liav A e1ee8f89f2 LibX86: Remove i686 support 2022-12-28 11:53:41 +01:00
Liav A eca57006f6 LibCoredump: Remove i686 support 2022-12-28 11:53:41 +01:00
Liav A 1d26b46884 LibDebug: Remove i686 support 2022-12-28 11:53:41 +01:00
Liav A a4c87fac56 LibELF+LibSymbolication: Remove i686 support 2022-12-28 11:53:41 +01:00
Liav A 2f7443c900 DynamicLoader: Remove i686 support 2022-12-28 11:53:41 +01:00
Liav A 92da98822a LibC: Remove i686 support 2022-12-28 11:53:41 +01:00
Liav A 85b453c2e4 Kernel+Userland: Remove dependency on i386-specific registers 2022-12-28 11:53:41 +01:00
Liav A 445b5e1e94 Userland: Remove i686 support 2022-12-28 11:53:41 +01:00