Commit Graph

63848 Commits

Author SHA1 Message Date
Augustin Cavalier
7d2a6f2d99 launch_daemon: Rework how user-session spawning functions.
* Instead of fork()ing, which leaks memory (and runs a second
   BApplication inside the Run() of the original one, which was
   the source of a TODO), use posix_spawn to start a second process
   altogether.

 * Move session initialization code to the new user_main(), invoked
   from main() if we are starting a user session.

 * Send event registration messages to the new session daemon
   in _HandleRegisterSessionDaemon, as the child no longer has access
   to the old events list from before fork()ing and must receive it.

The last of these fixes a race: previously, if an event was registered
or triggered between when the child (user) launch_daemon was fork()ed off
the parent and when it registered with the root launch_daemon, those
events were "lost" and would never be forwarded to the child.

That happened not altogether infrequently for some people (myself
included) especially in virtual machines for the "initial_volumes_mounted"
event, which was the most common remaining cause of "boot hangs on rocket"
or "boots to blue screen with only mouse cursor" problems.

So, in addition to being cleaner overall and resolving a number of TODOs,
this also fixes #17365.

Change-Id: I1ea28cba8938a38b3c27685d7f3943f596cfe7ec
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4968
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
2022-02-18 17:29:37 +00:00
Augustin Cavalier
9392d87e6e BReferenceable: Remove unneeded linebreak from debugger message. 2022-02-16 21:06:26 -05:00
Augustin Cavalier
fcd448f86b package_daemon: Do not delete roots on destruction.
Instead just release our reference to them and clear the list.
Should fix #17580.
2022-02-16 21:06:26 -05:00
Alexander von Gluck IV
9e25244c5e 3rdparty/vagrant: Add our vagrant templates
* I have to figure out how to do this every major
  release, put here to document somewhat.
* The os images are empty files for obvious reasons
* This vagrant box is used by qemu for their automated
  testing under Haiku
  https://github.com/qemu/qemu/blob/master/tests/vm/haiku.x86_64

Change-Id: I8e02104063284a96e1672051e3d504a78a64cfe3
2022-02-16 12:09:06 -06:00
Rudolf Cornelissen
f01ca729e5 intel_extreme: for eDP/laptops always use the panel's fixed native modeline, panel doesn't accept otherwise. 2022-02-15 23:08:24 +00:00
Rudolf Cornelissen
440667b4c6 intel_extreme: eDP now works on Sandy/Ivy laptops: ticket #17350 i.e. 2022-02-13 23:59:38 +01:00
Adrien Destugues
c8edc9b368 LaunchBox: Revert "Use Shine and Shadow color instead of tinting for Haiku"
This reverts commit d493aae3c4.

The default shine and shadow color are pure black and white. They are
not meant to be used directly, but mixed with the background color for
more subtle results.

The previous code using tint_color was also just fine.

Fixes #17577.
2022-02-13 09:41:55 +01:00
Rudolf Cornelissen
cfd3bb41aa intel_extreme: log srcclk info, Sandy/Ivy eDP detect BIOS pipe setup and use that. 2022-02-12 23:29:42 +01:00
Autocomitter
9aa0aea3a8 Update translations from Pootle 2022-02-12 08:08:27 +00:00
Augustin Cavalier
b4f4368b2b bus_managers/scsi: Use kernel mutex API directly and not through a wrapper.
No functional change intended.
2022-02-11 15:06:41 -05:00
Augustin Cavalier
8016cfee1a app_server: Put base class call in the switch where it belongs.
We don't need to forward handled messages.
Thanks axeld for the review.
2022-02-11 14:44:22 -05:00
Augustin Cavalier
71f4447184 kernel/cache: Set parent_data outside the if-block.
Reduces code duplication while retaining clarity.
Thanks axeld for the review.
2022-02-11 14:43:48 -05:00
Humdinger
a04ae8afcf Cortex: Fix B_PRIu32 usage
Noticed because Pootle showed "Video data between line lu and lu".

Change-Id: I55eeba9d3df88debbf2121a653b8220e643d07bb
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4959
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2022-02-11 13:43:25 +00:00
Augustin Cavalier
576440062d app_server: Scan fonts in the looper thread.
This way, the first unlucky application to request the font list
after paths change (or on first app_server startup) will not stall out
while the font list is rebuilt, at least most of the time.

Should fix #17574.
2022-02-10 16:44:27 -05:00
Augustin Cavalier
bde40eceef app_server: Remove TODO comment from B_NODE_MONITOR handling.
As far as I can tell, this TODO has been resolved since 3 hours after
it was added in 2005, when the second case of B_ENTRY_REMOVED (i.e.
single-file removal instead of whole-directory removal) was implemented.
_RemoveDirectory does not appear to be fully implemented, though;
but it has its own TODO and does not need this one.
2022-02-10 16:14:25 -05:00
Augustin Cavalier
ec39014cf4 app_server: Add default case for FontManager::MessageReceived. 2022-02-10 16:12:43 -05:00
Augustin Cavalier
1e926a21ef BReferenceable: Enable reference-count assertions even outside DEBUG.
Now that we are merely doing basic comparison tests and do not invoke
get_thread_info or the like, this is cheap enough that we can enable it
even when DEBUG is not enabled, and get assertions in more cases.
2022-02-10 15:17:16 -05:00
Augustin Cavalier
071d20db2b BReferenceable: Relax reference-count destruction checks.
"delete object;" is logically the same as "object->ReleaseReference();"
when there is a reference count of 1, and we need to permit that instead
of asserting on it, so the case where a referenceable object is a member
variable of a class works without asserting.

