Commit Graph

65534 Commits

Author SHA1 Message Date
X512
81c282f4b5 bus_managers/pci: dynamically register host controllers
Fixes handling of multiple PCI host controllers.

Change-Id: Iba79f2aa51b88d37bb6f5ec02d5cd3f470284ddb
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6958
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
2023-10-07 01:30:05 +00:00
Yn0ga
cbb88108d5 Various PowerPC fixes
* Removed atomic operations placeholders for modern ones
* Fix chrpscript & hfsmaps location for CDBootImage (haiku-boot-cd target)
* add of_blocks & of_blocksize openfirmware call

Change-Id: Iaaddc2c566d108976ac5e5e08caea1fc59523e06
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6987
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2023-10-06 20:38:24 +00:00
David Karoly
3f2abbc390 Debugger: implement DWARF5 compile unit header parsing
* introduce new field unitType. Currently we support only
  DW_UT_compile unit type.

* abbrevOffset and addressSize are shuffled around

Change-Id: I67db242240012b52e0ec59f87ffab7cb937eb212
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6981
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
2023-10-06 13:20:07 +00:00
David Karoly
a5c358a6db Debugger: implement parsing DW_FORM_implicit_const
For attributes with form DW_FORM_implicit_const, the attribute
specification contains a third part which is a signed LEB128
number. This value shall be used as the value of the attribute
when parsing the debug_info section.

Change-Id: I3e9aa3ba70b3aa05e6d2f570a1464966c38e4b1b
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6980
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Rene Gollent <rene@gollent.com>
2023-10-04 21:23:40 +00:00
Zach Dykstra
26d22ee8dc shell: remove extraneous/conflicting function
The 'whence' function defined in /etc/profile serves a limited purpose
with Bash as the default shell. Bash already provides
which/type/command as built-ins, which the function simply wraps.

Additionally, zsh has a built-in 'whence' command, which is masked by
the definition in /etc/profile. The function does not work under zsh,
breaking core zsh functionality as a result.

Fixes #18612

Change-Id: Ia34d95ffd58b2cb06d71145a217a9017657fa4a3
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6979
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
2023-10-04 16:53:30 +00:00
David Karoly
006478bfce Debugger: implement DWARFv5 line-info handling
* add new field for .debug_line_str section
* implement reading string and int values tagged with DW_FORM_*
* skip new fields addressSize, segmentSelectorSize in line info header
* parse directories and file names according to new syntax
* enable line-info parsing up to version 5

Change-Id: I1dd7e0d834c73f6d72b7115c7ded9f868be84a3d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6978
Reviewed-by: Rene Gollent <rene@gollent.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
2023-10-03 15:40:26 +00:00
PulkoMandy
ae2049aa4f user docs: add note about use of BView::GetMouse() in BView::MouseUp()
Fixes #18606

Change-Id: I2f6d9cd67de6cd4223b6837bb1b8b0cd1de79800
2023-09-30 21:27:32 +02:00
Autocomitter
35478ccd4e Update translations from Pootle 2023-09-30 08:13:15 +00:00
Puck Meerburg
46b8479173 arch/x86: Fix sending ICIs to more than one cluster, send one at a time.
The structure of a logical APIC destination is made up of a 16-bit
bitfield of cluster-local IDs, as well as a 16-bit cluster ID. When
sending an ICI to multiple cores in different clusters, these cannot simply be ORed together.
Fixes #17233

Change-Id: Ifa84da51eccd85c1eff529749ffa00bc2159899e
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6919
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
2023-09-30 06:53:57 +00:00
David Karoly
908afdaae4 m68k: update linker script for kernel
adapted from the toolchain's m68kelf.xc linker script

Change-Id: Ia3276f32f8de5938dae13f54f3e0675b71c194a5
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6956
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
2023-09-28 07:11:23 +00:00
Puck Meerburg
4f0173cdb0 kernel/x86_64: align the stack before calling the function
in arch_debug_call_with_fault_handler

Change-Id: Iddefb7e93d561f3a6ccf1ee06328e473b28fca2a
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6918
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
2023-09-28 07:11:09 +00:00
David Karoly
91ef2c3c00 kernel/m68k: fix relocation for R_68K_JMP_SLOT
R_68K_JMP_SLOT should be handled similarly to R_68K_GLOB_DAT i.e.
the relocated value is symbol_value + addend. see e.g. in uclibc:
https://git.uclibc.org/uClibc/tree/ldso/ldso/m68k/elfinterp.c#n222

