Commit Graph
68573 Commits
Author SHA1 Message Date
John Davis 65fdc967c8 hyperv: Fix improper interrupt cleanup
Change default interrupt value to be invalid, current default is a
valid interrupt on x86 platforms.

Change-Id: Ieecf7bcbc6b0aeb4fe62a505ae9765c73ecaa74c
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10401
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Jérôme Duval <[email protected]>
2026-03-02 17:33:22 +00:00
John Davis 36021a5a3d hyperv: Check for required features during VMBus probing
Some hypervisors claim to implement/advertise Hyper-V i.e. Xen and
VirtualBox. Check for all required features when probing to prevent
loading on hypervisors that do not fully comply with Hyper-V
specifications.

Change-Id: I7c1188a433cad5eff91dcffe9520a55926d0f4b5
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10400
Reviewed-by: Jérôme Duval <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2026-03-02 17:33:22 +00:00
Fruit De La Passion f0fd023b4b drivers: Enable Werror for kernel driver add-ons pty, sensor, timer.
* Activate Werror
* Part of ticket #9460

There seems to be no related warnings. Hence, there are no further changes.

Change-Id: I2bee39eaa90cbe3805f5c79725e6f622368fcac9
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10398
Reviewed-by: nephele nephele <[email protected]>
Haiku-Format: Haiku-format Bot <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2026-03-01 08:50:27 +00:00
Augustin Cavalier 8cc48bf580 QueryParser: Don't divide by zero on empty attributes.
Fixes a KDL.
2026-02-28 22:16:43 -05:00
Augustin Cavalier f3fd885731 Game & Media Kits: Avoid some usages of static BLockers.
Saves some semaphores.
2026-02-28 22:16:15 -05:00
Augustin Cavalier 4d055d982a BGameSoundDevice: Cleanup.
* Use new-style header comments.

 * Put globals inside class or make static, instead of exporting
   unnecessarily.
2026-02-28 21:52:05 -05:00
Augustin Cavalier 6a4a02907a EHCI: Disable the physical buffers logic, at least for now.
It seems it may have caused serious regressions on some hardware,
see #19949 and #19945.
2026-02-28 20:34:12 -05:00
Augustin Cavalier 4d9bb0a399 LaunchBox: Style cleanup after previous change. 2026-02-28 20:31:30 -05:00
Pascal Abresch 234a85bb17 launchbox: remove ::Pulse, simplify settings storage
Change-Id: Ie1a6ccb083498f7405909911e4f202ee11a8ac0b
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9878
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: nephele nephele <[email protected]>
2026-02-28 20:23:21 +00:00
John Scipione 8d82659f43 Tracker: Fix Desktop window vs. actual Desktop menu items.
Fixes menu item portion of #19947.

Change-Id: If6e55eb16649d54008056b451d5e57e2dcd52c1c
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10395
Haiku-Format: Haiku-format Bot <[email protected]>
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
2026-02-28 13:20:52 +00:00
John Scipione 1d20c1fb5c Tracker: Disallow background image on Desktop windows.
Custom background image is disallowed on the Desktop folder and Root
aka "Disks" folder. However, you may use a default background image.

We store the background image on the node, Desktop window and the
actual Desktop share the same node so we have to explicitly disallow
background images from showing on Desktop windows.

Make UpdateBackgroundImage() protected.

Remove unused BDeskWindow::UpdateDesktopBackgroundImages();

Handle all background image code in ContainerWindow. BPoseView calls
its window if targetted to update its background image.

Fixes Desktop background portion of #19947.

Change-Id: I4b104340b5a69807961b99bde7b0455d7d58065a
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10392
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
2026-02-28 13:20:52 +00:00
John Davis 0c6100feb2 Implement initial Hyper-V support on x86 platforms
Haiku currently does not have any form of Hyper-V guest support, and
this change begins work toward #16664.

This change implements initial VMBus bus/device structure and functions.

Change-Id: I2d081f55e99da479d9bc5084f1815ade6cc77fe2
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10333
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Jérôme Duval <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
2026-02-28 10:00:04 +00:00
vighnesh-sawant b097619769 netresolv: Add support for AI_V4MAPPED in ai_flags in getaddrinfo
Ports over the following commits from FreeBSD:
https://github.com/freebsd/freebsd-src/commit/b848a37d4eddb432629a799713cf6fb6f0fd8c3c
https://github.com/freebsd/freebsd-src/commit/2cff354f1a56af10ad02164a9ee38c013ac80688

Fixes #14323.

