Commit graph

31549 commits

Author SHA1 Message Date
kleines Filmröllchen
a06a5df297 Base: Add a stack of quotes I collected :^) 2021-12-22 17:33:32 +01:00
Timothy Flynn
9ce4ff4265 LibJS: Avoid crashing when the Unicode data generators are disabled
The general idea when ENABLE_UNICODE_DATABASE_DOWNLOAD is OFF has been
that the Intl APIs will provide obviously incorrect results, but should
not crash. This regressed a bit with NumberFormat and DateTimeFormat.
2021-12-22 17:30:43 +01:00
Tim Schumacher
48dc28996d Ports: Update Python patches for the recent signal changes
The old patch to define `HAVE_SIGSET_T` is no longer needed, as we now
have implementations for `sigwaitinfo` and `sigtimedwait`.

Instead, for the same reason, we now have to remove a reference to
`si_errno`, which we haven't implemented yet but is just assumed to be
there.
2021-12-22 11:28:20 +01:00
Linus Groh
c56e5139f5 LibJS: Fix modulo in get_iso_parts_from_epoch() for negative epoch ns
This now matches the spec change from reminder() to modulo which was
done here: bdf60f5
2021-12-22 11:27:31 +01:00
Linus Groh
61410e05eb LibJS: Add modulo(x, y) overload for Crypto::{Unsigned,Signed}BigInteger
Just like with integral and floating numbers, doing it manually is
error-prone: when we get a negative remainder, y has to be added to the
result to match the spec's modulo.
Solve this by just adding another (templated) overload to also permit
using the function for LibCrypto BigInts.
2021-12-22 11:27:31 +01:00
Linus Groh
0c424c4dab LibCrypto: Add the BigInteger concept
This makes it much easier to write (template) functions that accept
either a signed or unsigned bigint parameter.
2021-12-22 11:27:31 +01:00
Linus Groh
9c209b8079 LibJS: Support modulo(x, y) with different types
It's a bit annoying having to add '.0' to y given that it's an integral
number in most cases.
This turns the single template parameter T into T and U to permit that.
2021-12-22 11:27:31 +01:00
Itamar
1ec917aa23 HackStudio: Attach debuggee to "Console" terminal tab
Previously the debuggee process used the same tty of the HackStudio
process.

We now set things up so the debuggee gets attached to the
TerminalWrapper in the "Console" tab.
2021-12-22 02:14:32 -08:00
Itamar
a02d8e5710 LibDebug: Add optional setup_child() callback to debugger
If set, this callback gets called right after fork() in the child
process.

It can be used by the caller if it wants to perform some logic in the
child process before it starts executing the debuggee program.
2021-12-22 02:14:32 -08:00
Itamar
0cea8d1310 HackStudio: Separate master & slave PTY setup in TerminalWrapper
Previously the setup for both the master and slave pseudoterminals was
done in TerminalWrapper::run_command.

This commit separates the relevant logic into
TerminalWrapper::setup_master_pseudoterminal
and TerminalWrapper::setup_slave_pseudoterminal.
2021-12-22 02:14:32 -08:00
Itamar
83dd1e5b80 HackStudio: Rename "Build" tab to "Console"
The TerminalWrapper in this tab is not only used for displaying build
output, so "Console" would be a better name.
2021-12-22 02:14:32 -08:00
creator1creeper1
4b2b0a4d0e Calculator: Make double construction and conversion private
At this point, the double conversions should really only be
implementation details of the KeypadValue class. Therefore,
the constructor-from double and conversion-operator-to
double of KeypadValue are made private. Instead, the
required functionality is provided by KeypadValue itself.
The internal implementation is still done using doubles.
However, this opens us up to the possibility of having
loss-free square root, inversion and division in the future.
2021-12-22 00:43:13 -08:00
Idan Horowitz
b2f0697afc Kernel: Switch KUBSAN prints to use critical_dmesgln instead of dbgln
This allows to KUBSAN to print correctly in strictier memory
conditions. This patch also removes some useless curly braces around
single line ifs.
2021-12-22 00:02:36 -08:00
Idan Horowitz
5f4a67434c Kernel: Move userspace virtual address range base to 0x10000
Now that the shared bottom 2 MiB virtual address mappings are gone
userspace can use lower virtual addresses.
2021-12-22 00:02:36 -08:00
Idan Horowitz
fccd0432a1 Kernel: Don't share the bottom 2 MiB of kernel mappings with processes
Now that the last 2 users of these mappings (the Prekernel and the APIC
ap boot environment) were removed, these are no longer used.
2021-12-22 00:02:36 -08:00
Daniel Bertalan
4fc28bfe02 Kernel: Unmap Prekernel pages after they are no longer needed
The Prekernel's memory is only accessed until MemoryManager has been
initialized. Keeping them around afterwards is both unnecessary and bad,
as it prevents the userland from using the 0x100000-0x155000 virtual
address range.

