Commit Graph
68952 Commits
Author SHA1 Message Date
X512 29323c568f BPicture: fix DRAW_STRING command escapement_delta fields order
Change-Id: I4af041faf108c80c8232928b9bd39f43397aaada
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10586
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
2026-04-05 14:50:48 +00:00
Jérôme Duval ab25c31526 BInvoker: SetTarget() should return BMessenger constructor result
The BeBook indicates SetTarget() can return B_OK, B_BAD_VALUE or B_MISMATCHED_VALUES,
which are the result values of the BMessenger constructor.

Change-Id: I30f8aa84d4fb0e065a56555889a6fc3f3882d8c7
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10594
Reviewed-by: waddlesplash <[email protected]>
Haiku-Format: Haiku-format Bot <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2026-04-05 14:45:16 +00:00
PulkoMandy 040fad1a4a BButton: reset the colors in the Draw function
This is how BeOS does it, and changing it break things.

The regression was in 42df4f9689.

Previously this was broken in d2d239f4c4
and fixed again in de9c53f8f5.

Add a comment explaining that it is done this way for BeOS
compatibility, hopefully this will avoid future regressions.

Fixes #19803.

Change-Id: I03d9f0aa379b2a0c729e1e0a2b148d88c7949376
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10181
Haiku-Format: Haiku-format Bot <[email protected]>
Reviewed-by: nephele nephele <[email protected]>
Reviewed-by: John Scipione <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2026-04-05 09:14:29 +00:00
nipos e6806c471d WebPositive: Remove obsolete code for hiding tab close buttons
No longer needed after hrev59533

Change-Id: Iefcc9d1a4d1481a42a9abfb8174f886ff7735a0b
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10616
Haiku-Format: Haiku-format Bot <[email protected]>
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: nephele nephele <[email protected]>
2026-04-05 08:58:48 +00:00
Sam Roberts 00b9933841 efi/arm64: Don't bail out when mapping TTBR1 in map_range
mingw EDK2 gives us a memory map containing a one-page-long
entry that happens to be TTBR1. Because we were bailing out
in map_range, we couldn't update that page after entering
the kernel

Change-Id: Ie38fc593da268ab2a1f3ca98f3bffce36a6a6964
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10658
Reviewed-by: waddlesplash <[email protected]>
Haiku-Format: Haiku-format Bot <[email protected]>
2026-04-04 20:26:46 +00:00
Sam Roberts 777cfcfb8b arm64: PSCI+GICv2 SMP support
* SCTLR register definitions made 64-bit
* isb added after writing to SCTLR, to ensure we don't execute
  instructions requiring the MMU prior to the MMU being enabled
* GICv2 has per-cpu registers for IRQs < 32, so enabling or
  disabling those IRQs needs to be done on all cores
* MMU setup code in kernel and bootloader made per-cpu
* Signiture of arch_smp_boot_other_cpus is now the same on all
  architectures, with an addr_t page table

Change-Id: I13bef7ca4efc5504d643833664560a9a6a6a6964
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10649
Reviewed-by: waddlesplash <[email protected]>
2026-04-04 20:26:46 +00:00
Pascal Abresch 99b6da1e4a HaikuControlLook: Guard DrawCheckBox drawing state
Change-Id: I625c6379e05bfe6fffbcb5bc2cd77a58251febb7
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10650
Reviewed-by: waddlesplash <[email protected]>
2026-04-04 15:34:03 +00:00
X512 1d0b703ac1 app_server: do not add screen_where twice to B_MOUSE_IDLE message
Message contents before this fix:
```
- B_MOUSE_IDLE:
    $target: B_PREFERRED_TOKEN
    screen_where:
      - !BPoint {x: 297, y: 280}
      - !BPoint {x: 297, y: 280}
```

Change-Id: If7ea26be13d2eacb5762b246d076db6d051dfe6c
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10654
Haiku-Format: Haiku-format Bot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2026-04-04 15:24:26 +00:00
Autocomitter 2647539ea2 Update translations from Pootle 2026-04-04 08:13:34 +00:00
Philippe Houdoin cbad2174a9 TextSearch: in text only mode, disable grep file type checking
Without, grep would do its own file type check, which could clash
with the one done by our own FileIterator, based on MIME type.
Improve a bit overall performance.

Change-Id: Ib0ef814e89b076b93e2e7b215f079cad8137128f
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10630
Reviewed-by: nephele nephele <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2026-04-02 12:17:16 +00:00
X512 dc2b843979 BPicture: fix SET_TRANSFORM command storage
`BAffineTransform` type has vtable and can't be saved as-is to file.