(also the G variable is never assigned any nonzero value?)

before this change we get jumps to 0x00000000, bus errors with
pc=0x00000030 etc.
after this change we are able to call functions!

Change-Id: Ibe135adb0dc6248a2baf5d6eca1543fdddf3a9e8
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6957
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
2023-09-27 07:06:50 +00:00
Zardshard
c9afad2268 HaikuBook: Improve documentation of AddDynamicItem
Change-Id: Id682c64f13eb103074bdbee34d531d3e2a91de0f
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6955
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2023-09-26 16:40:04 +00:00
Humdinger
493d3c69f3 GLTeapot: Add setting to limit FPS
* Plus renaming "File" menu to "GLTeapot". No files involved.

Fixes #18599

Change-Id: Ifd47eea8eb11d7c94d8f6cc0d4db48eaa0b0bf59
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6954
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
2023-09-26 16:38:30 +00:00
David Karoly
9dc5767db6 boot/atari_m68k: fix stack after toscallLLWWWWW
Change-Id: I3c0712d2eee173eb1744b7eb8b5b35a3b4bdc71f
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6946
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
2023-09-26 08:49:47 +00:00
X512
84a57f9a2d riscv/mmu: fix some code typos in hrev57298 that lead to boot failure
Change-Id: If0b2fded13ac079e505038fb51d05f7cfcb3d161
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6953
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2023-09-25 21:20:56 +00:00
X512
98895d0417 riscv64/mmu: use struct bitfield for flags and std::atomic
Fixes some PTE concurrent access bugs.

Change-Id: I09ec56861fae389a8a3e228b17a3921b85202c8b
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6949
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
2023-09-25 15:50:59 +00:00
X512
f83058d1ed elf: add PT_RISCV_ATTRIBUTES program header
Attribute is ignored for now.

It is supposed to check ABI compatiblity and reject loading incompatible images.
Haiku currently do not use multiple ABIs for RISC-V so it is safe to ignore attributes.

PT_RISCV_ATTRIBUTES program header is produced by default in GCC 13 and Clang 17.

Change-Id: I4659e9bacbf34a2a0bc16b34c2aaa37232d700fa
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6948
Reviewed-by: David Karoly <karolyd577@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
2023-09-25 15:20:13 +00:00
Zardshard
abd18fecf0 Deskbar: Fix compilation error
This error only occurs when compiling a debug build. It was introduced
with commit fb885767b6

Change-Id: I80b470df3872b5bdd8690f65b3d14388158be8ed
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6951
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2023-09-25 15:19:38 +00:00
Andrew Lindesay
4b347fccb2 HaikuDepot: Token Based Authentication
This switches the application over from using basic
authentication to using token-based authentication in
preparation for later using Open-ID based
authentication flows. The application version is also
bumped in order that the server can detect this version
at some later date in the future when it no longer
supports basic authentication itself.

Change-Id: I7addde1d57503c58d6bcd54908f22f66830c0c59
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6944
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
2023-09-25 06:20:32 +00:00
Augustin Cavalier
d8bca3564a Tracker: Check whether the default button is disabled on double-click.
The comment above this block specified the correct behavior: the
button's status is already updated elsewhere, so just check IsEnabled().
But the code did not actually do that.

It appears this has been incorrect all the way back to the initial
OpenTracker import in 2001.

Fixes #13721.
2023-09-23 17:05:19 -04:00
Augustin Cavalier
2d42fb1a9a Tracker: Adjust open button status when B_DIRECTORY_NODE is set.
In hrev51155, it was changed to be always enabled no matter what,
so that the current directory (without anything selected) could be opened.
But this means it would also be enabled for files, which is misleading.

Instead, remove the function, and adjust the logic detecting whether
to enable the button or not to take B_DIRECTORY_NODE into account.
2023-09-23 17:05:06 -04:00
Augustin Cavalier
d95a9b63f7 iaxwifi200: Synchronize to OpenBSD trunk.
CVS revision(s) are in first-line comments.

Requires a new firmware package (from HaikuPorts). There are some
changes in here which may fix some of the odder issues, like failures
to connect to access points. There is also support for one new PCI ID.

Tested by PulkoMandy who reports it's still working.
2023-09-23 15:10:10 -04:00
Augustin Cavalier
76681bd900 kernel: Rewrite B_DEBUG_SPINLOCK_CONTENTION.
* Replace count_low/count_high with bigtime_t fields plus an int32.
   sizeof(spinlock) is now 32 bytes with the debug option enabled.

 * Adjust and clean up all spinlock code to use the new fields.

 * Fold DEBUG_SPINLOCK_LATENCIES into the new code. Remove the bootloader
   option and other flags for it (these were not compiled in by default.)

