Commit graph

31683 commits

Author SHA1 Message Date
Liav A
105d558922 Meta: Remove kernel modules remains
Apparently Andreas found remains for that in the build system.
Let's remove them for completeness of that process of removing support
for kernel modules, which didn't work for many months before being
removed.
2021-12-25 18:42:41 +02:00
Ali Mohammad Pur
986d63466e AK: Remove Variant<Ts...>::operator Variant<NewTs...>()
This is an interface to downcast(), which degrades errors into runtime
errors, and allows seemingly-correct-but-not-quite constructs like the
following to appear to compile, but fail at runtime:

    Variant<NonnullRefPtr<T>, U> foo = ...;
    Variant<RefPtr<T>, U> bar = foo;

The expectation here is that `foo` is converted to a RefPtr<T> if it
contains one, and remains a U otherwise, but in reality, the
NonnullRefPtr<T> variant is simply dropped on the floor, and the
resulting variant becomes invalid, failing the assertion in downcast().

This commit adds a Variant<Ts...>(Variant<NewTs...>) constructor that
ensures that no alternative can be left out at compiletime, for the
users that were using this interface for merely increasing the number of
alternatives (for instance, LibSQL's Value class).
2021-12-25 18:24:43 +03:30
Andreas Kling
7d7950b322 LibVT: Don't leave 50ms auto-scroll timer running at all times
This timer was causing wake-ups every 50ms in all terminals, just to
right back to sleep unless we were in the middle of an auto-scroll.
2021-12-25 14:20:13 +01:00
Andreas Kling
d0df249666 LibCore: Add Core::Timer::set_active(bool)
This calls either start() or stop() depending on the boolean argument.
2021-12-25 14:20:13 +01:00
Andreas Kling
ae07660587 LibC: Buffer randomness to avoid syscall in every arc4random_buf()
Keep a page-sized buffer of random bytes cached and work through it
before calling the kernel again.
2021-12-25 14:20:13 +01:00
Andreas Kling
9965e59ad8 Kernel: Remove unnecessary SocketHandle<T> class
This was used to return a pre-locked UDPSocket in one place, but there
was really no need for that mechanism in the first place since the
caller ends up locking the socket anyway.
2021-12-25 11:23:57 +01:00
Andreas Kling
e923cf6624 strace: Port to LibMain :^) 2021-12-25 11:12:03 +01:00
Andreas Kling
2bd1a62ce1 LibCore: Add syscall wrapper for ptrace() 2021-12-25 11:05:30 +01:00
Andreas Kling
e815bf5d1f PDFViewer: Add a basic set of pledges 2021-12-25 10:58:30 +01:00
Andreas Kling
50e090071c WindowServer: Skip over destroyed windows in WindowSwitcher::draw()
I encountered a WindowServer crash due to null-pointer dereference in
this function, so let's protect against it by simply skipping over
nulled-out WeakPtrs.

I added a FIXME about how we ideally wouldn't be in this situation in
the first place, but that will require some more investigation.
2021-12-25 10:41:06 +01:00
Lady Gegga
68061f999a Base: Add Unified Canadian Aboriginal Syllabics to Katica Regular 10
1400-1488 https://www.unicode.org/charts/PDF/U1400.pdf
2021-12-24 19:54:20 -08:00
Lady Gegga
4570c98592 Base: Add Common Indic Number Forms to font Katica Regular 10
A830-A839 https://www.unicode.org/charts/PDF/UA830.pdf
2021-12-24 19:54:20 -08:00
Daniel Bertalan
a2aae6a582 LibCrypto: Remove redundant __builtin_memset() call
This call caused GCC 12's static analyzer to think that we perform an
out-of-bounds write to the v_key Vector. This is obviously incorrect,
and comes from the fact that GCC doesn't properly track whether we use
the inline storage, or the Vector is allocated on the heap.

While searching for a workaround, Sam pointed out that this call is
redundant as `Vector::resize()` already zeroes out the elements, so we
can completely remove it.

