Commit Graph

51105 Commits

Author SHA1 Message Date
Augustin Cavalier
3c47c28a67 kernel/port: Let the mutex take care of cloning the name.
This way, we can just call mutex_destroy to take care of
freeing it. No functional change intended.
2019-11-23 14:05:17 -05:00
Augustin Cavalier
0bf9e7cb16 bfs: Use StackOrHeapArray in Journal::_WriteTransactionToLog().
The number of iovecs is usually < 8 (64 bytes), so this avoids
a lot of unnecessary heap traffic. Plus, we don't have to call
free() manually anymore.
2019-11-23 12:58:06 -05:00
Augustin Cavalier
26b95c15f2 freebsd_network: Completely overhaul bus_dma implementation.
The old implementation was based on an ancient copy of the FreeBSD
busdma code for x86, and did not make a bunch of assumptions that
we make basically everywhere else (for instance, that we can request
arbitrarily-aligned contiguous physical memory from the VM.)

As a consequence, it had a significant amount of code devoted to
bounce pages, which are just a waste of resources on x86, and
for that matter, probably any other architecture Haiku will ever
be ported to. (Even if we do need to run on some system where
only a small portion of system memory can be accessed by devices,
likely we would reserve that memory for just this occasion anyway.)

I was initially under the impression that the bounce-pages code
never turned on, but apparently due to the "alignment" check
(and also the "Maxmem" check, which was to defined to 32KB...?!)
it does indeed activate on a variety of systems, and maybe
(in the case of drivers that do not call sync() properly) even
is the cause of some of our ported driver breakage.

The new implementation is pretty much optimized for Haiku,
and shares almost no code or structure with the old one (save
for a few functions that really only have one proper implementation.)

Tested with ipro1000 and rtl81xx. Regressions are more than possible,
so please don't hesitate to file bugs if your network driver now
fails to come up (or you get KDLs.)
2019-11-22 22:19:43 -05:00
Augustin Cavalier
56cb682b80 freebsd_network: Moderate reorganization.
* Rename device.c to device_hooks.c, as this is what it really contains.
 * Rename compat.c to device.c, as it implements the generic "device"
   related functions, both for compat layer internals and FreeBSD
   public ones.
 * Move malloc and related operations out of the now-device.c,
   and place them in a new "malloc.cpp", which also incorporates
   compat_cpp.cpp.

No functional change intended.
2019-11-22 22:19:43 -05:00
John Scipione
a70e506a80 Locale prefs: Select items after drag and drop
in the Preferred Languages ListView.

Change-Id: I423263ba0c6753a278f70e479eb2b711ca1d7670
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1959
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2019-11-22 23:27:53 +00:00
John Scipione
354649f120 Terminal: Add semantic + shortcut to increase font size
See bug #7428 and hrev46251 for details.

Fixes #15452

Change-Id: I3bc8871c83e714ff624827d96c0b594fef1f1ae1
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1957
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2019-11-22 23:27:12 +00:00
John Scipione
ea5c088d09 Tracker: fix fall back to bitmap icon
We can convert a bitmap icon to B_RGBA32 and scale it at the same
time if we pass in the right size to IconUtils. Don't error out,
force the icon_size to be either B_LARGE_ICON or B_MINI_ICON,
grab the bitmap at that size then convert and scale it.

Implement a second fallback. If the scaling and converting fails
then use ImportBits to convert the icon from B_CMAP8 to B_RGBA32
then center it without scaling.

Fill with transparent before drawing bitmap to prevent artifacting.

Fixes #9554

Change-Id: I827589236fa4f1521e3139ec29b7d60d51d2f879
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1960
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2019-11-22 23:25:51 +00:00
John Scipione
e9fa1debf5 Deskbar: Don't allow calendar window to be manipulated
By setting B_NOT_MOVABLE and B_NOT_RESIZABLE flags the calendar window
can't be moved or resized by holding ctrl + alt + left/right mouse button.

Change-Id: If7f280ab6595b32a6c9521051540ffba0c76d211
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1965
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2019-11-22 23:24:55 +00:00
John Scipione
2659cdba83 ScreenSaver prefs: Invoke list item runs test
This copies the behavior of BeOS R5 ScreenSaver prefs.

Don't invoke the listview on AllAttached() anymore, this would make
the selected screensaver start when the pref window opens.

Horizontally center the Test button.