The new code should be much easier to understand and also more powerful.
However, the information transmitted to userland isn't as useful now;
the KDL command output will have the interesting information.

(Things could be reworked to transmit more interesting information to
userland again if desired, but as this code clearly hadn't been compiled
for many years, as it referred to global spinlocks that have been gone
for a very long time.)

Change-Id: I2cb34078bfdc7604f288a297b6cd1aa7ff9cc512
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6943
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
2023-09-23 18:41:04 +00:00
Augustin Cavalier
ef9e2f627b kernel/arch: Make arch_debug_get_caller() a macro implemented by a builtin.
Only the x86 and PPC implementations look like they would have worked,
while the builtin is available and will work across all architectures.
We already use it unconditionally in some parts of libroot.

Change-Id: I2dffb3b2c7cdd605092382b9d649151adb921bb4
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6942
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2023-09-23 18:41:04 +00:00
Augustin Cavalier
d0c34f9331 kernel/debug: Invoke cpu_pause in trap_cpu_in_kdl.
This is the loop that runs on all CPUs besides the one
actually running the kernel debugger. It's functionally
a spin-loop around a few different variables, and so it
should be safe to use cpu_pause() here, just as real
spinlocks do.

(cpu_pause() just runs a "pause" or equivalent instruction,
it doesn't use the CPU-idle modules, which indeed may be
unsafe to use in KDL.)

A glance at FreeBSD seems to indicate they also do this
when their kernel debugger is active.

Seriously improves power consumption while KDL is active:
even running in a VM with only a few cores, there would be
obvious fan spin-up when entering KDL. After this change,
there's barely any at all (while overall CPU usage % remains
basically identical.)
2023-09-23 14:07:17 -04:00
David Karoly
a72ea36f95 boot/atari_m68k: add revision number to bootloader binary
Change-Id: Id68078ada652d5815a4392e8d94c4bd4ef3efcdb
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6947
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2023-09-23 17:20:27 +00:00
David Karoly
a944d6a02d boot/atari_m68k: fix crash on boot menu
Change-Id: I7d2afdd14ae9942fedd720b7d581a5acf2d6f40f
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6945
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2023-09-23 17:20:22 +00:00
Autocomitter
8deedc28b3 Update translations from Pootle 2023-09-23 08:20:09 +00:00
Augustin Cavalier
f0a016dcb1 BBufferedDataIO: Fix Write().
I looked at this code as a reference when writing similar code in another
project, and realized then that this was broken to the point where I
don't think anyone could have actually used it:

1. Writes larger than the buffer should only return the amount written
by this Write() call, not the amount flushed beforehand.

2. fDirty was only set if there were bytes remaining after the first
write to the buffer. So, if you wrote small amounts of data, they
would be silently discarded most of the time!

3. When filling the buffer, we might as well flush simultaneously.
This allows the logic to be consolidated into a loop and remove the
duplicate memcpy. In case of failure, just return the bytes-written
as the write could be retried later.

4. Flush() should always return an error or 0, not bytes written.

While at it, add some basic tests for this class.

Change-Id: I2de01d0b31e3fe22863cef21dd7b0b62ed47121b
2023-09-22 19:56:04 -04:00
Augustin Cavalier
35bc8b401a ArchitectureRules: Disable autovectorization for the kernel (for now.)
See #18593.
2023-09-22 16:27:37 -04:00
Augustin Cavalier
55b2baf2f6 kernel: Use correct type for semaphore numbers.
It must be unsigned short, otherwise in some places we would use
negative offsets and wind up out-of-bounds.

Fixes #18586.
2023-09-21 22:28:55 -04:00
Augustin Cavalier
959d9cd069 kernel: Cleanups to the XSI message queue & semaphore implementations.
* Remove unused/unneeded parameters to Dequeue.
 * Make use of StackOrHeapArray.
 * Reorder syscall-entry checks for efficiency.
 * Inline the unlock-block method and unset variables in the process.
 * Reorder code for clarity and to reduce indentation.
