Commit Graph
69151 Commits
Author SHA1 Message Date
Alexander von Gluck IV 0a0555daeb AGENTS.md: AI-generated contributions are forbidden.
Change-Id: Ic12bfae841be4fc28f9d507da2facd8e6f2bc033
Reviewed-on: https://review.haiku-os.org/c/haiku/+/11180
Reviewed-by: Alexander von Gluck <[email protected]>
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
2026-07-02 14:34:37 +00:00
Augustin Cavalier 8bd9d9bb9b app_server: Fix lock order inversion in HWInterface cursor routines.
Fixes the hang reported in #2539.
2026-07-01 12:30:22 -04:00
Augustin Cavalier 0e76803f9e vesa: Update the kernel framebuffer information when changing modes.
We need to update it even if we don't remap. Otherwise the KDL
screenmode will be wrong.

Noticed in #2539.
2026-07-01 12:29:38 -04:00
Augustin Cavalier 59e22cef16 bootloader: Restore activation of CR0 PAGING bit in init_page_directory.
Otherwise it may not be activated until much later.

May fix #20155.
2026-06-30 16:56:55 -04:00
Augustin Cavalier c0317b3e7b kernel: Revert UserTimer deletion changes.
This reverts a small portion of f5842905e3.

I added these asserts instead of the deletions to hedge against
the Team/Thread reaching this point with timers still active.
But it seems that doesn't happen, while if thread init fails
due to OOM, we have the default timers still present, which need
to be deleted.

Fixes #20154 and #20148.
2026-06-30 16:37:01 -04:00
Augustin Cavalier ad6cb5efd3 app_server: More fixes to screen configuration management.
* Retrieve info from the stored configuration in GetScreenMode &
   GetScreenFrame if needed.

 * Use the stored configurations in _SetCurrentWorkspaceConfiguration.

The last part seems to fix #20136.
2026-06-30 16:21:38 -04:00
Augustin Cavalier 41ca6fdabd network/unix: Return as soon as we've written the minimum data.
Otherwise we could block forever if the data size is
larger than the buffer size. Partial writes are an
expected behavior of stream sockets, so this should
not cause any other problems.

Fixes #20163.
2026-06-30 14:55:23 -04:00
Augustin Cavalier 95703fb82d ramfs: Update file times on resize even if the size stays the same.
Part of #20164.
2026-06-30 14:01:06 -04:00
Augustin Cavalier 3970f91248 ramfs: Coding style cleanup to File, no functional change. 2026-06-30 13:55:03 -04:00
Augustin Cavalier e079fff682 file_systems/bindfs: Pass the correct node to the underlying FS in rename().
We were passing our own fs_vnode, not the underlying filesystem's.

I guess this was just never tested, because it would've always crashed?

Fixes #20156.
2026-06-30 13:38:21 -04:00
Philippe Houdoin 49f62bc172 Add vector icons for MS Office files, by zuMi
Also add a generic File_Diagram derived from zuMi's MS Visio diagram icon.

Change-Id: I1208c8cf0af03d72baf5a23138c77fe4b0f3f451
Reviewed-on: https://review.haiku-os.org/c/haiku/+/11198
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2026-06-30 15:45:53 +00:00
Sam Roberts 6db74d85be efi: Base framebuffer info on selected video mode
Fixes regression introduced in c216360337
where the framebuffer info passed to the kernel came from
whatever video mode was highest numbered, rather than what
was actually selected.

Should fix #20161

Change-Id: I06c800bd8e941ed7f6b20998c1ff66cd6a6a6964
Reviewed-on: https://review.haiku-os.org/c/haiku/+/11197
Reviewed-by: waddlesplash <[email protected]>
2026-06-30 02:02:43 +00:00
Philippe Houdoin 94270cfe47 mime_db: add detection of Microsoft Office XML Word, Excel, PowerPoint, Visio and Access files
Vector icons by ZuMi, thanks!

Expand the sniffing size up to 8k, as the zip file content layout can be very variable.
Now it works with all the available samples Microsoft Office 2007+ files I can put my hands on.

Change-Id: I806a66dd3d29bb47693759ef2270b482a8d7cd69
Reviewed-on: https://review.haiku-os.org/c/haiku/+/11182
Reviewed-by: Adrien Destugues <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2026-06-29 17:07:28 +00:00
Autocomitter 31a4743fbc Update translations from Pootle 2026-06-27 08:18:19 +00:00
Humdinger 2b75ca9e1c Changed strings in Workspaces and Devices
* The GUI strings in the Devices app were inconsistent case-wise.
  Going for all sentence casing. "None" and "Unknown" look better
  as lower case, which is normally used elsewhere in Haiku.