Change-Id: If75642a45fc76b50d4377e5a11cdb1ee64ab40ab
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10396
Tested-by: Commit checker robot <[email protected]>
Haiku-Format: Haiku-format Bot <[email protected]>
Reviewed-by: Jérôme Duval <[email protected]>
2026-02-28 09:59:06 +00:00
Autocomitter cdc0044398 Update translations from Pootle 2026-02-28 08:10:06 +00:00
John Scipione a89c4cc6e9 Tracker: Revert SortPoses() change from hrev59185. Fixes #19946.
Change-Id: I0d4ab3a15c13ad1dd81b52a6f588d2ed09772a4d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10394
Haiku-Format: Haiku-format Bot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
2026-02-27 21:14:42 +00:00
John Scipione 4021001fa2 Tracker: Pedantic attrHash int32 => uint32 type fix.
Should have no practical effect.

Change-Id: I5160e8a670c9f36c00d513e60e519148406e1715
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10393
Haiku-Format: Haiku-format Bot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
2026-02-27 21:14:42 +00:00
Kacper Kasper dfa51c4fb8 Don't add extra packages to test image
* Test inherits from minimum target.
2026-02-27 20:09:37 +01:00
Fruit De La Passion 0f5086ade4 wmi: Enable Werror for kernel driver add-on wmi
* Activate Werror
* Part of ticket #9460

There seems to be no related warnings. Hence, there are no further changes.

Change-Id: If19794a5c6294f621360fcc0e58dc7fd8551d5db
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10391
Reviewed-by: Jérôme Duval <[email protected]>
Haiku-Format: Haiku-format Bot <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2026-02-27 15:30:52 +00:00
Augustin Cavalier aa939503b6 AppServerLink: Use the correct static initializer for recursive_lock.
Interestingly, the modern GCC accepted the "wrong" one, only GCC 2 didn't.
2026-02-27 10:26:25 -05:00
Augustin Cavalier 66d85d702b Terminal & Expander: Replace exit() with _exit() in fork+exec failure path.
This is necessary to avoid destructors being called in the child,
potentially messing up parent state.
2026-02-27 10:17:40 -05:00
Augustin Cavalier 1380d03a42 time_stats: Replace fork+exec with posix_spawn. 2026-02-27 10:16:51 -05:00
Augustin Cavalier 8cf5bd97a2 launch_daemon: Replace fork+exec with posix_spawn. 2026-02-27 10:16:35 -05:00
Augustin Cavalier 23ef8b89c6 net_server: Replace fork+exec with posix_spawn.
Uses POSIX_SPAWN_SETSID, so needs the previous commit to work.
2026-02-27 10:16:21 -05:00
Augustin Cavalier 27e95c346a posix_spawn: Fix implementation of POSIX_SPAWN_SETSID.
setsid() returns -1 in case of error, and a pid_t in case of success.
2026-02-27 10:13:46 -05:00
Augustin Cavalier 9b5a7d7612 AppServerLink: Switch to a recursive lock.
It seems in some applications (though not most of the ones I
initially tested) this can get used recursively, so we need
a recursive_lock in order to not deadlock.

Also commit a missed change from the previous commit.
2026-02-27 09:22:21 -05:00
Augustin Cavalier fb543b61ba AppServerLink: Use a mutex.
X512 pointed out that ServerLink is inherited by PortLink which is
used by all windows, so the original change had the unintended effect
of allocating another semaphore for every window, which isn't wanted.
So, just use a static mutex here also.
2026-02-27 09:15:48 -05:00
Nathan Patrizi 3f8cbb026f Save file panel: Handle DEL key in filename control correctly
* Currently the DEL key is intercepted by a shortcut registration for
  the Tracker "Move To Trash" menu option.
* Allow key event propagation to continue if a shortcut that does not
  use the CMD key is disabled.

Fixes #19870

Change-Id: If16d3858cee61dfd1862b379fbcfeffebe617341
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10226
Reviewed-by: waddlesplash <[email protected]>
2026-02-27 13:58:29 +00:00
iamdumb 4e5ee46880 btrfs: fixed comparison warnings in btree.
* Added static_cast<uint32> to resolve type mismatch warnings between
signed integer(fSlots[level] and slot) and unsigned integers(ItemCount()) during compile

* eliminated a potential unsigned underflow vunerability when a node
is empty in NextLeaf() traversal logic

Change-Id: I8534f31cac9dec41e04e16989427dc7d9abb26ef
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10363
Haiku-Format: Haiku-format Bot <[email protected]>
Reviewed-by: Fruit De La Passion <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2026-02-27 12:49:55 +00:00
John Davis 05d6e44fc9 bootloader/arm64: Discover UART from DBG2 ACPI table
Fallback to DBG2 if SPCR is not present while discovering UART serial
devices. DBG2 is newer than SPCR but does not provide the same
information, and it appears that both can exist on the same system.
This has only been tested in Hyper-V which exposes DBG2.

Change-Id: I6a75114f4287b6db289b544c3b80a66a625fb6c6
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10354
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
2026-02-27 12:49:33 +00:00
Fruit De La Passion 53579f5004 display: Enable Werror for kernel driver add-on display
* Activate Werror
* Part of ticket #9460

