Commit Graph
10372 Commits
Author SHA1 Message Date
X512 647aba7574 ServerLink: move Read*/Attach* method implementations to LinkSender/Receiver
Change-Id: Ib4dec3348b1438bbdfbaf18146d8aebb1978c39c
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9631
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2025-09-08 16:42:25 +00:00
Augustin Cavalier bc50ada648 kernel/slab: Use FIFO instead of LIFO queueing for the object cache.
This should make use-after-frees more likely to be caught by the
standard paranoia facilities (and make them less likely to be
exploitable as memory will take longer to be reused.)
2025-09-03 15:41:58 -04:00
Jérôme Duval 0937305b84 gnu/sched.h: fix CPU_COUNT on gcc2 C89
Change-Id: Ia193e342d2bbac8060189f062e35aca47426444e
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9626
Reviewed-by: Adrien Destugues <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2025-09-03 15:10:23 +00:00
Joachim Mairböck b54f586058 sys/wait.h: add WCOREDUMP as alternative to WIFCORED
As this is part of POSIX since 2024, WCOREDUMP is the new default name.
WIFCORED is retained under _DEFAULT_SOURCE.

Fixes #19735.

Change-Id: Ic3f65e47b436bae92fe82ef73c3094be6bc9f29d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9622
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2025-09-01 16:33:57 +00:00
Jérôme Duval e1e1c75a1f gnu/sched.h: fix CPU_* definitions to match glibc
add CPU_COUNT and cpu_set_t

Change-Id: I9b92cab27a8bb4fda71a99721801013647e02588
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9618
Reviewed-by: Jérôme Duval <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2025-09-01 08:00:26 +00:00
Augustin Cavalier fb6c279a24 kernel/x86: Use MWAITX or TPAUSE in arch_debug_snooze, if available.
These instructions are only available on more recent CPUs (MWAITX
on AMD since around 2015 or so, TPAUSE on Intel since around 2020.)
They allow idly waiting on the TSC even when interrupts are
disabled.

Most hypervisors do not have these available (KVM does provide
them, though not on all configurations), but on bare metal this
should make a nice difference to KDL power consumption: I tested
with a Ryzen 3700X, according to my UPS (so including monitor
and peripherals) the system used ~106 W at idle, 160 W in KDL
before this patch, and 125 W in KDL after it.

Change-Id: Id7a22ecd33f3fc005b2c312f945dc3cd364e96fa
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9604
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
2025-08-25 20:16:16 +00:00
Augustin Cavalier 2082e1b86e kernel/debug: Introduce arch_debug_snooze() and make use of it.
The idea is to add a facility that will use less CPU than
the loops we currently use. The default implementation just
calls spin(), which is rdtsc+pause. This already may save
some power compared to what we previously did, which was to
re-check serial ports, PS/2, etc. every single loop in
the debugger, broken up only by "pause".

Change-Id: Ie421adae5c25ad6ae0c266d1d28c2ea7b81ae465
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9603
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
2025-08-25 20:16:16 +00:00
nipos 6de89c6cdf BMCMenuBar: Add hover effect, like on buttons
Fixes #19671

Change-Id: I2ef001666ac4fa88364c7c5d5c95b0d96d5a090a
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9605
Reviewed-by: Stefano Ceccherini <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2025-08-25 14:33:15 +00:00
X512 03d4f24535 BPicture: fix clipping region storage
Part of #1133.

Change-Id: I0d727056dd7302f5a320987b83a27c9571e9684f
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9609
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
2025-08-25 14:32:39 +00:00
Augustin Cavalier 4df505d911 kernel/EntryCache: Use a hash table with atomics for insertions.
This massively cuts down on lock contention in Add(), since insertions
only acquire a write-lock in the case where a generation rolls over,
same as Lookup() does.

"git status" in buildtools, cold disk cache in a 4-core VM, seems about
the same, maybe slightly slower (~0.5s seemed typical, out of 20-21s),
while with a hot disk cache it's much faster: ~9.8s -> ~2.4s. Compile
performance seemed about the same.