* Workspaces usage:
  - "movement" is a bit coprolitic IMO. Let's go with "direction"
    instead.
  - "autoraise" depends on the position near the screen edge of the
    mouse pointer, not the window itself. The text could be even
    more precise, but we should try to be brief.
  - The "+|-" switch fits better to the "workspace" parameter, as it
    increases the workspace number, instead of a "movement" or
    "direction".
  - Fixed direction "top" to "up".

Change-Id: If26d2b1e0596e911fea06609c44fccff2086ca8d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/11170
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
2026-06-25 06:51:33 +00:00
Leo Rouleau 3e8d044d12 Devices: Move documentation to docs/develop/apps
Change-Id: I2ff31810df1a4afc16533d3820af61a1d2a8ccd1
Reviewed-on: https://review.haiku-os.org/c/haiku/+/11172
Reviewed-by: Adrien Destugues <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2026-06-25 06:50:05 +00:00
Máximo Castañeda bbec8f4fad app_server: blend last point in bilinear bitmap painting
We cannot just copy it in alpha overlay mode.

Change-Id: Icf494a1b1edc68a79b4298030be999fdf3a30c9a
Reviewed-on: https://review.haiku-os.org/c/haiku/+/11179
Haiku-Format: Haiku-format Bot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2026-06-24 21:18:36 +00:00
Máximo Castañeda 6c533ba713 HaikuDepot: initialize new pointer after 9ca0b903
Fixes: #20068
Change-Id: Iddbaa3e8ab8c26024f4a03decfbb44adc7f71452
2026-06-24 18:48:29 +02:00
Máximo Castañeda e923085091 BNetworkAddress: fix Equals for AF_LINK addresses
Change-Id: I1e1e4a1ba39d10a82243165e29792cb90c03b45b
2026-06-24 13:00:59 +02:00
Augustin Cavalier ac8b58038a network/stack: Use DoublyLinkedList<> instead of struct list for data_nodes.
Includes better assertion checking (and allows more things to be
inlined.)
2026-06-23 15:13:19 -04:00
Augustin Cavalier 2221fefb84 Tracker: Rework the file panel initialization locking changes.
* Don't unlock in ContainerWindow's constructor; instead leave
   the BWindow locked, as the BWindow constructor itself does.

 * Call Run() at the end of TFilePanel's constructor. This way,
   the TFilePanel will be in the state existing applications expect
   it to be after the constructor runs (i.e. running and not locked),
   while also performing all necessary initialization before actually
   doing that, to avoid races.

 * Drop TFilePanel::Show as it's not needed now.

 * Revert changes to BFilePanel::Show as they're now not neede.

I retested #19499 with this change, and couldn't get it to reproduce
(while it reproduced easily with Run() called at the top of TFilePanel()
followed by the Lock/Unlock scheme.)

This should be a much simpler solution that hopefully will cause no
regressions in any of #19499, #20125, #20128, #20131, #20144.
2026-06-23 15:08:03 -04:00
Augustin Cavalier eabae69d20 Tracker: Reacquire the lock in TFilePanel::Show.
See inline comment.

Fixes #20144.
2026-06-23 14:41:23 -04:00
Augustin Cavalier dbaf648047 app_server: Properly lock the HWInterface in cursor routines.
A comment in the header says the cursor handling functions "do their
own Read/Write locking", but they didn't actually lock the framebuffer.

Should fix #20141 and #2539.
2026-06-23 12:03:13 -04:00
Philippe Houdoin 3136245cbf libprint.a: check the transport add-on file actually exists before trying to load it
This should fix runtime_loader "cannot open file" errors logged into syslog because every
standard locations were attempted without checking for actual existance of a file to
attempt to open.

There messages were misleading users about their criticity.

Change-Id: I621b122a4eee1cc7ad2ff1c03f5146809657e7d4
Reviewed-on: https://review.haiku-os.org/c/haiku/+/11175
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
2026-06-22 18:59:45 +00:00
Augustin Cavalier 2b6e9091da kernel/slab: Fix KDEBUG check.
KDEBUG itself is an expression already.
2026-06-22 14:52:02 -04:00
Augustin Cavalier bc3624c0a9 kernel/vm: Fix typo in comment. 2026-06-22 14:51:41 -04:00
Augustin Cavalier 22d9a23207 kernel/device_manager: Add some missing checks in DMAResource::TranslateNext.
* Ensure memory is locked before doing virtual->physical translation.

 * Make sure get_memory_map_etc actually returned an entry.