Change-Id: I65471112d37d9efd17945f05bce485ff2fece9dd
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1958
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2019-11-22 23:24:22 +00:00
John Scipione
fb3493dfef BControlLook: Move tab frame drawing into DrawTabFrame()
The tab frame is drawn behind the tabs.

Create a new DrawTabFrame method in BControlLook and HaikuControlLook
that draws the tab frame background.

Until now we've been reusing the DrawInactiveTab method to draw the tab frame
in BTabView. While this works on HaikuControlLook, it doesn't work on other
ControlLook's (such as BeControlLook) that draw their tab frame differently.

Add FBC method to preserve binary compatibility on gcc2 and gcc4.

Move DrawTabFrame method to where _ReservedControlLook1 was in header.

Set rect to area of tab frame in TabView instead of doing the
calculation in HaikuControlLook so that others may benefit.

Change-Id: I513e238914f6d680f495659b6ec902df15555015
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1936
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2019-11-22 23:24:05 +00:00
John Scipione
7e27cd8e6f Deskbar: Update window resize size limits
With B_NOT_V_RESIZABLE ctrl+alt+rmb can be used to resize the window
in undesired ways. Set window size limits to prevent user from resizing
the window beyond the set size limits.

Update window size limits on ScreenChanged()

Fixes #15067

Change-Id: Ia10eafb9860009019be35ec5c244d034861eeae9
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1968
Reviewed-by: Axel Dörfler <axeld@pinc-software.de>
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2019-11-22 23:21:44 +00:00
John Scipione
7586efaf07 PowerStatus: Draw battery without BControlLook
Drawing the battery using BControlLook:DrawButtonBackground does not
work as expected with alternative ControlLook installed. Instead
draw the bevel and gradient without using BControlLook.

Renamed empty to unfilled. Replace single base color with unfilledColor
and fillColor.

unfilledColor appears to have change but it is the same #4c4c4c
(75, 75, 75) color just untinted. Specify the color using hex values.

Put all battery drawing inside the fHasBattery conditional block.

Copy rect to fill and use it to draw the filled area.

Use make_color() to make the unfilled color.

Change-Id: I615c4dc1b9e0206b4ac0259d3183fe691584209b
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1967
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2019-11-22 23:21:29 +00:00
Adrien Destugues
56cddb517d intel_extreme: fix vblank interrupt for Ironlake
Ironlake and SandyBridge use the same layout for the interrupt register.
Previous generations don't use PCH so the interrupt register is
different. Next generations shuffle the bits again to make space for a
3rd display pipe.

Thanks to D3ant for letting me test this on his computer!
2019-11-21 21:11:54 +01:00
Axel Dörfler
b240f0ad50 net_server: Fixed overwriting wrong interface config
* When the "interfaces" file contains a configuration for a missing
  device, the first interface found would be overwritten, irregardless
  of its status.
* Now, _ConfigureDevices() properly honours the
  "devicesAlreadyConfigured" list.
* This fixes bug #14908.
2019-11-21 08:06:33 +01:00
Axel Dörfler
f1271b6454 BPath: Removed superfluous term 2019-11-19 17:35:19 +01:00
CodeforEvolution
89fc6d6aa2 [hey] - Fix overflow issue found by LGTM
LGTM issue: "gets does not guard against buffer overflow"

Change-Id: I502428f167865ac81301aa72d20c91b4480fb3dc
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1926
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2019-11-14 16:57:06 +00:00
Adrien Destugues
0156f4ffef Revert "Installer: Ignore cache directories."
This reverts commit e06f640862.

As mentionned in #15145, the cache directory itself must exist,
otherwise, various applications are broken. A slow install process is
better than a broken install, so, revert for now. A better solution
needs to be found.
2019-11-11 10:56:14 +01:00
Adrien Destugues
9c89ceb807 BTextView: missing archiving of HideTyping()
This was not stored in BeOS, but that looks like an oversight on their
part and adding it is unlikely to break anything.

Change-Id: I5dbaeb85adf97afc5040a3ecc1bff264af0b0b57
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1888
Reviewed-by: Axel Dörfler <axeld@pinc-software.de>
2019-11-06 07:36:20 +00:00
Murai Takashi
192daa430f AutoRaise: Rename include guard
Pointed out by LGTM.

Change-Id: Ia3d1093c8c21fd5bee05e47eb7694c6dd4ecf391
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1930
Reviewed-by: Axel Dörfler <axeld@pinc-software.de>
2019-11-05 12:50:41 +00:00
Murai Takashi
61b433252a Netfs: Fix memory error
In Reader::Read(), memory is allocated to '*buffer' at line 40,
but freed with 'buffer' at line 45.
Pointed by Clang Static Analyzer.