Change-Id: Ia73f35fbbad3b3ac9ed783ea38cb8e2cb9818b5b
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9580
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
2025-08-14 00:40:41 +00:00
Peter van Dijk dc7e982148 intel_extreme: add support for 8086:5a85 Apollo Lake GT1 (Intel HD500)
plus PCH ID for brightness control

plus untested 5a84 entry

Change-Id: I2bc63390f932f52b47324be9e13366a26f8cec2b
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9578
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
2025-08-07 06:37:08 +00:00
Jim906 22375f018d fat: Enable 4096-byte sector sizes
* Correct code that only works when sector size is 512 bytes.
* For devices with 4096-byte sectors, use 4096 as the size of blocks
  in the block cache, and as the unit of IO requests in FAT
  operations.
* Some values continue to be stored in 512-byte units, regardless of
  sector size, in keeping with the original BSD driver.
* Fixes #19686.

Change-Id: I8fa77aeab1bc93a5465134018c3113afb2a80b8b
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9542
Reviewed-by: waddlesplash <[email protected]>
2025-08-04 15:06:48 +00:00
X512 2a70c45937 TokenSpace: fix token wraparound
Fix bug that allocating/freeing a lot of BHandler cause token wraparound
and overwriting existing assigned tokens.

Change-Id: I12527126644bca1793a8475dc487f131e6f83437
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9533
Reviewed-by: waddlesplash <[email protected]>
2025-08-03 22:50:25 +00:00
Peter van Dijk 00c891c0c8 sys/time.h: Add TIMEVAL_TO_TIMESPEC and TIMESPEC_TO_TIMEVAL.
They're found in this header on the BSDs and Linux.

Change-Id: Ic822138dbedb046f85c5d4e92bf393a4496bd6a1
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9556
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2025-08-03 22:47:57 +00:00
John Scipione e32d782cb4 Tracker: Allow draggable container icon on Root, Trash and Printers
Use new DraggableContainerIcon name when invalidating icon.

Create a ShouldHaveDraggableFolderIcon() method on BContainerWindow
to consolidate the gating logic to a method.

We alert if you try and copy, move or create link to any of these
directories, however you may drag the icon in some instances such as
to change the directory in a file panel or to open the directory up
in FileTypes. You may create a link to the printers directory.

Set the Printer icon on the printers directory.

Fixes #3385

Tracker: Disks menu in CountView

* Open Disks directory on click.
* Skip volumes with no capacity (e.g. system, config) from
  Root and Desktop menus (still shown in Home and volumes though).
* No Trash on volumes, add only to Desktop.
* Declare some variables outside loop.
* Rename originatingWindow to source.

Fixes #3549

Change-Id: I66318d2485a5a8405f5459c355a467f34e19ecc5
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9499
Reviewed-by: John Scipione <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2025-07-30 04:07:05 +00:00
John Scipione c16a8cad1a Storage Kit: Add support for FAT16 type
Change-Id: I626550b83179e5ad429ed7b8ebc6b8d320446cbe
Reviewed-on: https://review.haiku-os.org/c/haiku/+/8959
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
2025-07-21 10:46:06 +00:00
PulkoMandy 11adda21aa Expose more info in signal handler mcontext
Add the following:

- CS and SS registers
- For 32bit: DS, ES, FS, GS registers (on 64 bit these are not part of
  the iframe structure)
- CR2 register (fault address)
- Hardware interrupt number
- Hardware error code

The hardware error code, interrupt number and fault address are not
modifiable by the signal handlers. The other registers can be modified.

This is used for example in dosemu to intercept errors from JIT generated
code and resume execution. Wine can also make use of it.

In order to not change the size of struct mcontext, these are inserted
in a region of the FXSAVE structure that is available for the OS to
store some data (as documented by Intel) and that we didn't use before.

Fixes #7867