I didn't see either of these trip in some basic testing though.
2026-06-22 14:51:27 -04:00
Augustin Cavalier 7bee547af0 kernel/x86: Assert locked in X86VMTranslationMap64Bit::Map. 2026-06-22 14:50:29 -04:00
Máximo Castañeda d865437549 bluetooth: there may be no active local device
Which would lead to NULL dereference.
Related: update friendly name field on device change.

Fixes: #20137
Change-Id: I909501017f92952d97791ff88202ace12ac5623a
Reviewed-on: https://review.haiku-os.org/c/haiku/+/11167
Haiku-Format: Haiku-format Bot <[email protected]>
Reviewed-by: Máximo Castañeda <[email protected]>
Reviewed-by: Mohammed R. Attia <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2026-06-20 21:39:35 +00:00
Autocomitter 1a38566ed4 Update translations from Pootle 2026-06-20 08:17:49 +00:00
Andrew Lindesay 9ca0b9036a HaikuDepot: verify clock and auth
This change will cause HaikuDepot to communicate
with the server on start-up to obtain runtime
information.

Included in the information is the server's
current timestamp. This allows the client to then
validate there is not too much drift between the
server and the client.

The primary driver for this change is to pickup
the future transition from the server allowing
nickname+password authentication over to only
supporting SSO. Once the server no longer supports
nickname+password auth then the UI can disable it
and the users of the legacy HaikuDepot versions
can nevertheless continue to use the rest of the
application OK.

Change-Id: I203102c2266f67115f4b0290f1909346701f79e4
Reviewed-on: https://review.haiku-os.org/c/haiku/+/11047
Reviewed-by: Andrew Lindesay <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2026-06-19 22:47:00 +00:00
Augustin Cavalier 719b0ce380 kernel/vm: Consolidate and add an assert in vm_page. 2026-06-18 18:06:09 -04:00
Augustin Cavalier 59fb06ae9d kernel/vm: Overhaul set_memory_protection's handling of caches with multiple areas.
* Properly handle copy-on-write in the case of consumers, same as
   set_area_protection. This seems to fix most of the remaining problems
   in boehm-gc's mprotect-VDB.

 * Do not call set_area_protection if the whole range is covered,
   as it tries to acquire address space locks, which can lead to
   deadlocks: that was the cause of #20138. Instead, handle changing
   the protection of all pages in here.

 * Don't unmap pages of lower caches; just don't allow writing to
   those pages. This allows us to avoid unlocking the translation map,
   and also should mean a lot fewer page faults, hopefully improving
   performance.

Fixes #20138.
2026-06-18 18:06:09 -04:00
Augustin Cavalier bd8dfa4693 kernen/device_manager: Add a missing clear of an area_id.
Probably not needed, but doesn't hurt.
2026-06-18 18:06:09 -04:00
Augustin Cavalier 7214df8d3c kernel/slab: Keep ACCESS page state during mapping.
We don't assert this inside Map() at present, but I added one there
for debugging purposes, and this is one of the few places that tripped.
2026-06-18 18:06:09 -04:00
Augustin Cavalier 61445814f2 kernel/vm: Allow calling AddressSpaceWriteLocker::SetTo with something already set.
Other Lockers behave this way, and the behavior will be needed in
_user_set_memory_protection.
2026-06-18 18:06:09 -04:00
Augustin Cavalier 2e98b42157 kernel/vm: Add some more ASSERT_WRITE_LOCKED assertions. 2026-06-18 18:06:09 -04:00
Augustin Cavalier 40c254f71c kernel/locks: Allow passing const rw_locks to ASSERT_READ_LOCKED_RW_LOCK. 2026-06-18 18:06:09 -04:00
Sam Roberts 6a3298c918 BStringList: Invoke qsort_r with different argument order on macOS
Change-Id: I542be695bf42827f0ac8fde403bcbb5c6a6a6964
Reviewed-on: https://review.haiku-os.org/c/haiku/+/11147
Reviewed-by: waddlesplash <[email protected]>
2026-06-17 18:02:41 +00:00
Sam Roberts c1bea23ef3 arm64: Correct MaxPagesNeededToMap computation
This would underestimate the number of pages needed to map an address
range resulting in too-small page table page reservations, causing a crash

Change-Id: I34513621b36ecd60de71e128912950b66a6a6964
Reviewed-on: https://review.haiku-os.org/c/haiku/+/11129
Haiku-Format: Haiku-format Bot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2026-06-17 18:01:51 +00:00
Sam Roberts 1938377e5d arm64: Synchronize icache when mapping pages & changing page protection
Change-Id: Ib11b46fa0003e6a3a68154b8109c5d6a6a6a6964
Reviewed-on: https://review.haiku-os.org/c/haiku/+/11125
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
Haiku-Format: Haiku-format Bot <[email protected]>
2026-06-17 18:01:51 +00:00
Sam Roberts dad765a43b arm64: Track per-cpu MPIDR in arch_cpu_info
Apple's interrupt controller needs to know the MPIDR of the
CPU you want to send an ICI to

