* Handle threads without masks: this means they can run on any CPU.
* Return only enabled CPUs from get_thread_affinity.
* Clear the user mask's extra bits.
* Allow masks with more CPUs set than are active, same as Linux,
but disallow masks with no intersection with the active CPUs.
* If setting to all enabled CPUs, clear the mask, so that if
more CPUs are enabled in the future, this can run on them too.
* Add permissions checks.
Fixes#20251.
(cherry picked from commit f46b3483057b149179dda7abdcc2dde38994a8cc)
Change-Id: Ib8649cb0a252fc8d9cfca691c2e03748561db741
Reviewed-on: https://review.haiku-os.org/c/haiku/+/11529
Reviewed-by: waddlesplash <[email protected]>
It was a complete no-op before. Now, when enabled, BIOS calls
won't be done past the bootloader, and the Framebuffer driver
will be used instead of VESA.
(cherry picked from commit 7f12208162a5fc676f7a03e050f7671919f4fb12)
Change-Id: Id7670cc060ab5273411222e27467a6dfdbbb9e7f
Reviewed-on: https://review.haiku-os.org/c/haiku/+/11313
Reviewed-by: waddlesplash <[email protected]>
No functional change. Reasonably we should have architecture-specific
headers for some of these, but that can wait.
(cherry picked from commit 450728b4b717b3ea09fb2145daf2e6a24874c6de)
Change-Id: I887d37a54b44e127e4d1fe46675bf57bc2a392dc
Reviewed-on: https://review.haiku-os.org/c/haiku/+/11312
Reviewed-by: waddlesplash <[email protected]>
This solves an old TODO, that the page writer could potentially cause
deadlocks when writing pages of different devices back at once. It's
also necessary after the previous change, as otherwise simultaneous
writes to disks with different write speeds would cause the quota
computations to be fluctuating and inconsistent.
Change-Id: I1c485f66625ea9013f17ab4fee007d7d58afd2ea
Reviewed-on: https://review.haiku-os.org/c/haiku/+/8619
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
- BAboutWindow: the extra info comes from the app, we can't magically
translate it here. This adds a new translatable string for Workspaces.
Other apps (WebPositive and a few outside this repo) pass either
names, versions, license text or already translated strings.
- Tracker:
- Icon size selection (eg. 32 × 32) was incorrectly marked and is now
translatable.
- Variables incorrectly marked for collection.
- Two strings got the wrong context, one of which should probably not
be shown to the user anyway.
- GLInfo: double translation of an already translated string.
- Terminal: collection of variables, but it is all dead code, a leftover
from an older change.
- Notification prefs: translation of variables, which on top of that
contain numbers.
- Network prefs, Printers prefs, Cortex, HaikuDepot: translation of
variables. The values are already marked for collection.
- Devices: translation of variables. This just makes the collection
process happy, but the app needs a deeper look. Some of the strings
that are translated here come already translated, some don't and may
not even be marked for collection, and they seem to be used as key
value pairs in a public map.
Change-Id: I248f364eaa788cc64ed59b118cfee101b9c56467
Reviewed-on: https://review.haiku-os.org/c/haiku/+/11262
Reviewed-by: Adrien Destugues <[email protected]>
Tested-by: Commit checker robot <[email protected]>
Apple Darwin also extends kqueue to support other object types,
like Mach ports, so we might as well do the same for Haiku (Be)
object types.
Fixes#19974.
This commits splits the address handling into bluetooth protocol and
does the rest in l2cap. This is to allow for a different struct for sco
and l2cap.
Change-Id: I4c577691118613cd3be75eb7ef191fd2f07d742d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/11181
Reviewed-by: waddlesplash <[email protected]>
- adding persistent link key storage to avoid re-authentications
- saving important information about remote devices to make it survive reboots
- making all bluetooth status variables uint8 like it is in the command definitions
Change-Id: I8956fb356ee734b9fa0ae9704624f6e5fef39e55
Reviewed-on: https://review.haiku-os.org/c/haiku/+/11203
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
- Introduced cancel connection feature in bluetooth preferences
- Moved the connection handling logic into LocalDeviceImpl
- Made a watchers list to send notices to all concerned applications
Change-Id: Iba87caff68d1b9640fa8d901059daa7a624531f5
Reviewed-on: https://review.haiku-os.org/c/haiku/+/11171
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
- 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]>
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]>
- The added command is mandatory under the HCI Implementation Conformance Statement (ICS).
- The command was tested through running the bluetooth_server and Bluetooth preferences and tracking the output logs.
Change-Id: I471766233dee5b24b3fe424fe6724e4378b5927b
Reviewed-on: https://review.haiku-os.org/c/haiku/+/11075
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
The bootloader is now only responsible for setting up Protected Mode
and Paging. It otherwise preserves the existing CR0, and leaves setup
to the kernel.
The kernel now sets CR0 for each CPU in preboot_init_percpu().
Some redundant sets are removed from x86_init_fpu, which now
panic()s in the case where we don't have a FPU, and avoids
unnecessary prints.
This fixes a massive oversight where CR0 was never reset on x86
systems booted using the EFI loader, except on the boot CPU! That
meant that NUMERIC_ERROR and possibly even WRITE_PROTECT were
simply not set on non-boot CPUs, unless the EFI BIOS had set them up
already. (On the BIOS loader, smp_start_kernel() ran on all CPUs.)
Fixes NVMM initialization on non-boot CPUs on Intel hardware.
* VMUserAddressSpace & VMTranslationMap64Bit will need to be inherited from.
* vm_soft_fault & vm_unmap_address_range will need to be invoked directly.
* map_backing_store will need to be invoked directly. The whole concept
of "backing stores" is long merged into VMCache anyway, so at the
same time, just rename the method to "vm_map_cache".
Methods added to the internal vm_priv.h; they should not be needed
except in special circumstances.
should avoid instruction reorder seen on #20100,
could lead to pinning happening after getting the cpu
_ZL15call_single_cpujPFvPviES_b before:
mov 0x90(%rbx),%rax
addl $0x1,0xa8(%rbx)
_ZL15call_single_cpujPFvPviES_b after:
addl $0x1,0xa8(%rbx)
mov 0x90(%rbx),%rax
Change-Id: I7759c5e086856a190aac21270601ae55c0b39fac
Reviewed-on: https://review.haiku-os.org/c/haiku/+/11050
Haiku-Format: Haiku-format Bot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
On some Intel MacBooks, system firmware configures the framebuffer
as X-tiled and uses the "Graphics Memory Fence Table Register"s to
transparently convert linear framebuffer accesses by the CPU to tiled
accesses. If you change the framebuffer base address or stride, you get
a garbled display since the "fence" configuration no longer matches
the framebuffer.
Might fix#17688
Change-Id: Iaf9ea7641f7809acb9b8fbf14b88ed656a6a6964
Reviewed-on: https://review.haiku-os.org/c/haiku/+/11016
Reviewed-by: Adrien Destugues <[email protected]>
We should just be zeroing any unknown bits, not trying to preserve them.
If the BIOS or other mechanisms left the timer in some other mode
besides "one-shot" like we need, then we might incorrectly preserve
those bits.
This also has the advantage of avoiding config reads in set_hardware_timer.
* Get rid of the global sUserTimerLock. This was added in 2013
to prepare for the removal of the global scheduler lock, which
is what all these routines previously used. The locking design
was never redesigned since then to accomodate for the changes,
it appears.
* Make CPU timers always locked by time_lock, and the system-time
timers locked by a local lock.
* Make fScheduled load-bearing as to whether the timer is presently
in the team/thread lists or not.
* Don't re-fetch the team/thread every wait cycle. This allows us
to avoid a lock/unlock dance that would otherwise complicate
the scheduling logic significantly.
Tested using the old version of the Open POSIX Testsuite (which
indeed caught some bugs in earlier versions of this patch.) All
12 timer_create tests still pass, including the ones that depend on
timers firing within the right timeframe.
Fixes#20090.
Change-Id: I54dd9a49e72f51711baa0fbf18e5c35a7fafec8f
Reviewed-on: https://review.haiku-os.org/c/haiku/+/11007
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
- Add more secondary CPU startup methods:
PSCI using EL3 secure monitor calls (used on most ARM64 CPUs)
Spin tables (used on Apple CPUs, which lack EL3)
- Secondary startup code was rewritten to pass all needed info
to secondaries using static variables, since we can't
pass any info to secondaries when using spin tables
- Setup MMU state to known good values as early as possible
instead of relying on the values set by the bootloader.
This also requires generating new page tables, since we're
(potentially) changing MAIR as well as the address space sizes
(which determine the number of page table levels we need)
Change-Id: I3b90aab04090fa0c6a8ad82a01df7fee6a6a6964
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10984
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>
The default C++ standard in GCC 16 is C++20 (from C++17),
which introduced "requires" as a keyword. This caused the
build of libsolv (and libpackage) to break.
fs_shell now sets -std=c++11 as in bfs_shell. Both define
__STRICT_ANSI__ to avoid using certain headers, which now
causes conflicts related to __int128 when the standard is
not actually strict ANSI.
Change-Id: Ie142fb87eb79a20fe0c1b5f3fdd3b94899eaff48
Reviewed-on: https://review.haiku-os.org/c/haiku/+/10980
Haiku-Format: Haiku-format Bot <[email protected]>
Reviewed-by: waddlesplash <[email protected]>