Co-authored-by: Sam Atkins <atkinssj@serenityos.org>
2021-12-24 14:35:33 -08:00
Daniel Bertalan
2b1864c53a AK: Add missing Array.h include to CheckedFormatString.h
GCC 12 complains that iota_array is used before it's declared. GCC 11
works fine without it though.
2021-12-24 14:35:33 -08:00
Brian Gianforcaro
d6f1d11aa0 pro: Convert to serenity_main(..) 2021-12-24 14:29:52 -08:00
Brian Gianforcaro
74948950bb ini: Convert to serenity_main(..) 2021-12-24 14:29:52 -08:00
Brian Gianforcaro
831242f32a env: Convert to serenity_main(..) 2021-12-24 14:29:52 -08:00
Brian Gianforcaro
81c98502f3 pwd: Convert to serenity_main(..) 2021-12-24 14:29:52 -08:00
Brian Gianforcaro
a62669ebcf LibCore: Add Core::System::getcwd() wrapper 2021-12-24 14:29:52 -08:00
Brian Gianforcaro
1c950773fb Kernel: Make MemoryManager::protect_ksyms_after_init UNMAP_AFTER_INIT
The function to protect ksyms after initialization, is only used during
boot of the system, so it can be UNMAP_AFTER_INIT as well.

This requires we switch the order of the init sequence, so we now call
`MM.protect_ksyms_after_init()` before `MM.unmap_text_after_init()`.
2021-12-24 14:28:59 -08:00
Brian Gianforcaro
e88e4967d1 Kernel: Mark PTYMultiplexer init & parse_hex_digit as UNMAP_AFTER_INIT
Noticed these boot only functions are not currently UNMAP_AFTER_INIT.
Lets fix that :^)
2021-12-24 14:28:59 -08:00
Michel Hermier
4758dac218 AK: Make Disjoint*::is_empty() not call size
This is a raffinement of 49cbd4dcca.

Previously, the container was scanned to compute the size in the unhappy
path. Now, using `all_of` happy and unhappy path should be fast.
2021-12-24 05:55:34 -08:00
Michel Hermier
44a6d7968a Tests: Benchmark DisjointChunck::is_empty 2021-12-24 05:55:34 -08:00
Michel Hermier
3a177b9209 AK: Add DisjointChunkc::ensure_capacity 2021-12-24 05:55:34 -08:00
Nihal Jere
4574a58f6f Spider: Add animation when drawing cards 2021-12-24 05:49:52 -08:00
Daniel Bertalan
d70595c09e Ports/tr: Remove obsolete getopt.h patch 2021-12-24 17:02:40 +03:30
Daniel Bertalan
05ce5d82fe Ports/stress-ng: Remove obsolete patches
The following features are now available in the system, making these
patches unnecessary:
- isblank() function
- SIGSTKSZ constant
- MS_SYNC and MS_ASYNC msync() flags
- EDQUOT errno constant
2021-12-24 17:02:40 +03:30
Daniel Bertalan
1c054ac56e Ports/mrsh: Remove obsolete PIPE_BUF patch
We now have this macro in LibC.
2021-12-24 17:02:40 +03:30
Daniel Bertalan
7893ae4233 Ports/mandoc: Remove obsolete patches
Since the creation of the port, we gained support for nanosleep(),
WSTOPSIG(), and the getopt family of functions is now available in
unistd.h.
2021-12-24 17:02:40 +03:30
Daniel Bertalan
29960faf20 Ports/m4: Remove obsolete wint_t patch 2021-12-24 17:02:40 +03:30
Daniel Bertalan
de5937b45e Ports/m4: Fix build error
The addition of the siginfo() function to LibC caused this port to
enable its stack overflow detection feature which, however, depends on
more features that we don't have.
2021-12-24 17:02:40 +03:30
Daniel Bertalan
5b8098497e Ports/libxml2: Remove obsolete ESHUTDOWN errno patch 2021-12-24 17:02:40 +03:30
Daniel Bertalan
43c27e891b Ports/libuv: Remove obsolete statfs/pwrite patch 2021-12-24 17:02:40 +03:30
Daniel Bertalan
a28ad600f2 Ports/libicu: Remove obsolete <cmath> header patch
All issues with `cmath` have been resolved quite some time ago, and
ICU seems to build without issues.
2021-12-24 17:02:40 +03:30
Daniel Bertalan
f35b6ee3fc Ports/emu2: Remove obsolete scandir patch 2021-12-24 17:02:40 +03:30
Daniel Bertalan
ff4787ad2d Ports/chester: Enable -Werror
We no longer emit compiler warnings on deprecated/unsafe functions like
strcpy, so building more ports with -Werror is possible.
2021-12-24 17:02:40 +03:30
Daniel Bertalan
9418d4bf25 Ports/byacc: Remove obsolete getopt.h patch
We (correctly) declare getopt() and the related variables in unistd.h,
so this patch is unnecessary.
2021-12-24 17:02:40 +03:30
Daniel Bertalan
55a42906a7 Ports: Remove obsolete /dev/tty patches 2021-12-24 17:02:40 +03:30
Ali Mohammad Pur
39b5bb4162 Ports: Upgrade CMake to 3.22.1
That's the latest release, and includes one of the patches we had - so
we can drop that patch :^)
2021-12-24 17:01:10 +03:30
Daniel Bertalan
e539a1d077 Ports/cmake: Remove obsolete conflicting declaration patches
I'm not quite sure why, but CMake compiles fine without these.
2021-12-24 17:01:10 +03:30
Ali Mohammad Pur
f7b399da44 Ports: Fix the conflicting types issue in the cmake port
This patch is pending upstream, but until then, let's keep it locally to
make the port work :^)
2021-12-24 17:01:10 +03:30
Brian Gianforcaro
49749e279a LibC: Implement _setjmp and _longjmp
These are aliases to `setjmp()` and `longjmp()` on our system,
as our implementations don't modify the signal mask.