Change-Id: Ia3c27a2c728e32995196c646c1d78adf40e793ed
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9456
Reviewed-by: Adrien Destugues <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2025-07-19 18:00:39 +00:00
Augustin Cavalier 801c025d7b file_systems/QueryParser: Invoke ConvertValue in CalculateScore.
We need fSize to be set for operator scoring.

Also, use operator scoring for GREATER_THAN and GREATER_THAN_OR_EQUAL.

Fixes a KDL reported in #19677.
2025-07-12 15:48:14 -04:00
PulkoMandy d27a926578 runtime_loader: implement RTLD_GROUP
The RTLD_GROUP flag to dlopen comes from Solaris. It makes the symbol
resolution for dlopen not use the global symbols from the current team
(anything that's already loaded). The loaded object must be explicitly
linked against any symbol it needs to use (or it can use dlsym to search
symbols in the global scope explicitly).

This is also how symbol resolution worked in BeOS, meaning we already
have the code to do this, and just need to enable it.

This can be used in dosemu, where DOS-like executable are linked against
their own C library and should not use symbols from libroot.

Fixes #19674.

Change-Id: I8d127c7812a31e231edb1e44edf70b868c2670e7
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9450
Reviewed-by: waddlesplash <[email protected]>
2025-07-11 06:56:43 +00:00
Augustin Cavalier 687e76e3f9 kernel/vm: Make the first CACHE_TYPE be 1 instead of 0.
We store this value in a bitfield, so we can't use -1 to mean
invalid/unknown. Move the first value up so that 0 can be used
for that instead.
2025-07-07 17:05:11 -04:00
Augustin Cavalier 9ea1065b16 kernel/fs: Introduce check_write_stat_permissions utility method.
Like check_access_permissions() but for write_stat() hook instead
of access().

Basic logic copied from BFS, but with the UID/GID logic rewritten
to better conform to behavior on other OSes: notably, we allow
chown() requests that keep the UID the same to go through, same
as Linux seems to, which should fix #19666. We now also validate
that the GID is one of the current team's groups.
2025-07-07 15:10:01 -04:00
Augustin Cavalier 7ed202f9ed kernel: Add is_in_group(Team*) private utility method and use it in the VFS.
Slightly more efficient than using getegid() and getgroups().

While at it, make the user-group utility methods C++-only.
2025-07-07 15:02:17 -04:00
Pascal Abresch 8e086795b2 implement fdatasync
Change-Id: I2aefc1acebce93a2c53a6d3be5eef3b9e69480ec
Reviewed-on: https://review.haiku-os.org/c/haiku/+/8507
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: nephele nephele <[email protected]>
Reviewed-by: Jérôme Duval <[email protected]>
2025-07-07 15:20:18 +00:00
Máximo Castañeda 45f3d65457 Storage Kit: do what the method says in InstalledTypes::_AddSupertype
That is, just add the supertype if it does not exist. Leave getting it
to the callers that need it.

Fixes: #19653
Change-Id: I79d804161d28684e16a0d84ec3a2fb6788c0b506
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9436
Reviewed-by: waddlesplash <[email protected]>
2025-07-01 18:07:08 +00:00
Augustin Cavalier 8f149016fb kernel/arch: Put KERNEL_USER_DATA_BASE at USER_STACK_REGION.
x86_64 already does this and it seems to work fine. Since stack areas
grow downwards and should always have a guard page, overruns shouldn't
be too much of a concern (for that matter, randomization still makes
a difference here also, it seems.)

This allows us to regain another ~256 MB or so of contiguous address
space (areas smaller than that could still be inserted in the 0x6.. to
0x7.. block, but if you had 10MB of free address space below 0x6..,
and 246MB above it, you couldn't allocate a 256MB block.)

Part of #19592.
2025-07-01 00:26:29 -04:00
John Scipione e362f604f4 Revert Interface Kit: BWindow owns (and deletes) menu sem and friends
This reverts commits:
39083dd0f7
0f430ba35c
ac55439364

Fixes #19553

Change-Id: I40f9a694079d4376221099e1d1b99208aeb207b7
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9416
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2025-06-30 17:43:51 +00:00
John Scipione 15c87be3ea ColorListView: Handle color dropped on unselected
Remove shared message handling from ColorListView,
you are expected to implement this yourself and these
message constants were not actually being used by
the message target.

Do color drop handling in Appearance and Terminal.
Handle all color drops in WasDropped().

Allow current selection to remain, only update color.
TODO Changing selection on external drops should be
fixed in BListView. Work-around in BColorListView.

Fixes #19562

Change-Id: Ic99bbb1288fd736778eac831d38e453122815abc
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9296
Reviewed-by: John Scipione <[email protected]>
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
2025-06-30 14:56:42 +00:00
Augustin Cavalier 83aa27ada6 netinet/in.h: Add IP_DONTFRAG socket option, and implement for IPv4.
To allow consumers to cause the "don't fragment" bit to be set in
all IPv4 packet headers.

There is no standard way of doing this, and different OSes expose
this option in different ways. Linux has "IP_MTU_DISCOVER", but it
takes an enum, not a boolean. NetBSD and OpenBSD appear to have
no socket option, instead they have "IP_MTUDISC", an option for
the "ip_output()" kernel-level network stack method.

"IP_DONTFRAG" sockopt originates on FreeBSD, and it seems macOS now
also supports it in version 11+. Windows has "IP_DONTFRAGMENT",
which, at a glance, appears to do the same thing. So this looks
like the one that makes the most sense to adopt.

This doesn't add any code to process MTU changes yet, though.

Change-Id: I492d22dbd0ee5f4ab35c600396ad3d3ec9f4f200
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9401
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Jérôme Duval <[email protected]>
2025-06-28 17:22:47 +00:00
Augustin Cavalier f9a86ebeab network: Add net_error_data parameter to error_received.
Same structure as used for error_reply, to contain information
(like path MTU or redirect gateway) from the original error packet,
so that upper layers don't have to re-parse it.

Nothing uses or passes it around at present, but it will be used
in the next commits.

Change-Id: I38a3dec5506bdcb77a7850294082db7be74dd80f
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9399
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Jérôme Duval <[email protected]>
2025-06-28 17:22:47 +00:00
Augustin Cavalier 4cf1bb8619 netinet/in.h: Cleanup.
* POSIX also specifies in6 availability in in.h, not just RFCs.

 * Drop IPPORT_USERRESERVED. It's in RFC 1700, but FreeBSD and musl
   do not define it, and OpenBSD and NetBSD disagree on its value
   (the RFC says 5000, while OpenBSD used this "49151" starting
   in 1998.)

 * Organize the remainder with clear indications of what RFC defined them
   (if indeed they were specified in an RFC.)

 * Drop "helpful macros"; they're guarded by _KERNEL on OpenBSD.

Change-Id: Ia20be56398130ee22d70b38ee25a3f609b567c3b
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9398
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Jérôme Duval <[email protected]>
2025-06-28 17:22:47 +00:00
Jérôme Duval 74be257edf udp: send should return the error on the last send packet
checked against the output of the test sortix/os-test/udp/connect-send-error-send
* icmp: add more error codes

Change-Id: I7b1695d37cf5eae8cd09132047404b990f8791dd
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9394
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2025-06-26 05:43:59 +00:00
Augustin Cavalier 8e86be8509 libbe_build: Synchronize BBitmap implementation with the main one.
BView-related code removed or disabled, of course, but this now uses
the ColorConversions class, and adds some more ImportBits APIs from that.

Change-Id: I805cef159bac52173ef16030eae69e83db6f061b
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9391
Reviewed-by: waddlesplash <[email protected]>
2025-06-24 22:47:45 +00:00
Augustin Cavalier 8de71284ed HaikuControlLook: De-convolute edge color computation.
Previously it used "contrast" and "brightness" values that were
computed in strange ways. Now it behaves more like the other
color computation functions and deals with the "flags" directly.

Comparing many controls, colors on button frames in all states appear
to be the same (or nearly the same, within 1-2 RGB values) before
and after this change.


Change-Id: Ia6d696c29fc76c73c88cc97af97ea45e1ff089ff
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9321
Reviewed-by: waddlesplash <[email protected]>
2025-06-17 23:00:59 +00:00
Oscar Lesta e19042c642 pkgman: add an option to not refresh the repo caches on install.
Fixes #13161

Change-Id: I69b307cf8497d411d83f7065b9356159740f7d2b
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9337
Reviewed-by: Adrien Destugues <[email protected]>
2025-06-16 19:44:36 +00:00
PulkoMandy 26bedc8f4e sparc: move kernel to a lower address
The openboot mmu code does not like addresses above 4GB, so load the
kernel to a lower address. It doesn't really matter anyway, because on
sparc the kernel normally lives in a separate address space and uses
special instructions to access userland memory.

See #19597 for details, further changes will be needed here.

Change-Id: Iac6901f275667efef5e64d059daf4c96032a7baf
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3573
Reviewed-by: Adrien Destugues <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2025-06-11 06:40:13 +00:00
Jérôme Duval 23f923bcaf libbsd: add closefrom() and close_range()
Change-Id: I9c88948d6c4d5a32e3aa06cd696e2ce24c2d298f
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9334
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2025-06-09 16:26:13 +00:00
Jérôme Duval 396ebbc16f POSIX-2024: support for MSG_CMSG_CLOEXEC and MSG_CMSG_CLOFORK
Change-Id: I55551860fb7dac5d0c11a6d4201502fff9ab2d13
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9332
Reviewed-by: waddlesplash <[email protected]>
Reviewed-by: Jérôme Duval <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2025-06-09 16:26:13 +00:00
Jérôme Duval 904fd2abf0 POSIX-2024: support for O_CLOFORK, SO_CLOFORK
Change-Id: I4f3a961947eefdeafd5a249499899cc92d67c2d1
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9330
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
2025-06-09 16:26:13 +00:00
athira-selvam 1d242620b4 BUrl: rework handling of URL encoding
The content of a BUrl should always be in encoded form, to simplify
handling and validation.

Deprecate the UrlEncode member function and make it private. Instead aadd a new
way to handle URL encoding:
- All ways to set an URL (constructors, SetUrlString, and all setters)
  now take an extra boolean parameter indicating if the string is already
  encoded. The default value is to encode strings automatically.
- The static version of UrlEncode and UrlDecode, which operate on a
  string, are preserved and used by other parts of the API.

All unit tests adjusted to handle this, and still passing.

Fixes #12983

Change-Id: I06f06978d0d35e56d7c92b67f001856bb7dcafc8
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1193
Reviewed-by: nephele nephele <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
2025-05-27 10:43:12 +00:00
X512 a73ec86407 Shape: remove unused code
Change-Id: I5fc23415aa79d216f04cdf0481794b3fa4c35bdf
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9304
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
2025-05-21 20:23:53 +00:00
Alexander von Gluck 2de2e7aec3 headers/BeBuild.h: Add gcc 15 support
Change-Id: I4572dc62159ad0abb593c48d0ff0008068815fbd
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9302
Reviewed-by: waddlesplash <[email protected]>
2025-05-21 17:46:52 +00:00
waddlesplash 888ea83454 Revert "BTextView: Update word-wise/line-wise shortcuts"
This reverts commit 74ef92bc55.

Change-Id: I441d9cce87670e17141051fded594ae8aa6fc1fd
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9299
Reviewed-by: waddlesplash <[email protected]>
Reviewed-by: Adrien Destugues <[email protected]>
2025-05-21 17:46:34 +00:00
Augustin Cavalier e702bf57be BQuery: Make SetFlags() behave like other Set..() methods & add documentation. 2025-05-01 12:36:43 -04:00
Augustin Cavalier d26ab46206 BQuery: Add SetFlags() method.
It can be used to set flags on the query, same as fs_open_query()'s
flags parameter.

fLive had 3 bytes of padding after it, so this doesn't break ABI.
2025-04-30 17:18:16 -04:00
Augustin Cavalier 7e740f61ac kernel & file_systems: Overhaul query attribute change notifications.
* Introduce notify_query_entry_moved to the fs_interface API.

   axeld added a hook to the query parser (then in BFS) in hrev34317
   to directly handle moves/renames, but just sent notifications for
   it as B_ENTRY_REMOVED + B_ENTRY_CREATED (which is in fact the same
   exact thing BeOS R5 did, I tested). We need to preserve that ABI/API,
   unless flags that didn't exist on BeOS R5 are set.

 * Rework notify_query_attr_changed to notify_query_attribute_changed.
   This method is Haiku-specific (it was added in hrev39131), but it
   wasn't very useful: it only sent the name of the file, not the name
   of the attribute that changed.

   It now sends the name of the attribute along with an "int32 cause",
   same as notify_attribute_changed does.

 * Rename the private flag B_ATTR_CHANGE_NOTIFICATION to B_QUERY_WATCH_ALL.
   This better describes what it does (it's analogous to the B_WATCH_ALL
   node_monitor flag). Probably we should make it public at some point...
   (although probably at a lower value.)

 * Overhaul QueryParser notifications logic to implement WATCH_ALL
   properly, make use of the new and improved notification methods,
   and to deduplify some logic.

This makes it possible to use queries with B_QUERY_WATCH_ALL
in a similar fashion to watching a directory node with B_WATCH_CHILDREN,
avoiding the need to watch every single node individually.
2025-04-30 17:12:49 -04:00
captain0xff fcdf08d1f3 radeon_hd: Added more Polaris10 GPUs and corrected the DCE value
* Updated the deviceName to include RX 570, 580 and 590
* Rectified the DCE values for Polaris and Vega according to https://docs.kernel.org/6.14/gpu/amdgpu/driver-misc.html

Change-Id: I2d7ee489279efc90bd1d4fd94db28443569285e0
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9062
Reviewed-by: Adrien Destugues <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2025-04-22 12:51:42 +00:00
Joachim Mairböck fd9622c608 fenv.h: change guard symbol for extension functions to _DEFAULT_SOURCE
This way, they are available by default when not using a strict
language standard version.

The change is applied to all architectures (except m68k, which doesn't
define them at all).

Fixes #19534

Change-Id: I71238919e50518abaa65fa20365c912a577e3455
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9196
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Jérôme Duval <[email protected]>
2025-04-21 18:56:47 +00:00
Jérôme Duval d6547c7f81 kernel & libbsd.so: add getloadavg() and _user_get_loadavg()
the algorithm and reference values are from FreeBSD.

Change-Id: Ia74a796e13adce6a70434c7546c25ca3d553f11f
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9150
Reviewed-by: waddlesplash <[email protected]>
Reviewed-by: Jérôme Duval <[email protected]>
Tested-by: Commit checker robot <[email protected]>
2025-04-21 18:43:29 +00:00
Trung Nguyen 8da9c85cbf runtime_loader: Add support for RTLD_NOLOAD
Add support for using `RTLD_NOLOAD` with `dlopen` on Haiku.

While not specified in POSIX, this option is widely available (both
GNU/Linux and BSD) and is the only way to atomically check if a shared
object has been loaded.

Change-Id: I061332307d76c84f6a2abb6f92c4ed964bd90a1e
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9161
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Jérôme Duval <[email protected]>
2025-04-14 16:31:59 +00:00
Augustin Cavalier 5f8c94242b SplayTree: Add PreviousDontSplay to IteratableSplayTree. 2025-04-10 17:59:13 -04:00