Change-Id: I81d1c25d5977140aaa4349fa83b7235e6a6a6964
Reviewed-on: https://review.haiku-os.org/c/haiku/+/11124
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2026-06-17 18:01:51 +00:00
Sam Roberts c216360337 kernel/interface: 30-bit RGB pixel format support
On Apple ARM platforms, iBoot sets up a 30-bit framebuffer

Change-Id: I6c03937303a3363fde511c8b8b7f8fd66a6a6965
Reviewed-on: https://review.haiku-os.org/c/haiku/+/11128
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
2026-06-17 18:01:51 +00:00
mohammedrattia a309dd6890 bluetooth: adding a functioning cancel button to the Inquiry Panel
- This is a mandatory feature in HCI Implementation Conformance Statement (ICS).
- The inquiry cancel logic was implemented in Haiku, but wasn't linked to the inquiry panel.

Change-Id: Ic827b0a09979a078bed5b9f99a8541dc319ac449
Reviewed-on: https://review.haiku-os.org/c/haiku/+/11106
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
2026-06-17 17:47:53 +00:00
Jérôme Duval 31c245ae13 Workspaces: allow switching by moving with Workspaces [left|right|down|up]
* -i to dump the layout
* Idea taken from workspacectl

Change-Id: I8d0c4abdffc63db14f3a4ecd590439fbbfe38ce4
Reviewed-on: https://review.haiku-os.org/c/haiku/+/11127
Reviewed-by: Jérôme Duval <[email protected]>
2026-06-16 04:57:27 +00:00
Jérôme Duval 528bb58299 BStringList: add Sort() with custom functions
fix #9268 and a TODO

Change-Id: I3148b32221f34f5fb270d8892a6fc80f69ba2e29
Reviewed-on: https://review.haiku-os.org/c/haiku/+/11104
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2026-06-15 14:49:00 +00:00
Augustin Cavalier 22a2180aa5 app_server: Always store the current configuration when adding screens.
Should hopefully fix #20136.

Change-Id: I29730bdb9bd9ceaaa68028f00797cc275ecd4629
Reviewed-on: https://review.haiku-os.org/c/haiku/+/11107
Reviewed-by: waddlesplash <[email protected]>
2026-06-14 02:34:18 +00:00
Augustin Cavalier 2a0ccdfd34 app_server: Handle brightness more similarly to other screen configurations.
Untested as I don't have hardware with supported brightness control,
but the changes are relatively straightforward.

Should fix #20134.

Change-Id: I45b78bc8006a54cc5ba4f65a026df99401c621b5
Reviewed-on: https://review.haiku-os.org/c/haiku/+/11083
Reviewed-by: waddlesplash <[email protected]>
2026-06-14 02:34:18 +00:00
mohammedrattia 1613469e57 bluetooth: fix "Invalid Arguments" error while pairing from Haiku
- Running the function RemoteDevice::Authenticate() caused "Invalid
Arguments" error because packetType had both ACL and SCO types while
the command parameter require only ACL packet types.
- Thus, bits 5, 6, and 7 should be 0 becuase they're for reserved for
future use.
- This was tested on Haiku to pair with an Android phone.

Change-Id: I24a338a2494bfaaab056abf73f1c946179d6b606
Reviewed-on: https://review.haiku-os.org/c/haiku/+/11105
Tested-by: Commit checker robot <[email protected]>
Haiku-Format: Haiku-format Bot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
2026-06-13 08:09:27 +00:00
Leo Rouleau 315411d839 Devices: extend dm_wrapper and new layout
Shows Device path in /dev if used and Driver used. New tree-view layout for Basic
Information and Attributes separated.

Changes:
- Added new attribute in device_manager to get the path of device
- Tree view layout that separates the Basic Information of a device,
  such as name or driver used and the Attributes that shows the rest
- new call in dm_wrapper
- new case in device_manager
- logic to add the new attributes as Device path and Driver used in
  DevicesView.cpp

Change-Id: I05eaf5d7cf9e3b5ec8e9f1e0ac5c6cf7561ccde5
Reviewed-on: https://review.haiku-os.org/c/haiku/+/11012
Reviewed-by: Kacper Kasper <[email protected]>
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Jérôme Duval <[email protected]>
2026-06-12 20:16:56 +00:00