Change-Id: I18e49791da639a6bc2041e944a39ceb73a2e5055
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1931
Reviewed-by: Axel Dörfler <axeld@pinc-software.de>
2019-11-05 12:46:22 +00:00
Humdinger
715a29f47d GLife: fix 'Grid life delay' slider label
Also, sentence case all labels.

Change-Id: I5c7869581eec220f5d4fb67073d914245e9b5ffd
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1928
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2019-11-04 16:47:49 +00:00
François Revol
9efa7fd520 kernel/m68k: Fix a few build regressions around types
Change-Id: I17e5452bc6abd6311c9631f88d199cb9c4f501c4
2019-11-03 03:50:32 +01:00
François Revol
494acd2185 m68k: update build to support MultiBootSubDirSetup
Change-Id: Idbbbb089286ad7d76f61993670a20d240bfe773c
2019-11-03 03:50:32 +01:00
François Revol
9ad59bd841 kernel: arch_vm_set_memory_type takes a phys_addr_t now
Change-Id: I94a8f8453238a9ed2b2ac549d9b500c83e6c53b8
2019-11-03 03:47:57 +01:00
Alexander von Gluck IV
9d010ea47d fdt/serial: Make uart search more agressive. Examine /chosen for serial devices
Change-Id: Icc1673b331d9afb3a7b34c91e7b1f20c3dee964a
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1871
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
2019-10-29 13:35:36 +00:00
brjhaiku
8f40380d6a btrfs: update superblock checksum on write
Note there are 32bytes on disk for the checksum, but only the first 4
are used. This is because btrfs can (or could, at some point?) use
sha256 instead of crc32 when higher reliability is needed (but high
performance isn't).

Change-Id: I8a2bcf8f462440568d9b3e2d9fbdb7208723bfb9
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1596
Reviewed-by: Chế Vũ Gia Hy <ugen@cinnamon.is>
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2019-10-27 08:54:16 +01:00
Augustin Cavalier
5fb44dff84 Revert "btrfs: update superblock checksum on write"
This reverts commit caf05af5dd.
2019-10-26 17:48:11 -04:00
Axel Dörfler
09250fd50f debug_server: Be a bit more enthusiastic
* Improved the "Oh no!" text of the button.

Change-Id: I9b15f3dccca24a5e394d42890985fd42c49f7587
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1925
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
Reviewed-by: Stephan Aßmus <superstippi@gmx.de>
2019-10-25 07:26:50 +00:00
brjhaiku
caf05af5dd btrfs: update superblock checksum on write
Change-Id: I8a2bcf8f462440568d9b3e2d9fbdb7208723bfb9
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1596
Reviewed-by: Chế Vũ Gia Hy <ugen@cinnamon.is>
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2019-10-24 19:28:03 +00:00
Adrien Destugues
175e599a66 btrfs: document that we don't need get_vnode_name
Change-Id: Iffea088f7234ab7d458ed0cabc4ded0aa50009c2
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1617
Reviewed-by: Chế Vũ Gia Hy <ugen@cinnamon.is>
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2019-10-24 19:27:28 +00:00
Augustin Cavalier
c903bc728b freebsd_iflib: Fix usage of kobj_lookup_method.
Should solve #15441. We should probably enable -Werror=incompatible-ptr
globally to avoid this in the future...
2019-10-23 21:11:42 -04:00
Humdinger
894c9f268c Localizing "Attributes" tab of InfoWindow
Change-Id: I38bacade1f7e9648e7ef80ca39cc197410e7114f
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1923
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2019-10-20 16:51:03 +00:00
Axel Dörfler
8208b16279 app_server: Fixed RemoteDesktop font selection
* font_direction was written as uint8, but read as enum; it's not even
  used at the moment.
* RemoteDesktop now uses the correct font again.
2019-10-20 13:59:04 +02:00
Humdinger
6ece979dad Filetypes prefs: missing translations 2019-10-20 08:23:51 +02:00
Augustin Cavalier
e29b7dd85a intel_extreme: Fix TRACE macro format. 2019-10-19 13:26:39 -04:00
Augustin Cavalier
a26a21a5a7 usb_hid: Use user_memcpy in JoystickProtocolHandler::Read().
Also use a MutexLocker object, and fix a potential race around
fCurrentValues.data_size.

Fixes #15404.
2019-10-19 13:12:47 -04:00
Jaroslaw Pelczar
016cc66803 Remove arch_get_caller
Use the gcc builtin instead, which generates more efficient code (it
saves a function call) and means less platform specific code to write
for us.

Change-Id: I1d55b5703027b2ea4ecde2438ea306bd4850eb32
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1859
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2019-10-19 17:03:05 +00:00
Augustin Cavalier
09fafe4c95 ipro1000: Add a missing NULL check.
May help with #15402.
2019-10-19 12:57:27 -04:00
Adrien Destugues
b1c582baf3 intel_extreme: disable FDI training for now.
It just deadlocks, so let's try to go without it and hope for the best?

Should fix #14301

Change-Id: I3cbd6e800a64da31f1fb1f1fb66b088e0298596e
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1899
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2019-10-19 16:50:00 +00:00
Adrien Destugues
ce8f386d86 intel_extreme: extra tracing around overlay memory block init
To help understand the problem in #14276

Change-Id: I334a5cdfa149d335068f2135d13ed729b53fe6ab
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1900
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2019-10-19 16:48:18 +00:00
Adrien Destugues
b8f6e4813d intel_extreme: fix PLL limits for G4x
As for other devices, N=1 makes no sense because N-2 is eventually
written to the hardware register, so wherever these values come from,
they can't be correct. Replace with the values from the Intel manual.

Also fix confusion as to when the + 2 or - 2 is applied to M1 and M2
values. The documentation says M1+2 and M2+2 are used in frequency
computations, but we instead write M1-2 and M2-2 to the registers, so
the M1 and M2 in our limit structs has an offset of 2 from the docs.

Should fix #13694.

Change-Id: I87157154d22a5e6caf622d71a2f0e0b9ff21a2fa
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1902
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2019-10-19 16:45:44 +00:00
Augustin Cavalier
91cc452e90 kernel/fs: Add missing IS_USER_ADDRESS check in user_vector_io.
This reinstates commit 2b5ebfcfd5.

According to the POSIX specification, a NULL iov_base means
"do nothing." So we should treat that as such properly,
and not consider it an invalid address.

Fixes #15356.
2019-10-19 12:42:32 -04:00
Alexander von Gluck IV
761ddb2c4f EFI: Break smp into arch subpath
Change-Id: Ia9438777f1da8ca32f93e0d85229230c809e6711
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1918
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2019-10-16 21:21:15 +00:00
Lukasz Towarek
e3c74f400e Terminal: Add support for extended mouse coordinates
Fixes #11949

Change-Id: I779d1a9af2e3208ba3c055692de5e62b6a7b72fc
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1919
Reviewed-by: Stephan Aßmus <superstippi@gmx.de>
2019-10-16 07:27:31 +00:00
Kyle Ambroff-Kao
d8779e44ee Drop requirement for specifying firmware map size
The HAIKU_FIRMWARE_NAME_MAP macro takes a size parameter to define the
firmware map array type, and then a multi-dimensional array literal is
assigned to the array defined by that macro.

This is error-prone. The idualwifi7260 driver, before this patch, had
the size incorrectly set to 6 when the number of entries was 7, which
sliced the last entry off of the map, making it unavailable to the
driver. After fixing this size, the driver properly loads the
iwm-8265-22.ucode firmware on my computer.

This patch changes that macro to take a const char[][2] literal as its
only parameter, making it less likely for this sort of bug to be
re-introduced.

Fixes #15413.

Change-Id: I78a75e692a8637af0f13d1eb16180ce8d95d0852
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1917
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2019-10-16 00:23:55 +00:00
Pascal Abresch
89cc64ae2b fix detection of video/mp4 files via sniffer rule
Fixes #15297
2019-10-12 18:26:40 +02:00
Humdinger
5ad67ec1e7 FileType panel: use correct label for signature
We used the wrong c'tor for the signature BTextControl, ending up
with the internal widget name as label ("signature" <-> "Signature:").
2019-10-12 08:33:46 +02:00
waddlesplash
fb8915c671 freebsd_iflib: Also NULL-check ctx. 2019-10-10 20:32:57 -04:00
Adrien Destugues
acc0180aac intel_extreme: enable global interrupt bit also for Haswell.
Fixes #13802.
2019-10-10 20:23:39 +02:00
Augustin Cavalier
8af29cccf5 freebsd_iflib: Add NULL check to irq_free.
Should fix #15402.
2019-10-09 20:57:00 -04:00