This manifested in packagefs: the Resolvable class has a linked-list with
Dependency objects (which are referenceable) in it. (Further, the stack
checks do not work quite right for kernel stacks.)

Fixes #17575.
2022-02-10 14:31:34 -05:00
Augustin Cavalier
e51f545c90 kernel/team: Clear group_id when removing a team from a group.
And remove a redundant clear of the group pointer.
2022-02-09 17:38:16 -05:00
Augustin Cavalier
b396a5b22e kernel/team: Clean up and reorder Team initializer.
* Put all fields in the same order they are in the header.
 * Add missing initializers for various fields to NULL or -1;
   while these should be initialized by later routines,
   for consistency's sake we should also clear them here.
2022-02-09 17:37:19 -05:00
Augustin Cavalier
9af6dc63b2 kernel: Remove malloc_referenced now that it is unused.
It was added long before we had KernelReferenceable, which should
be used instead.
2022-02-09 16:42:06 -05:00
Augustin Cavalier
e372ec1e02 kernel: Use KernelReferenceable for the supplementary_groups array.
Instead of the malloc_referenced system. Makes for some cleaner code,
and the malloc_referenced system was only used here, so it can now be
dropped altogether.
2022-02-09 16:39:43 -05:00
Máximo Castañeda
72acf6a91b generate_boot_screen: fix build
Change-Id: I4ce2a45887fd2f562216aa49e1bd34269bcfdef8
2022-02-09 21:32:32 +01:00
Humdinger
7dd4703452 HaikuDepot: remove unneeded B_TRANSLATE()
Change-Id: Icfdf179817d93dd981904ad64b2efae4f0c8b9a0
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4958
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2022-02-09 15:35:20 +00:00
Augustin Cavalier
156ef95b1e kernel/block_cache: Fix memory leak in sub-transaction handling.
This code has been broken like this since 2012, so I am skeptical
that it is the cause of the more recently observed #17463.
It is however possible that more recent changes caused things
to get noticeably worse for some reason.

This may, however, resolve some of the other KDLs, e.g. #12847.
2022-02-08 18:37:01 -05:00
Augustin Cavalier
8a2d11b7dc kernel/block_cache: Adjust logic in cache_detach_sub_transaction.
This way it should be more clear that parent_data is being modified
in tandem with original_data.

No functional change intended.
2022-02-08 18:35:03 -05:00
Augustin Cavalier
e12a5fe215 kernel/slab: Change checks in FreeRawOrReturnCache to panic instead.
The function is largely useless if we cannot lock kernel space,
and the consumers may not expect it to silently "fail." Hence,
we now put the invocation of deferred_free in free_etc directly.
2022-02-08 18:33:20 -05:00
Augustin Cavalier
fc38a41393 BReferenceable: Fix build when the kernel is built with DEBUG enabled. 2022-02-08 18:28:16 -05:00
John Scipione
8b25c6d727 Appearance: Store decorator filename to disk untranslated
Save ShortcutName() (i.e. filename) instead of the potentially
translated decorator Name(). If the decorator has no ref but
fInitStatus is B_OK and fPath == "Default" return Default
decorator in ShortcutName(). The Default decorator unlike other
decorators has no file on disk associated with it.

We don't need to look for ShortcutName() when iterating through
decorators anymore because we look for "Default" then file names
before we try to find by name.

Fixes #16412

Change-Id: I3109681d11931e7f55b7afaf3a65af2fb9ed5e10
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4320
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2022-02-07 21:38:44 +00:00
urnenfeld
20b3c898d8 boot/efi/arm64: Enable FP/SIMD
* Kernel code uses q0 registers belonging to the 128 bits vectorial & floating point registers
* Apply stylistic suggestion from previous review