There seems to be no related warnings. Hence, there are no further changes.

Change-Id: I0516856a4e7c2ee5c3f8503c4713075e07efbf63
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10390
Haiku-Format: Haiku-format Bot <[email protected]>
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
2026-02-27 12:49:03 +00:00
Oscar Lesta 6f22415c5f intel_gart: add Host Bridge with id 0x4641.
Should help with #19942.

Change-Id: I19251b8948c5a20ae4e0ac1e4d3fe1172aeffaac
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10389
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
2026-02-27 09:26:43 +00:00
Fruit De La Passion 7ebad420e9 nvidia: Enable Werror for last (nvidia) and hence all graphics drivers.
* Fix warnings by adding two casts
* Activate Werror for all graphics drivers
* Remove options to disable Werror for individual graphics drivers, can later be re-introduced, if *really* necessary.
* Part of ticket #9460

uintptr_t is intentionally used although a physical address is concerned. Using phys_addr_t would require additional casts at other places.

Change-Id: Ife6dbcf809b6537427f318460e41cdc056e7d964
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10386
Haiku-Format: Haiku-format Bot <[email protected]>
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
2026-02-27 07:57:12 +00:00
Augustin Cavalier 91eb43cfc0 libbe.so: Prevent (re)using BApplication after fork.
The case where no BApplication has been created at the time of fork
is not blocked by this change (as it might be useful in fork-to-background
before creating a BApplication.)

Reinitializing or recreating a BApplication where one already exists,
though, is not supported by the kits, and just leads to problems.
And when the global destructors are invoked after a fork, such as by
exit(), then the parent team's state may be corrupted due to the
deletion of BLocker semaphores or other global state.

So, we thus set be_app to an invalid pointer, and if terminate_after()
is called with this pointer, we invoke debugger().

(We should really just prevent semaphores from being used across
processes unless explicitly specified, but that would be an
API compatibility break from BeOS, so we'll need to do it carefully,
or not until after R1.)

Would have clearly caught the problem in #18576 and the linked thread.
2026-02-26 17:26:08 -05:00
Augustin Cavalier 9cada02ee0 libbe.so: Avoid static BLockers.
They don't work properly after a fork, and if exit() is called
from the forked child, the parent won't be able to use them
anymore.

In BBitmap and BPicture, replace them with mutexes. For AppServerLink,
make the private ServerLink inherit from BLocker, and then use
that one directly.

This also is a slight efficiency gain, as we don't need to create
multiple semaphores from the static initializers now, which is
just a waste of time in the case of applications that don't
even need these locks but link to libbe.so (e.g. CLI tools.)

Part of #18576.
2026-02-26 17:15:53 -05:00
Augustin Cavalier b43289d544 ramfs: Rework NodeMTimeUpdater into NodeStatChangeNotifier.
This now does what notify_if_stat_changed used to, fixing a
race: if some thread was modifying a file, and some other thread
(or the same thread, in some other mtime-updating operation)
updated that file and this called MarkUnmodified() before the
first thread close()d it, then when the first thread called close(),
no node monitor notification would've been sent, as fModified
would've already been unset.

So, now every time we are to mark a file "unmodified", we also
send the node monitor notification at the same time.

Fixes the remainder of #19910.
2026-02-26 16:11:50 -05:00
Augustin Cavalier 0c5895120d ramfs: Send separate node monitor events for each Entry of a Node.
This way, the node monitor system can send events to applications
with B_WATCH_ALL set on parent directories, like Tracker.

Part of #19910.
2026-02-26 16:11:50 -05:00
Augustin Cavalier c271a5e7f9 ramfs: Consolidate attribute notifications logic. 2026-02-26 16:11:49 -05:00
Augustin Cavalier de2ec4a8c3 ramfs: Rehabilitate AllocationInfo support.
At least we won't double-count files now.
2026-02-26 16:11:49 -05:00
waddlesplash 8f3276e838 Revert "netresolv: Add support for AI_V4MAPPED in ai_flags in getaddrinfo"
This reverts commit 902921a554.

This broke resolution of CNAMEs, including the Haiku package repos.
Since pkgman uses our own HTTP implementation, which doesn't set
AI_V4MAPPED at all, this shouldn't have been a behavioral change for
it at all, much less having broken it.

Change-Id: If38b6a81c1144101ddea7d1f8d401326675479e3
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10388
Reviewed-by: waddlesplash <[email protected]>
2026-02-26 20:54:16 +00:00
Augustin Cavalier 3214eedc80 kernel/x86: Avoid unnecessary TLB invalidations.
If a context switch happened between the messsage being
sent and received, we don't need to invalidate.

