commits
Heap/Heap.cpp:39:7: error: '__linux__' is not defined, evaluates to 0 [-Werror,-Wundef]
read_num_entry on a non-existent key calls write_num_entry which
marks the ConfigFile dirty, and at destructor time it calls sync()
which writes out a new config file which seems odd to do by default.
In SystemServer's case it writes out a config file that can't be
parsed properly upon next startup, which seems like another bug.
A USB keyboard reports different wscons_event values through the
mux than an AT one, so add another index of USB values to Serenity
keycodes. The proper way to do this would be to watch each keyboard
device separately and translate their keys, though Xorg doesn't seem
to do this but I can't figure out what it's doing differently to
get properly translated keys from multiple sources.
When using inteldrm, we can't do a simple mmap() on the device like
we can with efifb. Implement enough of the DRM API to allocate
two buffers on the GPU that we can now use for double buffering.
The code for doing a single buffer mmap should probably be kept as
a fallback in case there is no accelerated graphics on the machine.
The current implementation assumes the front and back buffers of
m_framebuffer will be in the same mmap()ed location at different
offsets, but they may be two different pointers.
OpenBSD uses this binary version of /etc/passwd for getpwent()
Use setres[ug]id instead of set[ug]id on non-serenity platforms.
Serenity should use these too but its LibC doesn't have them yet.
These are what init does, we should too
OpenBSD doesn't support some of Serenity's pledge promises, so these
should be updated with OpenBSD-specific promises, but for now just
disable them so things run
Code-generation tools are (ab)using dbg() to print lots of things
to stdout, but dbg() prefixes output depending on how it's compiled.
Use OpenBSD's sockpeercred instead of Serenity's ucred
On at least OpenBSD, we don't support doing fchmod/fchown on a
socket fd, so do it after the socket path is created but before
we listen on it.
Also don't descend into Kernel or Userland, since we're using our
host's kernel and userland.
Previously the WindowServer would assert `topmost_menu->menu_window()`
and crash.
Fixes #1716
There's no need for StaticParser to be a separate thing from Parser.
There was a frequently occurring pattern of "map this physical address
into kernel VM, then read from it, then unmap it again".
This new typed_map() encapsulates that logic by giving you back a
typed pointer to the kind of structure you're interested in accessing.
It returns a TypedMapping<T> that can be used mostly like a pointer.
When destroyed, the TypedMapping object will unmap the memory. :^)
If we don't support ACPI, just don't instantiate an ACPI parser.
This is way less confusing than having a special parser class whose
only purpose is to do nothing.
We now search for the RSDP in ACPI::initialize() instead of letting
the parser constructor do it. This allows us to defer the decision
to create a parser until we're sure we can make a useful one.
We already have "global" as a way to access the global object in js(1)
(both REPL and script mode). This replaces it with "globalThis", which
is available in all environments, not just js.
Construct the parser, no matter which kind, in ACPI::initialize().
read_num_entry on a non-existent key calls write_num_entry which
marks the ConfigFile dirty, and at destructor time it calls sync()
which writes out a new config file which seems odd to do by default.
In SystemServer's case it writes out a config file that can't be
parsed properly upon next startup, which seems like another bug.
A USB keyboard reports different wscons_event values through the
mux than an AT one, so add another index of USB values to Serenity
keycodes. The proper way to do this would be to watch each keyboard
device separately and translate their keys, though Xorg doesn't seem
to do this but I can't figure out what it's doing differently to
get properly translated keys from multiple sources.
When using inteldrm, we can't do a simple mmap() on the device like
we can with efifb. Implement enough of the DRM API to allocate
two buffers on the GPU that we can now use for double buffering.
The code for doing a single buffer mmap should probably be kept as
a fallback in case there is no accelerated graphics on the machine.
There was a frequently occurring pattern of "map this physical address
into kernel VM, then read from it, then unmap it again".
This new typed_map() encapsulates that logic by giving you back a
typed pointer to the kind of structure you're interested in accessing.
It returns a TypedMapping<T> that can be used mostly like a pointer.
When destroyed, the TypedMapping object will unmap the memory. :^)
If we don't support ACPI, just don't instantiate an ACPI parser.
This is way less confusing than having a special parser class whose
only purpose is to do nothing.
We now search for the RSDP in ACPI::initialize() instead of letting
the parser constructor do it. This allows us to defer the decision
to create a parser until we're sure we can make a useful one.