Co-authored-by: Idan Horowitz <idan.horowitz@gmail.com>
2021-12-22 00:02:36 -08:00
Daniel Bertalan
2f1b4b8a81 Kernel: Exclude PROT_NONE regions from coredumps
As PROT_NONE regions can't be accessed by processes, and their only real
use is for reserving ranges of virtual memory, there's no point in
including them in coredumps.
2021-12-22 00:02:36 -08:00
Daniel Bertalan
ce1bf3724e Kernel: Replace intersecting ranges in mmap when MAP_FIXED is specified
This behavior is mandated by POSIX and is used by software like Wine
after reserving large chunks of the address range.
2021-12-22 00:02:36 -08:00
Idan Horowitz
fd3be7ffcc Kernel: Setup APIC AP cores boot environment before init_stage2
Since this range is mapped in already in the kernel page directory, we
can initialize it before jumping into the first kernel process which
lets us avoid mapping in the range into init_stage2's address space.

This brings us half-way to removing the shared bottom 2 MiB mapping in
every process, leaving only the Prekernel.
2021-12-22 00:02:36 -08:00
Idan Horowitz
6c8f1e62db LibELF: Ignore unknown dynamic tags instead of asserting
Some programs (like wine) add custom dynamic tags to their binaries
that are used internally by them, so we can just ignore them.
2021-12-22 00:02:36 -08:00
Idan Horowitz
7b24fc6fb8 Kernel+LibC: Stub out getifaddrs() and freeifaddrs()
These are required for some ports.
2021-12-22 00:02:36 -08:00
Idan Horowitz
468ae105d8 Kernel+LibC: Stub out if_nameindex() and if_freenameindex()
These should allow users to receive the names of network interfaces in
the system, but for now these are only stubs required to compile some
ports.
2021-12-22 00:02:36 -08:00
Idan Horowitz
efb69508f4 LibC: Add the netinet/if_ether.h header and define ETH_ALEN
This header defines various constants related to ethernet packets,
with ETH_ALEN being the length of an ethernet address (which is needed
by some ports).
2021-12-22 00:02:36 -08:00
Idan Horowitz
3a1ff175e8 Kernel: Define and return the ARPHRD_* device type in SIOCGIFHWADDR
The sa_family field in SIOCGIFHWADDR specifies the underlying network
interface's device type, this is hardcoded to generic "Ethernet" right
now, as we don't have a nice way to query it.
2021-12-22 00:02:36 -08:00
Idan Horowitz
3080cc16ec LibC: Stub out munlock()
This function is supposed to unlock memory ranges that were locked by
mlock, but since mlock is stubbed out right now, this is a no-op.
2021-12-22 00:02:36 -08:00
James Puleo
b19efc4db6 LibMain: Don't dbgln runtime errors if not on Serenity
When on Lagom, `warnln` and `dbgln` both output to `stderr`. This makes
runtime errors duplicated and more verbose than necessary.
2021-12-21 22:50:12 -08:00
Tim Schumacher
1145638de5 Ports: Remove wchar parts from openssh patches 2021-12-21 20:35:52 -08:00
Tim Schumacher
939469c831 Ports: Remove wchar patch from dosbox-staging 2021-12-21 20:35:52 -08:00
Tim Schumacher
ee994832cf Ports: Remove wstring patch from LLVM
One of the chunks in `remove-wstring.patch` was not wchar-related and
has been moved to `insert-ifdef-serenity.patch` instead.
2021-12-21 20:35:52 -08:00
Tim Schumacher
e6c90a3048 Ports: Remove the cmake wstring patch 2021-12-21 20:35:52 -08:00
Tim Schumacher
dfc682dc40 LibC: Remove deprecation warnings from "unsafe" string functions
We have close to zero usages of the C string functions in our codebase
(including the "safe" alternatives), so the deprecation warnings are
unlikely to have an actual effect on preventing large-scale use of the
"unsafe" functions.