2023-09-21 22:20:31 -04:00
Augustin Cavalier
f759ab2733 headers/compatibility/bsd: Update headers to remove BSD advertising clause.
Rewrite link.h entirely.
2023-09-21 18:38:10 -04:00
Augustin Cavalier
2e0e70b5bb libroot: Delete some old private math headers.
These haven't been needed or used in a long time.
2023-09-21 18:31:22 -04:00
Augustin Cavalier
d6b37ce996 packagefs: Fix missing unlocks in Volume package content node removal.
When breaking out of _RemovePackageContentRootNode() by encountering
a specified "endPackageNode", we need to unlock all directories.

This case is only possible to encounter when _AddPackageContentRootNode()
fails partway and invokes _Remove() to remove the just-added nodes.

Fixes a hang/deadlock encountered by Diver while testing some (disabled)
HaikuPorts recipes.
2023-09-21 14:53:06 -04:00
Alexander von Gluck IV
3e2b187899 build: Update arm64 build-packages for gcc13
Change-Id: I1143072d4783310f37ef68cd9e3793579f3388cb
2023-09-21 13:12:15 -05:00
David Karoly
1978148f9e boot/amiga_m68k: Handle, ExecDevice should be subclasses of Node
hrev55571 introduced several new pure virtual functions in Node,
none of which are implemented in Handle or ExecDevice any of their
descendants.

This change fixes the build after the Node/ConsoleNode refactor.

Change-Id: I098005df063160fd984e70da29ddb24a1d7a7133
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6940
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2023-09-21 17:58:22 +00:00
David Karoly
45c84b2857 boot/atari_m68k: Handle should be a subclass of Node
hrev55571 introduced several new pure virtual functions in Node,
none of which are implemented in Handle or any of its descendants.

This change fixes the build after the Node/ConsoleNode refactor.

Change-Id: I825b90a114d83105f46d566e7fe1f644ba997ec5
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6939
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2023-09-21 17:57:43 +00:00
Augustin Cavalier
2903a69d4a network/ipv4: Fix NULL dereference in multicast-send.
Fixes the KDL in #18585.
While at it, add a missing NULL check and fix a leak.
2023-09-20 16:39:28 -04:00
David Karoly
39fa47a536 boot/next_m68k/mmu: implement missing functions
Change-Id: I78b51ab394c9083b081f12ca4e02f50904f67674
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6938
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Reviewed-by: Fredrik Holmqvist <fredrik.holmqvist@gmail.com>
2023-09-20 18:47:12 +00:00
David Karoly
6393778b93 boot/amiga_m68k/mmu: implement missing functions
Change-Id: I1164ca30659684d8d273b58a7cc0ea33dde0a240
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6937
Reviewed-by: Fredrik Holmqvist <fredrik.holmqvist@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
2023-09-20 18:47:12 +00:00
David Karoly
3b7ddf557f boot/atari_m68k/mmu: implement missing functions
Change-Id: I7605abc7f5e7b5b15d6dd33ec3bd73777a0804aa
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6936
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2023-09-20 18:47:12 +00:00
David Karoly
ad29214d43 boot/libs: hush warnings for zstd on arm64
Change-Id: I971cdefd670d26e669e9bdfd9c9a29ca5508ff9d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6915
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
2023-09-20 18:45:57 +00:00
Alexander von Gluck IV
bcd89a79ad build: Update arm build-packages for gcc13
Change-Id: Idc18fb42e18165fc35f657e0a1d19de479c137ed
2023-09-20 10:30:55 -05:00
Humdinger
9e76d619a2 Terminal: Fix translation of "Colors" window title
Change-Id: I9a9f166dbdb4a2e008eabab53c9ab70f3439aa59
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6899
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
2023-09-19 08:49:30 +00:00
David Karoly
31199cd950 update bootstrap package versions for ppc
Change-Id: I84d8e32cbba725e952d0864c4a82028fa91b5209
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6912
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
2023-09-17 19:14:00 +00:00
David Karoly
ad115900db ppc: use generic_msi
Change-Id: Ibe9e80bc9853f529bc1f0ef3dad78cd37af82280
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6911
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
2023-09-17 19:13:19 +00:00
David Karoly
f76f6d8f57 libroot/musl: Import ppc atomic_arch.h.
Change-Id: I51b460b6a126cf401679ae2fd398445bd9969761
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6910
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2023-09-17 19:12:54 +00:00
David Karoly
dc3b3e172d m68k: VMTranslationMap.h is not needed in arch_vm.h
Change-Id: Ica0efdeabaa73be0030e0522352c0c3bf311a9ad
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6913
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2023-09-17 19:12:33 +00:00