Commit graph

45100 commits

Author SHA1 Message Date
Timon Kruiper
a6f78b895f Kernel/aarch64: Stub Processor::clean_fpu_state() instead of crashing
Also print a message to the debug output, such that developers know that
the current implementation is not actually correct.
2022-12-29 19:32:20 -07:00
Timon Kruiper
a3cbaa3449 Kernel: Move ThreadRegisters into arch-specific directory
These are architecture-specific anyway, so they belong in the Arch
directory. This commit also adds ThreadRegisters::set_initial_state to
factor out the logic in Thread.cpp.
2022-12-29 19:32:20 -07:00
Timon Kruiper
0d2dffb95b Kernel: Put x86_64 specific VERIFY in PageDirectory.cpp behind ifdef
This makes it possible to run this code on aarch64.
2022-12-29 19:32:20 -07:00
Timon Kruiper
5a5fa10046 Kernel/aarch64: Add FIXME debug messages to PageDirectory
These are added to make clear that the current memory situation in the
aarch64 kernel is not complete yet.
2022-12-29 19:32:20 -07:00
Timon Kruiper
21deb603de Kernel/aarch64: Implement stub for asm_signal_trampoline
This get us further into the boot process, since Process::initialize
does not crash anymore.
2022-12-29 19:32:20 -07:00
Timon Kruiper
1cc06b9985 Kernel/aarch64: Correctly implement Processor::is_initialized() 2022-12-29 19:32:20 -07:00
Timon Kruiper
27b384e073 Kernel/aarch64: Remove copy constructor from Processor
I can't think of a reason why copying the Processor class makes sense,
so lets make sure it's not possible to do it by accident by declaring
the copy constructor as deleted.
2022-12-29 19:32:20 -07:00
Timon Kruiper
fbfe669f6d Kernel/aarch64: Implement Processor::{clear,restore}_critical() 2022-12-29 19:32:20 -07:00
Timon Kruiper
993b7495ba Kernel/aarch64: Implement Processor::check_invoke_scheduler() 2022-12-29 19:32:20 -07:00
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