Commit Graph

60876 Commits

Author SHA1 Message Date
Andrej Antunovikj
7b4d924f98 cpu: Extract shared x86 code from efi & bios_ia32
This issue was initially detected by PVS Studio (issue number V547) and fixed
as part of Google Code-in 2019.

The initial problem was the calculate_cpu_conversion_factor function
which had been copied in the BIOS and EFI versions of the boot code.
Further investigation led to more duplicated or very similar functions
being identified.

Introduce an arch_cpu.h for the x86 boot platform to group these things
in a single place, and adjust the BIOS and EFI code to call into that.
Note that the BIOS and EFI code is still a little platform specific,
ideally there should be a boot_arch_cpu_init() function for each
architecture as already done for openfirmware and u-boot.

Also remove some irrelevant comments from copypasted files for other
architectures, as that was filling my git grep with useless noise.

Change-Id: I16d815f0bf015cec0b4e03cc14f3cc447c7164c5
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1985
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2020-01-25 11:56:46 +00:00
Zotyamester
edad811b96 Game Kit: rewrite GameSound and GameSoundDefs headers
Change-Id: I5efee795a73a9637f34ed8ffa4fbeeda09eb7a88
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2104
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2020-01-25 11:43:02 +00:00
Ra-V2
e9d6c3150e Game Kit: rewrite StreamingGameSound.h
Change-Id: Ibd5d77236dc14ca605b0925c1177e64ca9e5a5d3
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2113
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2020-01-25 11:42:41 +00:00
Zotyamester
d623ab8459 DeskCalc: Remove audio feedback and add error handling
Change-Id: If470e91581d7569ed2589f67721e813cccd83fe2
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2095
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2020-01-25 11:42:20 +00:00
Jaroslaw Pelczar
1e7069152e arm64: Add initial stubs for stackframe and time
Signed-off-by: Jaroslaw Pelczar <jarek@jpelczar.com>
Change-Id: Ie17279a9c17ab8bb7a812fe83d1b668853f96d5c
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1858
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
2020-01-25 08:52:10 +00:00
Jaroslaw Pelczar
384d4e935c arm64: Add stubs so kernel can at least link
Signed-off-by: Jaroslaw Pelczar <jarek@jpelczar.com>
Change-Id: I2476a6346c912c4aa0c26e4f3720ea2c2690b669
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1857
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
2020-01-25 08:51:39 +00:00
Jaroslaw Pelczar
cbdb30f467 arm64: Add more random scripts to get stuff to compile
Signed-off-by: Jaroslaw Pelczar <jarek@jpelczar.com>
Change-Id: Ie043af5b7471f626a1ffe100848151c832dcc439
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1853
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
2020-01-25 08:50:51 +00:00
CruxBox
80f7396496 Making of xfs file system
xfs_shell is modeled over bfs_shell.
It fails to mount the filesystem as expected
(the filesystem code isn't implemented).

Change-Id: Iaf88c1f4aef338f249fdc58bc27a3ad76ebd5d95
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2096
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2020-01-25 08:49:09 +00:00
Autocomitter
89ae33c9f6 Update translations from Pootle 2020-01-25 08:47:08 +00:00
Alexander von Gluck IV
79310ea4e1 docs/develop: Add doc on debugging bootloaders with gef
Change-Id: Ib2d161adf75904f592286451279c77fb61ea52c2
2020-01-24 15:13:29 -06:00
X512
7740e52c16 TextSearch: fix passing search string to grep
Fix proposed by phoudoin.

Fixes #15650.

Change-Id: Ie7177aaa39ff593445506983cb0725b75ca7bc7d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2149
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
2020-01-24 15:23:01 +00:00
bitigchi
a309c6eeb2 Use UTF-8 HEX values instead of UTF-32 values
The previous commits resulted in TOFU (black diagonal shape with
question mark in it). As per humdinger's suggestion and copying from how
€ sign was encoded, this is another try at fixing non-break space and
Turkish Lira Sign.

Previous PR: /c/haiku/+/2004/1

Change-Id: I3775c178b1921e7dff7ceb660c8fda1152050c94
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2148
Reviewed-by: humdinger <humdingerb@gmail.com>
Reviewed-by: John Scipione <jscipione@gmail.com>
2020-01-24 15:22:11 +00:00
Murai Takashi
da3fe7140a mail_daemon: Add missing throw
Fix PVS V596
 Pointed out in PVS-Studio blog
 https://www.viva64.com/en/b/0644/

Change-Id: Icf1f2d651dab84730fd348759ee7d19264ccbf75
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2141
Reviewed-by: Stephan Aßmus <superstippi@gmx.de>
2020-01-23 17:03:04 +00:00
Adrien Destugues
eacbae702d agg: fix build. 2020-01-22 19:25:16 +01:00
Panagiotis Vasilopoulos
f0b6c6a24b Game Kit: rewrite DirectWindow, FileGameSound and SimpleGameSound headers
Change-Id: I45687f8164dbc915a0cb6ca1bf4c0211761cb098
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2108
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2020-01-22 00:33:44 +00:00
Zotyamester
450208975b Add-ons: Add alert warning to PNGTranslator
Change-Id: I148fb44055f6e0fc6f68307df04a4ad4ebb660fa
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2097
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2020-01-22 00:31:05 +00:00
Zotyamester
093e83638d Terminal: match declarations and definitions
Change-Id: Ib05915bedca38a0f3caec80d96c643200b1bc4a9
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2111
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2020-01-22 00:30:40 +00:00
Ra-V2
1773f0767e agg: agg_curves.h: initialize m_distance_tolerance_square
fix PVS 730

Change-Id: I8dfe11d3f31cc6ef67b96955009c5a57eb5a427d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1997
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2020-01-22 00:29:58 +00:00
Murai Takashi
450f71e21e agg: trans_double_path::reset(): reset m_kindex2
Fix PVS V519
Pointed out in PVS-Studio blog
https://medium.com/pvs-studio/best-copy-paste-algorithms-for-c-and-c-haiku-os-cookbook-8e15876d2547

Change-Id: Ie6b9ae42f246bf201e30d19968a502268e80fe6d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2116
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2020-01-22 00:29:36 +00:00
Adrien Destugues
35e9e7c3eb app_server: match screen configurations with empty serial number
My laptop LCD has no serial number. Because of this check, it would
never "exact match" with the previous data stored in the workspace
settings. As a result, every time I set a new video mode, a new "screen"
would be stored in the settings file, and the old entry would just stay
there and never be used again.

I currently find myself with about 100K of workspace settings, tracing
the history of video mode changes over the last few years.

Change-Id: Iea236a6ad09bc8bae9f6df8d63780bbfd4fa5619
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2135
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2020-01-22 00:28:46 +00:00
Kyle Ambroff-Kao
8d763b7f0d Terminal: Fix crash for keystroke with unexpected modifiers
This patch fixes a segfault in Terminal that happens when you issue a
keystroke with unexpected modifiers. An easy way to repro this is:

 1. Set command key to super
 2. Set option key to meta in Terminal
 3. Issue `ctrl+alt+shift+<key>`

In DefaultState::KeyDown(), the branch that handles option key as meta
detects that additional modifiers were used along with the meta key
and tries to look up the keymap associated with that combination of
modifier keys.

This lookup in TermView::fKeymapTableForModifierse can return NULL,
since TermView::SetKeymap() sets a pre-defined set of (modifier combo)
=> keymap entries.

Change-Id: I3ce4a7cff6c84913d99507e44849f9b048769f67
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2138
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2020-01-22 00:28:25 +00:00
Kyle Ambroff-Kao
e8b9c0e1a6 tests/BHandlerTester: Fix Perform1 test case
TBHandlerTester::Perform1() tests the result of calling
BHandler::Perform() with invalid input. On BeOS R5 this returns
B_ERROR, but on Haiku this delegates to BArchivable::Perform(), which
returns B_NAME_NOT_FOUND.
Change-Id: Ia05220da4155a629cf611fec76da6477b9f1dbf4
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2137
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2020-01-22 00:27:31 +00:00
Alexander von Gluck IV
764345e18c libroot/posix: No long doubles on ppc
Change-Id: I1cdc589984f7c44129cef4e82b08fe4e7a257e34
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2126
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
2020-01-22 00:27:04 +00:00
Adrien Destugues
2de6164042 Add missing fenv.h for sparc.
Borrowed from FreeBSD with some changes to get it building.
Now we need to rebuild the gcc package...

Change-Id: I6b8dfd7fb6ca912c76e2ff10fbe01ad583a09aec
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2131
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2020-01-22 00:25:19 +00:00
Adrien Destugues
175d1f0eca sparc: remove ARM files.
Change-Id: I208baa6a97800a8d3a423ffeb00279767706ddef
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2130
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2020-01-22 00:25:19 +00:00
Adrien Destugues
ca9fab6849 Link host tools with libbsd on haiku host
Needed for the sparc port, allows to build elf2aout which uses err() and
errx(). Allows to build the sparc port from Haiku.

Change-Id: Ia14dd9b1be1c03b36634a675f1a51eeac8d4aacf
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2129
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2020-01-22 00:25:19 +00:00
Murai Takashi
992ae400ec Fix catching by value
Pointed out by LGTM.
Change-Id: I223655c728305f6f45b3738553da5b7d7a69e8c8
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2134
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2020-01-21 19:26:22 +00:00
Kyle Ambroff-Kao
654135466f support/BPath: Flatten should work on empty BPath
BPath::Flatten() on an empty path returns B_OK in BeOS R5, just
writing an empty entry_ref to the povided buffer. The Haiku
implementation has some additional validation that causes B_NO_INIT to
be returned instead.

This patch attempts to recreate the same behavior of BeOS in this
situation.

* Don't check for initialization in BPath::Flatten(). Instead,
  just write an empty entry_ref to the provided buffer if the BPath is
  empty.
* Fix estimation of expected size when testing the return value of
  BPath::FlattenedSize().
* Clean up warning by removing unecessary forward-declaration of
  CppUnit::Test.

Change-Id: I88880cbb298bdcb594c9c8fef48314165c49e9e5
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2115
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
Reviewed-by: Axel Dörfler <axeld@pinc-software.de>
2020-01-21 09:36:42 +00:00
Kyle Ambroff-Kao
7037b5d9bc support/Archivable: Reset errno in validate_instantiation()
validate_instantiation(BMessage*, const char*) sets errno for invalid
input, or if the requested class is not found, but it doesn't reset
errno to B_OK if validation succeeds.

I verified that in BeOS R5, errno is set to B_OK if
validate_instantiation succeeds.

This fixes BHandler::Instantiate2 and BHandler::Instantiate3 tests.

Change-Id: I531777e6ba47e9635da2da1fc8c8103bb233b0f3
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2136
Reviewed-by: Axel Dörfler <axeld@pinc-software.de>
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2020-01-21 08:46:20 +00:00
Alexander von Gluck IV
58bf3f3628 efi: Fix arm relocation_func under new efi libraries
Change-Id: Ib829448131cfe7fbaf820bb93a789248af00b428
2020-01-20 19:13:19 -06:00
Alexander von Gluck IV
1aab1c0e28 u-boot: cleanups on arm, load from more media
* Attempt to find haiku loader on mmc,nvme,virtio
* Fixes automatic boot under u-boot on qemu
* Remove boot.scr to ensure it's regenerated each build
* Remove obsolete HAIKU_BOARD_SDIMAGE_UBOOT_UENV

Change-Id: I60cd518ec69e408ddbd7ea17371f4f4f56fa7f7b
2020-01-20 16:26:37 -06:00
X512
cc0226fad0 ActivityMonitor: remove double buffering and custom background drawing
Part of #15623.

Change-Id: Id6b7c13623e66d5b88ffc48766a5fe5ec4099b64
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2133
Reviewed-by: Stephan Aßmus <superstippi@gmx.de>
2020-01-19 18:27:55 +00:00
X512
59b700d086 Interface Kit: remove more workarounds for BDragger
This workarounds are no longer needed after hrev53713.

Change-Id: I7b809c79bd9d2345a991f0d2360f79876d10cd6b
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2132
Reviewed-by: Stephan Aßmus <superstippi@gmx.de>
2020-01-19 18:25:22 +00:00
X512
c4a686d8d1 Interface kit: fix displaying draggers when they were initially hidden
IsHidden(this) should be used instead of IsHidden() because IsHidden() return
true if window is hidden (at moment of creation for example).

Fixes #15646.

Change-Id: I08c8bacd634139dd62fb239e16cb80f512e4be6d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2128
Reviewed-by: Stephan Aßmus <superstippi@gmx.de>
2020-01-19 18:22:41 +00:00
Adrien Destugues
82f610c6ab BFilePanel does not live in libbe. 2020-01-19 18:03:22 +01:00
Alexander von Gluck IV
614858a9a0 glibc/stdio-common: Use public functions vs private
Change-Id: Ide788b0edb15852e6315b0d5e9208cb3555cf4db
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2125
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2020-01-19 16:16:16 +00:00
Adrien Destugues
1808b553a2 intel_extreme: do not reprogram transcoded/output mapping on ibex point
Another try to fix #15628
2020-01-19 11:04:31 +01:00
Alexander von Gluck IV
a07c119825 libroot/posix: No long doubles on arm
Change-Id: I98d557852c5099bfe0b1372ad907aa84acd16d26
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2127
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2020-01-19 08:00:17 +00:00
Augustin Cavalier
9df77ea390 libroot: Make glibc use our math.h.
Only a few definitions (and some "hacks", to force glibc to
use __builtin_* where possible) that are not in our math.h
remain. This cuts out a lot more of the "bits" headers.

No "functional" change intended (but should help
fix the build on arches where we do not include
__fpclassify, etc. anymore.)
2020-01-18 23:44:37 -05:00
Augustin Cavalier
9e419c3092 libroot: Avoid glibc-internal math function usage in printf.
There's no reason for this, and we'd like to not export
these functions anymore (under non-x86/x86_64), so just use
the public macros.
2020-01-18 23:42:03 -05:00
Augustin Cavalier
aee487519d libroot: Remove "string" directory.
The endian.hs can also go away and use our own.
No functional change intended.
2020-01-18 20:26:39 -05:00
Augustin Cavalier
aa1e42a332 libroot: Replace swab() with the musl version.
This was the last function remaining in the glibc "string" directory,
so now we can remove that directory and a bunch of related files
that are no longer needed.
2020-01-18 20:26:05 -05:00
Augustin Cavalier
f19586ee86 libroot: Drop a lot of glibc-internal headers that are not needed.
No functional change intended.
2020-01-18 19:17:43 -05:00
Augustin Cavalier
bef1585217 Mail: Fix build following realloc() fix. 2020-01-18 18:50:23 -05:00
Augustin Cavalier
f504f61099 libroot: Replace most of libm with musl's.
The glibc libm code was showing its age, and has recently been
the subject of a number of tickets about its inaccuracy.
Additionally, some developers have complained about
how convoluted the headers are, and thus how hard it is
to add support for new architectures (and how flaky
the support for the existing architectures is.)

So, with this commit, nearly the entire glibc libm has been
gutted and replaced with the one from musl 1.1.24.

The complex functions from glibc are retained (as they
are more mature than musl's), as are some glibc-internal
libm functions.

This also has the advantage that these functions are
actually using our <math.h>, whereas GCC used its own,
which was rather dangerous for obvious reasons.

Additionally, the new math functions are always compiled
with GCC 8 (even on x86_gcc2), as it seems GCC 2 does
not quite understand some of the union-aliasing they
use (a lot of which was added in C99, I suppose.)
FFmpeg on x86_gcc2 is already compiled with GCC 8
and that has so far worked out well, so there should
not be any problems caused by this.

I did verify that ARM and PPC at least still compile,
though other architectures may require a bit more work
(they are not bootstrapped so I could not do much.)

Should fix #14933 among other issues.

Change-Id: Ifeea0ddab23a8d0480fc26dece1b0192afc263bd
2020-01-18 18:10:31 -05:00
Zotyamester
c039c51d77 Mail: fix memory leak on realloc
Fixes #9873

Change-Id: I274fc61359c34ada1088994f65f3d3c762297176
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2069
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
2020-01-18 19:39:51 +00:00
Autocomitter
30de32ecb1 Update translations from Pootle 2020-01-18 08:52:55 +00:00
PulkoMandy
56f9c76088 sparc: boot mmu support
Get enough of the mmu working to be able to allocate memory.

Unlike on PowerPC, we get both address and size as 64bit values. So
adjust of_region to allow this.

Also unlike the PPC port, we do not drive the hardware directly, instead we
rely on the openboot primitives to manage the translation table. This
allows staying independant of the hardware, which is a good idea at
least for the bootloader (we can do actual hardware things in the
kernel)

Change-Id: Ifa57619d3a09b8f707e1f8640d8b4f71bb717e2a
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1482
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
2020-01-18 03:32:29 +00:00
PulkoMandy
011b188df0 boot fatfs: fix misaligned access on sparc.
Change-Id: Id4d0a93ce13b5e5d479896dbfc10d71de1ba52c6
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1987
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
2020-01-18 03:29:27 +00:00
PulkoMandy
959588394d openfirmware: more fixes for 64bit systems.
Gets call-method working for sparc, and fix more places where we
accidentally truncate 64bit values or sign-extend 32 bit ones.

Change-Id: Ic79c55ffa8d2b475858def1639004412f17dd0c1
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1986
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
2020-01-18 03:29:27 +00:00