Change-Id: I8540caad9e440f50db7f7810ae25750c60c37ec4
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10645
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
2026-04-01 16:23:39 +00:00
Máximo Castañeda f7016de7c4 BString: fix out of bounds access
Change-Id: I05ae135f10504c35ef9f5aebeb9ee0c7233afde1
2026-03-31 23:11:04 +02:00
John Scipione 75628f3bac Tracker: Move CreateTrashPose() to DesktopPoseView and simplify
Add AddPosesCompleted() override in DesktopPoseView.

Better Desktop checking (by use passed in param).

Add an IconAttrChanged() convenience method that checks for icon
attribute changes only. AttrChanged() calls this and then checks
a couple of other attributes.

Change-Id: Id7d399eaea3ca2f97083c93ebfb9157327ae4f0d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10638
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2026-03-31 17:04:07 +00:00
John Scipione 290c47d7bd Tracker: Rename to UpdateTrashIcon singular and simplify.
Change-Id: Id86039a4f02d18e78c243de6d743a6bb8399853a
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10637
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2026-03-31 17:04:07 +00:00
John Scipione 3d8e280ccf Tracker: Skip 0 capacity volumes from Trash.
(system & packages)

Change-Id: I62ac9c4496f357de00d3c1579f22b7fda2728ea4
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10636
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2026-03-31 17:04:07 +00:00
John Scipione 0f098ae692 Tracker: Check FSGetTrashDir() status, GetNextRef() is faster
Change-Id: I4f700a9170bc86aea73e4f9959ef05d1a4ddd6da
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10635
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
2026-03-31 17:04:07 +00:00
John Scipione b283cb27dc Tracker: Foregin => Foreign typo fix, remove old defines
Change-Id: I01ca540abaf62e5cd9cea393eec94594fc5f0d91
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10634
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2026-03-31 17:04:07 +00:00
John Scipione 3c0110ad24 Tracker: sbuf => statbuf used elsewhere, check GetStat() status.
Change-Id: I08515297712f1b36a513d944847c1383ba4e8158
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10633
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2026-03-31 17:04:07 +00:00
John Scipione 5187da4c76 Tracker: trash_dir to trashDir and call FSSetPoseLocation()
Set status_t appropriately in FSSetPoseLocation()

Change-Id: I7cadc4ff1727906ec44992c74d2f3c057ab1cc5f
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10632
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2026-03-31 17:04:07 +00:00
John Scipione 2d172c081f Tracker: Style issues related to Trash pose
Change-Id: I33dda6b353e91ec3c34835ac955e8946a4d203c1
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10631
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
2026-03-31 17:04:07 +00:00
John Scipione 3180756b92 Tracker: Make Trash pose invisible on boot volume.
This means that the Trash icon will no longer appear
on the boot volume, only on Desktop. It's still there
just invisible and should not have been visible.

Change-Id: I1c95b39667af1603d8114b29185a352b047787cb
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10421
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
2026-03-31 17:04:07 +00:00
Sam Roberts f8895f962c libroot/arm64: Don't change jmp_buf pointer in setjmp & longjmp
Previously, we would increment the jmp_buf pointer in x0
while storing registers and then pass that adjusted pointer
to __setjmp_save_sigs, which would clobber whatever
happened to be after the jmp_buf

Change-Id: I5c466dbc6aa4fa9c69535ad5a5044af46a6a6964
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10642
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
2026-03-31 17:03:40 +00:00
Augustin Cavalier 6e55e6942f pthread: PTHREAD_RECURSIVE_MUTEX_INITIALIZER is non-POSIX.
So add the _NP suffix like glibc does.

Pointed out by sortie.
2026-03-30 20:44:36 -04:00
Augustin Cavalier cc9cae1908 BString: memrchr is nonstandard and not available on macOS.
We use BString in the build platform, so we need it to work
everywhere. Add a fallback for non-Haiku targets (though glibc and
others do have memrchr and so could keep this, if we added some
more logic here.)
2026-03-30 19:21:33 -04:00
Augustin Cavalier d6c0df2394 kernel/guarded_heap: allocate_meta may fail with certain flags set.
May fix #20014.
2026-03-30 18:33:23 -04:00
Augustin Cavalier 75b91674e9 BString: Use memchr and memrchr to optimize two Find routines.
All BString tests are still passing.
2026-03-30 18:30:32 -04:00
Augustin Cavalier 53b69c0037 driver_settings: Use strchrnul to skip comments.
More optimized than just the simple loop.
2026-03-30 18:21:49 -04:00
Sam Roberts bace3a82c5 arm64: Handle signals after all types of interrupts
This is what other architectures do :)