Change-Id: I41b5a807c3867de4bb3b9450607d48098f9471ef
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4925
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2022-02-07 21:36:55 +00:00
Augustin Cavalier
e88ab494a8 pkgman: Note in full-sync command summary that it may downgrade packages.
Fixes #10835.
2022-02-07 16:20:33 -05:00
Augustin Cavalier
e48ac4a3de Debugger: Add missing NULL check in ReportUserInterface.
Fixes #16565.
2022-02-07 16:14:50 -05:00
Augustin Cavalier
cb860bd2eb Add intel22x driver to the default images.
Fixes #17212.
2022-02-07 16:07:12 -05:00
Augustin Cavalier
1fc7d77323 XHCI: Downgrade tracing of CancelQueuedTransfers.
Now we only do it if TRACE_USB is enabled, or force-cancellation is specified.
2022-02-07 15:55:32 -05:00
Augustin Cavalier
312ea06980 XHCI: Do not print "transfer error" for COMP_STOPPED.
STOPPED errors are generated by StopEndpoint commands, which we issue,
so presumably we expect that we will get some STOPPED errors when doing
so, thus printing these is not really necessary.
2022-02-07 15:54:31 -05:00
Augustin Cavalier
125a7abe6f package_infos/webpositive: provides app:webpositive. 2022-02-07 15:11:30 -05:00
Augustin Cavalier
1267e873d3 protocols/unix: Do not re-build Referenceable.cpp.
It is now part of the general kernel exports (and is used by
packagefs, among other things.)
2022-02-07 15:08:21 -05:00
Augustin Cavalier
f6b6606652 BReferenceable: Always enable DEBUG in kernel mode when PARANOID_KERNEL_FREE is enabled.
This checks the reference counts are actually 0 (or 1 and allocated
on the stack). As PARANOID_KERNEL_FREE is enabled at KDEBUG_LEVEL 2,
this will thus be enabled on nightly builds.
2022-02-07 15:07:37 -05:00
Augustin Cavalier
ebf0b53a7e kernel/util/atomic: Permit atomic_pointer_get to accept const* pointers. 2022-02-07 14:35:23 -05:00
Augustin Cavalier
50157a8d17 kernel/condition_variable: Make ConditionVariableEntry::Variable non-inline.
We have to use an atomic here.
2022-02-07 14:22:39 -05:00
Augustin Cavalier
c9d521ea5b kernel/condition_variable: Various cleanups.
* Adjust a comment that now goes with 3 functions and not just 1.

 * Remove spinlock switch function, this is useless as it cannot
   change interrupt states here, but we require interrupts to
   be enabled to wait on a ConditionVariable.

 * Remove WaitStatus function from ConditionVariableEntry; unused
   and would require locks anyway.

 * Implement Publish using Init.
2022-02-07 14:22:12 -05:00
Augustin Cavalier
8774bf6012 libroot: Remove linker hack to prevent weak symbols.
Now that we support them in runtime_loader.
2022-02-07 14:19:58 -05:00
Augustin Cavalier
c41b379e5a runtime_loader: Support resolving weak symbols as NULL.
In the case where a weakly declared symbol has no definition,
it should just resolved to be NULL instead of failing to load at all.

GCC 11 builds of libroot.so wind up having one weak symbol
declaration that is unresolved at runtime, to __cxa_pure_virtual,
which seems to be provided by some object in libsupc++.a that ld
does not pull in automatically (and has to be forced at present.)

This change also amends symbol patcher behavior: it is now possible
for the symbol patcher to indicate symbols should be hidden by
changing the passed-in type to 0, instead. (Otherwise, weak symbols
would always get a value of NULL instead of being able to be hidden.)

Fixes #8288.

Previously-reviewed-on: https://review.haiku-os.org/c/haiku/+/4768
Change-Id: I6485c4e515cb53c6b81db971efbc10008fa6bd9d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4932
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2022-02-07 19:03:25 +00:00
X512
cba95132ca libroot: add timespec_get to build
* Added in hrev55773

Change-Id: Ib57b53c76641e87c5ac0c0cde2407a7bfe45ce41
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4935
Reviewed-by: Jessica Hamilton <jessica.l.hamilton@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
2022-02-07 16:38:47 +00:00
Rudolf Cornelissen
74e271b2a2 intel_extreme: eDP port width register read is OK after all (SandyBridge). 2022-02-06 22:26:26 +00:00
Autocomitter
a49db24180 Update translations from Pootle 2022-02-05 16:01:49 +00:00
Rudolf Cornelissen
9d361aaed2 intel_extreme: eDP port width seems fixed at 4 on SandyBridge. 2022-02-05 10:37:35 +00:00
Rudolf Cornelissen
4b5e0c3bcd intel_extreme: Sandy/IvyBridge fix 4 lanes DP detect, fully pgm eDP link 2022-02-04 19:56:27 +01:00
David Karoly
a18ff64517 boot/arm: remove unused arch_mmu.h
This file is used only by the u-boot raw bootloader and
it has identical content to platform/u-boot/mmu.h.

Therefore we can use mmu.h in the u-boot loader and remove
this header.

EFI platform has its own arch_mmu.h in
headers/private/kernel/boot/platform/efi

Change-Id: Ie77774fbcf4855f9bc643176c179670f6169b3b6
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4929
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2022-02-04 11:42:45 +00:00
Augustin Cavalier
f39294c273 freebsd_iflib: Remove Haiku-specific semaphores code and use msleep instead.
Now that the interlocking issues are resolved with the previous commit,
using the main TQ_SLEEP mechanism no longer causes deadlocks and
network I/O freezes, so we can drop the custom code and use FreeBSD's
code instead.
2022-02-04 00:45:41 -05:00