This is required for the syzkaller executor process.
2021-12-24 05:26:21 -08:00
Sam Atkins
eefe471dce SystemMonitor: Remove unused SortingProxyModel include 2021-12-24 05:11:52 -08:00
Sam Atkins
f6633a1026 LibGUI+Userland: Make SortingProxyModel::create() return ErrorOr
Unfortunately, most of the users are inside constructors, (and two
others are inside callback lambdas) so the error can't propagate, but
that can be improved later.
2021-12-24 05:11:52 -08:00
Stephan Unverwerth
c72a996542 LibSoftGPU: Add method to copy texels between images
Adds a method `copy_texels()` to class `Image` that copies a rect of
texels from source image to destination.
2021-12-24 05:10:28 -08:00
Stephan Unverwerth
5e9d99474d LibGL: Remove image storage from MipMap
Images are stored on the device side. Texture2D and MipMap are now only
used to store imformation about the texture and reference to the device
image.
2021-12-24 05:10:28 -08:00
Stephan Unverwerth
4c944eaa41 LibGL: Remove sampling code from Sampler2D
Texture sampling now happens entirely in SoftGPU thus this class will
now only be used to hold the sampler configuration.
2021-12-24 05:10:28 -08:00
Stephan Unverwerth
39995548e4 LibGL+LibSoftGPU: Add method to query device info
This adds a method `info()` to SoftGPU that returns the name of the
hardware vendor and device name, as well as the number of texture untis.

LibGL uses the returned texture unit count to initialize its internal
texture unit array.
2021-12-24 05:10:28 -08:00
Stephan Unverwerth
1a758d7bf2 LibSoftGPU: Move enums into separate file 2021-12-24 05:10:28 -08:00
Stephan Unverwerth
f7c40b25ac LibSoftGPU: Remove GLenum used for selecting rendered primitive type
This removes the last reference to LibGL from LibSoftGPU. The GLenum
has been replaced by our own enum.
2021-12-24 05:10:28 -08:00