Previously, we only handled signals after system 
calls, which could result in a funny sequence of events:
- Thread gets spawned with spawn_thread
- Thread gets resumed with resume_thread, which sends
  SIGNAL_CONTINUE_THREAD
- Thread's very first syscall is a read(), which promptly
  gets interrupted by SIGNAL_CONTINUE_THREAD and the thread
  has no idea why, and doesn't bother to read() again since
  it never expected to receive a signal
^^^ PtyReader fell victim to this and Terminal was broken

Change-Id: I32c4c73be21c60cab97add2bb7052dc56a6a6964
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10608
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2026-03-30 22:16:51 +00:00
Sam Roberts 6e590a51a2 arm64: Miscellaneous kernel fixes
* Ensure some bits in TCR have known values, since the bootloader
  might have configured something weird which causes problems for us
  (such as configuring a virtual address space that's smaller than
  we expect).
* ==NULL check in VMSAv8TranslationMap::UnmapPage was backwards
* Don't receive the number of syscall parameters from userspace. We were
  previously reading twice as many arguments as needed when handling
  a syscall.
* Save FP/SIMD registers as early as possible, since we can't know when
  they might get used
* Reset iframe stack index to 0 upon arch_thread_enter_userspace.
  Otherwise, when we exec, we push an iframe and never pop it off
  again

Change-Id: I4bc7dcc9303b9103a97226cd7ece4c9b6a6a6964
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10607
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
2026-03-30 22:16:51 +00:00
Sam Roberts e78a97d381 arm64: Add timekeeping
Change-Id: Idc64a00e4dcc787e35afc560acd06a606a6a6964
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10606
Reviewed-by: waddlesplash <[email protected]>
2026-03-30 22:16:51 +00:00
Sam Roberts 1b4044fde1 arm64: Add signal handling and forking
Change-Id: I8fd41bf5c540bcb2b9347aae47ad8bb86a6a6964
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10605
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2026-03-30 22:16:51 +00:00
Sam Roberts 7981c1d1c7 arm64: Add runtime_loader support + TLS
Change-Id: Ic462c6b08e6949039457e6141c83468e6a6a6964
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10604
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
2026-03-30 22:16:51 +00:00
Augustin Cavalier 40205ec46a kernel/cache: Add test for #18390 and related issues.
Change-Id: I873df21c54d4df4ea85904eabd186a36e55e13d9
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10629
Reviewed-by: waddlesplash <[email protected]>
2026-03-30 22:11:53 +00:00
Augustin Cavalier 28e6329e8e kernel/vm: Add assert to VMCache::MarkPageUnbusy.
Change-Id: Iec29bdfa5f0a25d9f255c6eee1937bc7c9cc4c3a
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10628
Reviewed-by: waddlesplash <[email protected]>
2026-03-30 22:11:53 +00:00
Augustin Cavalier 5554f0b829 kernel/vm: Fix a TODO about page I/O leaving pages in ACCESS state.
It turns out PAGE_ACCESS assertions could be tripped in other cases,
e.g. when resizing a cache while pages were being read in. So,
properly unset ACCESS (and just leave 'busy' set) in the places
where pages are read in, and re-enable the check.

Change-Id: I22ac5c8cb432c87613bb85e82703a0c1aeb55d86
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10627
Reviewed-by: waddlesplash <[email protected]>
2026-03-30 22:11:53 +00:00
Augustin Cavalier 05772630b8 kernel/file_cache: Recheck size in the do_cache_io loop.
Since we unlock the cache at various points in this loop,
we need to periodically recheck the size here, as otherwise
we might try to insert pages past the end.

This amends 4f8eaff87f. Re-tested
using the case described in that commit.

Change-Id: Id65e309f986a9b7f3e701d2b99c4f318a4eefbd3
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10626
Reviewed-by: waddlesplash <[email protected]>
2026-03-30 22:11:53 +00:00
Augustin Cavalier b37e0a513d kernel/vm: Clear busy_io along with the other page flags.
Change-Id: I796e6d01678e46eda9815c1c290b56975b6dbdfe
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10625
Reviewed-by: waddlesplash <[email protected]>
2026-03-30 22:11:53 +00:00
Augustin Cavalier 5eaf967479 kernel/cache: Use vm_page::busy_io in the file_cache.
This allows the VMCache to remove these pages pending the I/O
completion.

Combined with the following commits, confirmed to fix #18390.