Meanwhile, the deprecation warnings are causing issues for ports that
are compiled using -Werror by default, and are generally a large source
for logspam when compiling.
2021-12-21 19:42:49 -08:00
Hendiadyoin1
27a967371b LibRegex: Remove duplicate declaration of execution_result_name(...) 2021-12-21 18:17:28 -08:00
Hendiadyoin1
303af07df8 LibRegex: Use AK::any_of in Parser::lookahead_any
Equivalent to std::ranges::any_of, which clang-tidy suggests.
2021-12-21 18:17:28 -08:00
Hendiadyoin1
0f4a79a24d LibRegex: Capture this explicitly in RegexStringView::equals lambda
This stops clang-tidy from suggesting that this function can be made
static, although accessing `this->operator==` in the lambda function.
2021-12-21 18:17:28 -08:00
Hendiadyoin1
5885e70df7 LibRegex: Remove some meaningless/useless const-qualifiers
Also replace String creation from `""` with `String::empty()`
2021-12-21 18:17:28 -08:00
Hendiadyoin1
ca69ded9a5 LibRegex: Collapse some if(...) return true; else return false; blocks 2021-12-21 18:17:28 -08:00
Hendiadyoin1
a2563496f5 LibRegex: Remove some else-after-returns 2021-12-21 18:17:28 -08:00
Hendiadyoin1
b674de6957 LibRegex: Add some implied auto qualifiers 2021-12-21 18:17:28 -08:00
Brian Gianforcaro
1fdd1915c2 LibC: Add POSIX spec comments for stat APIs 2021-12-21 18:16:48 -08:00
Brian Gianforcaro
890fba95f7 LibC: Add POSIX spec comments for posix_spawn APIs 2021-12-21 18:16:48 -08:00
Brian Gianforcaro
6fe71970f5 LibC: Add POSIX spec comments for signal APIs 2021-12-21 18:16:48 -08:00
Brian Gianforcaro
ea355fbf17 LibC: Add POSIX spec comments for search APIs 2021-12-21 18:16:48 -08:00
Brian Gianforcaro
140a544051 LibC: Add POSIX spec comments for stdio APIs 2021-12-21 18:16:48 -08:00
Brian Gianforcaro
7fd1de01a7 LibC: Add POSIX spec comments for stdlib APIs 2021-12-21 18:16:48 -08:00
Brian Gianforcaro
11a12c2312 LibC: Add POSIX spec comments for string APIs 2021-12-21 18:16:48 -08:00
Brian Gianforcaro
0f53e0aaea LibC: Add POSIX spec comments for sched APIs 2021-12-21 18:16:48 -08:00
Brian Gianforcaro
6db9b6cf79 LibC: Add POSIX spec comments for qsort 2021-12-21 18:16:48 -08:00
Brian Gianforcaro
e9c46a23c8 LibC: Add POSIX spec comments for select APIs 2021-12-21 18:16:48 -08:00
Brian Gianforcaro
5568aee35f LibC: Add POSIX spec comments for memory management APIs 2021-12-21 18:16:48 -08:00
Brian Gianforcaro
4484634d8a LibC: Add POSIX spec comments for socket APIs 2021-12-21 18:16:48 -08:00