Should not result in functional changes to packagefs and ramfs
queries behavior.
Change-Id: If361ca65de99d255e67f929c3442e0c20e39cdf4
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7703
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Ensures that the new team has been reported to the debugger before
the main thread gets resumed. This allows the debugger to attach
to child teams as early as possible.
`fork` and `load_image` without `B_WAIT_TILL_LOADED` have always been
working as desired. This commit fixes the remaining case of
`B_WAIT_TILL_LOADED` by reporting before resuming the thread of
`runtime_loader`.
Change-Id: I7fd74606801c6ca5335d91c92f3157e6c6e66308
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7797
Haiku-Format: Haiku-format Bot <no-reply+haikuformatbot@haiku-os.org>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Add `SIGNAL_DEBUG_THREAD` to the list of non-deferrable signals.
This allows debuggers to immediately install themselves and break
newly-forked children, as `libroot` requests signals to be deferred
around `_kern_fork`.
Change-Id: Ifc98c3ce4d394f187070a089a9be9fe665ee81d9
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7796
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Using map[key] inserts the key in the map if it wasn't there, making it
non-empty.
Change-Id: I4404b896126aee202780b6e93e7c17c69ca8f34d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7787
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
When you add two crosshairs to measure pixels, it was a bit confusing to see:
1) x: 14 y: 11 x: 19
2) x: 33 y: 20 y: 9
Now it's:
➀ x: 14, y: 11
width: 19, height: 9
➁ x: 33, y: 20
"1)" and "2)" got replaced by dingbats numbers in a circle.
Change-Id: I7fd1b3bd7869a3251e15e249f74916150eef8218
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7724
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Adds a `signal` field to the `team_deleted` event. Since killing
signals like `SIGKILL` and `SIGKILLTHR` do not generate a
`signal_received` event, debuggers would only see a `team_deleted`
message with the `status` field set to 0. This makes debuggers like
GDB think that the debuggee has exited with a status code of 0.
To correctly report these signals, when a killing signal is sent
to a team, this signal is relayed to the main thread instead of
defaulting to just a `SIGKILLTHR` for both cases.
Change-Id: If69c9e2e4d87bfbd31f654f5cb6f696ac69ef777
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7756
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Using 4 spaces, instead of two, makes it easier to find
the available commands at a glance.
Change-Id: I2bbfaa323b89ebce490e34a39c4dfd163c23fd06
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7784
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
"New player" in MediaPlayer and "Get info" in ShowImage do exactly
like the item says, so no ellipsis needed. Similar to Terminal's
"New Terminal" and Trackers "Get info".
Change-Id: I32e59e219af7a09bd74b489459281cc71cbffd9c
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7783
Haiku-Format: Haiku-format Bot <no-reply+haikuformatbot@haiku-os.org>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
The package rating comment field was not adjusting
the vertical scroller as the text was being edited.
Change-Id: Ic84c72a126fae5ce9a9ab8930fa13d426b513ed9
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7782
Haiku-Format: Haiku-format Bot <no-reply+haikuformatbot@haiku-os.org>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: John Scipione <jscipione@gmail.com>
Reviewed-by: Axel Dörfler <axeld@pinc-software.de>
HaikuDepot has its own text-engine. This change will allow
the text-engine to have text pasted into its view.
Change-Id: I639cf0ba4fa42a0130af0a4dc169f0f2e585765d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7723
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
Visible in HaikuDepot when the font is scaled, the placement
of the BColumnListView is broken owing to the calculation of
the height of the scrollbar being based on a constant.
Fixes #17900.
Change-Id: Id34138feb491618a4c685b7cdb88b875e3ec5329
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7726
Haiku-Format: Haiku-format Bot <no-reply+haikuformatbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
scheduler modes adapted to take into account the thread affinity mask.
when no cpu in the affinity mask is enabled, the mask is ignored.
Change-Id: I577737441ab073941a4c5e06f94f7825cffdc2c4
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7674
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
When HaikuDepot is opened to view a specific HPKG file,
then show the name of the package in the window title.
Closes issue #18909.
Change-Id: Ib8095ef818dd3dc62b06cbc217f2056f36c8ac46
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7721
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Haiku-Format: Haiku-format Bot <no-reply+haikuformatbot@haiku-os.org>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
This way, by the time we send a notification, the arguments
are already set even if the main thread has not yet started.
Fixes #12703.
Change-Id: Ib93b4b16bffa8cb943cf6389f0f72dce89f9749b
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7702
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Add a field to `debug_[team/thread]_deleted` to report the exit status
on the corresponding events.
This is useful for debuggers like GDB expecting a return value when one
of their inferiors quit.
Also add a `usage` field to `debug_team_deleted` since this is another
potentially useful piece of information exposed by the `waitpid` family
of syscalls.
Change-Id: Ieff7c31f56b1b9f8f709725d19050273b21f2504
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7736
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
The email on the program listing has never been used.
This change removes this. Closes issue #18274.
Change-Id: I45c679059b334d25c892bfbb6010e0821a84ac38
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7720
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
The physical memory ranges will actually be used again
later on during post-modules VM setup. The allocated ranges
are what we really want to prevent access to, anyway.
Fixes #18907.
block_alloc and friends are now declared as static, so we got
GCC errors about unused functions when USE_SLAB_ALLOCATOR_FOR_MALLOC
was 0. So, instead, just don't initialize the block allocator
at all.
This was the change that triggered the prior commits: if the
block allocator is completely disabled, the first object
allocated through an object_cache is inside VMAddressSpace
initialization, which happens during the interim period
mentioned in previous commits.
Haiku now can be built and booted all the way to the desktop
with the kernel guarded heap enabled (and without the guarded
heap substituting for the object cache.)
Change-Id: If2f08a741826799127ecfd263d6c82ed4263eaab
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7701
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Haiku-Format: Haiku-format Bot <no-reply+haikuformatbot@haiku-os.org>
See inline comment: if we don't, we'll try to allocate pages
during the post-page-init but pre-area-init period, which
isn't possible (and after the previous commit will properly fail.)
Change-Id: If8392417e05912c8cfc417222abab3b39cb15bf1
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7700
Haiku-Format: Haiku-format Bot <no-reply+haikuformatbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Otherwise, vm_allocate_early_physical_page could try to use them to
allocate more physical pages, which isn't legal as page state
management is now the responsibility of the vm_page system.
Discovered while working on re-activating the guarded heap.
In that case, at least, the illegally allocated pages were caught
by the memory manager trying to convert them into areas,
but they weren't marked WIRED and so tripped asserts.
Change-Id: I39af70bf8a652511bb65fe2154bba16d4ba5c924
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7699
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Reviewed-by: Axel Dörfler <axeld@pinc-software.de>
This has been broken since January 2014, from a change made during
the scheduler refactor (527da4ca8a4c008b58da456c01a49dcf16a98fbc).
How nobody seems to have figured this out since then, I have no idea,
especially since the 32-bit initialization routine had the
critical function (x86_get_double_fault_stack) commented out entirely.
Even if it wasn't commented out (and it wasn't for 64-bit), it wouldn't
have worked, because the double-fault stacks were not allocated
until "post-VM", while the TSS is set up during "preboot" (basically
just after kernel entry.)
We now take care of this by allocating the virtual address for
the stacks immediately, and then creating an area for it
in the "post-VM" stage. This means that any double-faults
which occur before the post-VM stage will just triple-fault,
but seeing as all double-faults have been triple-faults
for the past decade, that's probably fine. (In order to get a
double-fault stack that early, we would probably need to
have the bootloader allocate it for us.)
This must be working, because it changes #18692
from a triple-fault (instant reboot) into a double-fault KDL.
On some rare memory-corruption KDLs, I have seen pages with
"0" for all fields including page_num. So now we compute the
expected page number from the page's offset into sPages
and print an additional line if it doesn't match what's in the
page structure.
This way, FIONBIO and O_NONBLOCK will no longer get out of sync,
and additionally, FIONBIO can be used to change non-blocking
status of regular (non-socket) FDs, too (which some applications
seem to take advantage of, to avoid needing to fetch the open_mode
before calling fcntl.)
Change-Id: Id894fe76c79ac373c0121a003d68180a3d9b6560
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7697
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Some systems (e.g. NTFS through WSL1) support arbitrarily-large
extended attributes, but do not preserve case on attribute names
(or disallow more characters than the existing manglers took
care of.)
So, this adds a mode in which attribute names are encoded as
hexadecimal. At present it must be manually enabled; in the future
it may be possible to modify ./configure to activate it
automatically.
Change-Id: If20e4cb1cf4153cccc918ce6d51761426055290c
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7698
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
* Make the consumer-count int32 atomic, avoiding the need for
all get/put operations to go through a global lock.
* Disable the code that unloads the stack interface when there
are no consumers. Otherwise, we wind up repeatedly loading/
unloading the stack interface during the boot process (e.g.
while sockets are being created and destroyed during net_server
startup.)
In the future, if we want to really unload it, we can add some
interaction with low_resource_monitor or something like that.
Reduces register_domain call count during boot from 31 to 7
(it appears the stack was loaded and unloaded 5 times, before
it stayed loaded the 6th.)
Otherwise, modules that depend on each other will be repeatedly
loaded and unloaded. This reduces the number of register_domain()
calls on a standard boot (of @minimum, at least) from 43 to 31.