Brief testing on a 4-core VM shows this happens relatively
rarely during compile jobs (expected, most processes are
single-threaded), but very often while running multiprocess
web browsers. Some INVALIDATE_PAGES are skipped, but mostly
INVALIDATE_PAGE_LIST is (by the thousands.)

Change-Id: If32ed95139e0db3770054f6ef3f72c9aecb9394d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10350
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
2026-02-26 17:17:06 +00:00
Augustin Cavalier 3e1ccaf329 kernel: Refactor arch_cpu_invalidate* methods to take a context parameter.
This will be useful on architectures that support ASIDs, and on
ones that don't, it can be used to avoid a race between invalidation
messages being sent and context switches occurring on other CPUs.

In this commit, no behavioral change intended on any architecture.

Change-Id: I6d2ee4b69150f9ff8503329761266ddbdb550eab
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10349
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
2026-02-26 17:17:06 +00:00
Raghav Sharma afaeb2d45d xfs: Fix incorrect directory entry name comparison
- Directory entry names were compared using strncmp() with
entry->namelen bytes, which could incorrectly report names
as equal when one name is a prefix of another (e.g. "dir1"
and "dir10").

- Move util functions hashFunction and hashLowerBound to Utility header.

- Disable xfs TRACE logs to not pollute syslogs.

Change-Id: I2b158bfa6b815d7576a880055f794ffe89d0eb22
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10357
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
2026-02-26 17:00:40 +00:00
vighnesh-sawant 902921a554 netresolv: Add support for AI_V4MAPPED in ai_flags in getaddrinfo
Ports over the following commits from FreeBSD:
https://github.com/freebsd/freebsd-src/commit/b848a37d4eddb432629a799713cf6fb6f0fd8c3c
https://github.com/freebsd/freebsd-src/commit/2cff354f1a56af10ad02164a9ee38c013ac80688

Fixes #14323.

Change-Id: I40e6f0ee132eb2d17d8ec66ba0e28566e8695d18
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10358
Haiku-Format: Haiku-format Bot <[email protected]>
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Jérôme Duval <[email protected]>
2026-02-26 11:08:16 +00:00
Augustin Cavalier 763cfd171b pthread_barrier: Utilize B_USER_MUTEX_DISABLED for efficiency.
This way we don't need to call barrier_unlock() in every thread
after exiting the wait loop, some syscalls. We can also avoid
spinning on the barrier mutex in "ensure_idle" (which is renamed
"ensure_none_exiting" for clarity), and instead lock it once and wait
for some thread to unblock all.

Overall, this strategy appears to be as much as 25% faster
than the previous, testing with pthread_barrier_test.

It seems the old design had at least one possible but very narrow
race in the "last one out" logic: if that thread was suspended
between the atomic_add() and the assignment of barrier->lock, and
all three other threads then ran past the add() in the next run,
then when the last-one-out woke up, it would clear the WAITING
flag spuriously.

This may help with #19876.
2026-02-25 14:47:29 -05:00
Amir Ramez f04af472b4 runtime_loader: fix heap address reservation
The runtime_loader previously used resize_area without properly
reserving address space first. This worked in most cases but failed when
ASLR was disabled or when address space was crowded.

* Add kHeapReservationSize constant (1MB) for virtual address space.
* Create area at exact address within reservation

fixes #19345

Change-Id: I952f11475ad041056833de6a248bfea4a9a2e397
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10360
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2026-02-25 14:59:06 +00:00
Augustin Cavalier a2443366d9 BFS: Propagate errors from CachedNode::InternalSetTo properly.
Otherwise, SetTo() might return B_OK when fNode is really NULL,
leading to crashes later when something tries to use the block.

Fixes #14762.
2026-02-24 21:05:21 -05:00
Augustin Cavalier 6084727f52 openbsd_wlan: Synchronize net80211, idualwifi7260, iaxwifi200 with upstream. 2026-02-24 20:21:36 -05:00
Augustin Cavalier 07dd1db8ff openbsd_network: Additions needed by newer WiFi drivers and stack. 2026-02-24 20:15:16 -05:00
Fruit De La Passion 69844c0039 s3: Enable Werror for s3 graphics driver.
* Fix warnings by adjusting format identifiers.
    * Activate Werror for s3
    * Part of ticket #9460

Change-Id: I086d3a226201c951d635b811e06384e9ee823291
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10359
Haiku-Format: Haiku-format Bot <[email protected]>
Reviewed-by: Jérôme Duval <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2026-02-24 08:29:03 +00:00
Kacper Kasper 63ad603268 Disable flaky/failing tests
* Adjust UnitTestResource rule to allow creating directory
  structures.

Change-Id: I109688d47a457015a7b35cda9616ec4b5f40e9c5
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10356
Reviewed-by: Kacper Kasper <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2026-02-23 18:31:03 +00:00