Change-Id: I9630a00d70a9d6ac5b36e6de70475a6032390806
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10591
Reviewed-by: waddlesplash <[email protected]>
2026-03-30 22:11:53 +00:00
Augustin Cavalier 2b9d1bb9c2 kernel/vm: Rename vm_page::busy_writing to busy_io.
This way, it's clear that it can be used for more than just writing.

Change-Id: Ifd0928f0e8ec7b5eeb312795ceaae6e3fd266257
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10590
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
2026-03-30 22:11:53 +00:00
Augustin Cavalier dcf4948bff kernel/vm: Add better handling for busy-writing pages on cache resizes.
Previously, busy-writing pages just stayed in the cache until
I/O finished. This wasn't right, as they should've been unmapped
(and removed) immediately, as a TODO in the PageWriteWrapper noted.

Now they are, and they're moved into a queue on the cache pending
the I/O completing.

This paves the way for fixing #18390.

Change-Id: I51778ba1cfc1d26f34dd44f1ee293381be59937f
Reviewed-on: https://review.haiku-os.org/c/haiku/+/8627
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2026-03-30 22:11:53 +00:00
Augustin Cavalier 15594f62fe DoublyLinkedList: Make DoublyLinkedListCLink more useful.
Before, it just used a hardcoded Element::link member. Now,
it uses whatever one is specified based on the template
arguments.

No source compatibility breakage intended.

Change-Id: I62128921766df0b705488eb64402f902334f2ed0
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10589
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
Haiku-Format: Haiku-format Bot <[email protected]>
2026-03-30 22:11:53 +00:00
nipos 397b2e8189 ControlLook: Lock minimum scrollbar size to 14px, the size with default font size
Fixes #20010

Change-Id: I64e7be52e4b4e71a9acfe675133de8e562f6bb66
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10618
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: nephele nephele <[email protected]>
2026-03-30 18:33:11 +00:00
Humdinger ec149069ce Add "Label as…" Tracker add-on to image
Change-Id: I25c47384853b5f7a23bfacca3bfe5ce06cd2177a
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10614
Haiku-Format: Haiku-format Bot <[email protected]>
Reviewed-by: humdinger humdinger <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2026-03-30 15:33:35 +00:00
SED4906 634373e466 runtime_loader: define MAX_PAGE_SIZE correctly on arm64
This fixes an issue where map_image returns B_BAD_DATA.

Change-Id: I11efbb1c1d740474f62c37c0069a76b97aeb8bc4
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10602
Reviewed-by: Sam Roberts <[email protected]>
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
2026-03-28 20:04:38 +00:00
SED4906 91f3ac4f96 boot/arm64: Map pages as Inner Shareable by default
This prevents a hang when the kernel tries to remap
its own pages later, during a break-before-make on
what appears to be a page containing jump vectors.
(In the exception frame, ELR points there.)

Change-Id: Idd516c73a7702c2995fe914204d587df6fc713fc
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10600
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Sam Roberts <[email protected]>
2026-03-28 19:18:25 +00:00
Máximo Castañeda d60b573d4d bootloader: quote files in blocklist
As some valid file characters can be parsed as part of the driver
settings syntax.

Fixes: #20001
Change-Id: Ia0ce32fc27737cd2d5528560e114a1e71aa3fa53
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10599
Reviewed-by: waddlesplash <[email protected]>
2026-03-28 12:59:20 +00:00
Nathan Patrizi 605a1f4f4e Tracker: Prevent bringing windows to foreground when not dragging
* Prevent bringing Tracker windows to the foreground when moving the mouse
  over them with a button held but not actually dragging a file.
* Fix a regression caused by changing window->Dragging() calls to
  IsDragging().

Fixes #19683

Change-Id: Ife55885e72d4682b857baf4103d144f49b765693
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10601
Reviewed-by: nephele nephele <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
2026-03-28 12:32:27 +00:00
Autocomitter f45785201d Update translations from Pootle 2026-03-28 08:14:04 +00:00
Máximo Castañeda 07fb92c15e Tracker: fix live changing of addons shortcuts
Change-Id: I8f5eca119392e316501bbbff13ca53b705d15919
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10353
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Máximo Castañeda <[email protected]>
2026-03-27 18:48:00 +00:00
Augustin Cavalier d22a7a3355 kernel/debug: Allow quotations to pass through early safemode settings.
The guarded heap override logic wants to see them at least.

Change-Id: I89c5c7a7b03e52f4bc42d71cba66775c213256e9
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10597
Reviewed-by: waddlesplash <[email protected]>
2026-03-27 18:23:31 +00:00