Commit Graph

65753 Commits

Author SHA1 Message Date
Augustin Cavalier
94d33dcbb6 XHCI: Rework _LinkDescriptorForPipe to avoid double-links.
The previous logic would link from the end of the ring to the start,
and the TRB there would always itself be a link TRB. Now, we avoid this
by linking back to the start from within the TD segments, and putting
the "Event Data" TRB there.

May help with some problems.

Change-Id: I92c4e135ee28c8c89646594a99fb40ee0d6c4484
2024-01-26 17:36:26 -05:00
Augustin Cavalier
45436c7a67 freebsd_iflib: Remove workaround for multi-packet receive.
Following the last commit, we can just let if_input
process the whole chain at once.

The logic here may not have been correct, and possibly
caused memory leaks under high-traffic conditions.

May help with #18585 and others.
2024-01-26 16:02:48 -05:00
Augustin Cavalier
9504fccf29 freebsd_network: ether_input needs to support multiple packets.
It does on FreeBSD, though not many drivers make use
of this functionality (on Haiku, only iflib appeared to,
and it has a workaround at the moment.)
2024-01-26 16:00:13 -05:00
Augustin Cavalier
17aa6d0125 IPv4: Make header fields go out of scope when no longer usable.
There was a comment indicating where this happened, but then
there was a use of one of them after this point. Fix that,
and add { } around their use to prevent this from happening again.
2024-01-26 14:32:59 -05:00
Alexander von Gluck IV
6738595a67 build-packages/x86_64: align gcc to current repo gcc
* Tested no issues on boot.

Change-Id: I2825ac8614172d649d1821a7a6c25e6cf63f716f
2024-01-25 12:31:48 -06:00
Humdinger
cdae7cfdbe Add a descriptive contents of the Haiku-Extras package
Good to know what's included. Also when searching stuff in HaikuDepot.

Change-Id: Ia87e657075e8066d4b460194c2ba19f6f4715f15
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7345
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
Haiku-Format: Haiku-format Bot <no-reply+haikuformatbot@haiku-os.org>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
2024-01-25 11:57:01 +00:00
Humdinger
15037a29f1 Move TV app into haiku_extras package
As discussed at
https://discuss.haiku-os.org/t/what-does-the-tv-program-do/14511

Change-Id: I7d9501cad2b9d4b3c6898ec39398101727c2eee8
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7344
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
2024-01-24 09:56:30 +00:00
Jérôme Duval
b352d8ccd8 virtio_gpu: add the accelerant to the regular image
fix 32-bit warnings

Change-Id: If85acfce1ac93998c13e5d9fa2e02823e219e428
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7342
Haiku-Format: Haiku-format Bot <no-reply+haikuformatbot@haiku-os.org>
Reviewed-by: X512 X512 <danger_mail@list.ru>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
2024-01-24 09:54:55 +00:00
Humdinger
3ab43722bf MIMEManager: use lowercase MIME when calling GetSupportingApps()
The list of supporting applications is generated case-insensitive
by making all items lowercase, see
src/kits/storage/mime/SupportingApps.cpp:302

Force the MIME type to lowercase before calling GetSupportingApps()
or a MIME containing uppercase isn't found.

Fixes #18752

Change-Id: I38252cd1be8f059d7df4bf8775855b6343a489c0
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7340
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
2024-01-23 09:49:30 +00:00
Jérôme Duval
591a1d179a AdapterIO: add FlushBefore() to strip the beginning of the MallocIO object
by default, AdapterIO is initialized with a BMallocIO object, which will
be extended indefinitely. Flushing regularly is necessary to avoid
excessive memory usage. Tested in StreamRadio.

Change-Id: I9f3142c0a2300ad44dc54ccf6932d41c9526320b
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7302
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
2024-01-23 09:49:17 +00:00
Andrew Lindesay
88af15cfbd HaikuDepot : Refactor Screenshots
Rework the way in which the application deals
with screenshots so that there is a repository
of screenshots that is referenced from
identifiers on the package model and not that
the screenshot bitmaps are stored with the
model and not cleaned up.

Change-Id: I632def96852a518b3f6b1c8b81909de117bbbc54
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7296
Reviewed-by: Andrew Lindesay <apl@lindesay.co.nz>
2024-01-21 09:26:50 +00:00
Autocomitter
136aeaaa47 Update translations from Pootle 2024-01-20 08:21:36 +00:00
Augustin Cavalier
aeb3a97aba XHCI: Properly handle "Length invalid" and erroring TRBs on the endpoint ring.
Should improve #18432 and other tickets.

Change-Id: Iaafe2d9d61bc0514e4dd6283b9e75496d5e2d44a
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7341
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2024-01-18 19:14:04 +00:00
Jérôme Duval
0b733c9c80 virtio_gpu: initial driver
sample for qemu: -device virtio-vga,edid=on,xres=1024,yres=768 -display sdl
display mode can be set in the Screen preferences.

Change-Id: If1d6aeecb208ce7c62c42eea1a95c71237c4375a
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7038
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
2024-01-18 17:44:40 +00:00
Augustin Cavalier
a2270c7035 kernel/vm: Avoid committing memory in vm_map_file for PRIVATE_MAP without PROT_WRITE.
Instead, rely on commitment being done later, when the
protections are changed. set_area_protection() already
did just that, but set_memory_protection did not, so
it is implemented here.

Fixes #18733.

Change-Id: Ia58aee93faf1296fce69d723b12d0fa0a8440706
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7339
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2024-01-17 20:21:30 +00:00
Jérôme Duval
33fb08b1a5 ccp: add new IDs
Change-Id: Id9b2512d9f3b44d6ea25cb939dfd3054fe07600a
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7338
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2024-01-16 17:09:34 +00:00
Jérôme Duval
84cc2b9655 random: move virtio in a subdir
Change-Id: Idd776d6599613807c611cc6f72d8c1d2b9234946
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7337
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2024-01-16 17:09:34 +00:00
Jérôme Duval
21d87cd45a app_server: recursive scan in /dev/graphics/
* /dev/graphics/virtio_gpu/0 is a valid entry
* app_server doesn't set the initial mode if it's identical; use
0x0 as initial resolution.

Change-Id: Ica0323e6c5d78b39f05499edc93fa9c949b97dc8
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7037
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
2024-01-16 07:09:47 +00:00
Augustin Cavalier
e5e1f48bf5 PCI: Convert constant missed in prior commit. 2024-01-15 15:24:58 -05:00
Augustin Cavalier
fabb71cc0e PCI: Support more than 6 PCI memory ranges.
Also use the standard kernel-wide constants for IO or memory space
rather than defining new ones, as well as the PCI constants for
address types.

Change-Id: Iad03f7666ad5121a5c9a398339aa1a191339a1d1
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7336
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2024-01-15 20:18:57 +00:00
Augustin Cavalier
6533df4fe4 iaxwifi200 & idualwifi7260: Synchronize with OpenBSD. 2024-01-15 14:12:49 -05:00
Augustin Cavalier
7bcc4a30f9 openbsd_wlan: Synchronize net80211 with OpenBSD. 2024-01-15 14:12:09 -05:00
PulkoMandy
8e4a60d3f1 PCI: handle "non fixed" addresses
If the max address for a PCI bus is not fixed, try to compute it from
the minimum and length (if available).

Change-Id: I23d87da32779d22324f944b5b359390f523ec7a7
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7111
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2024-01-15 18:44:39 +00:00
Autocomitter
a38355a483 Update translations from Pootle 2024-01-13 08:20:56 +00:00
Andrew Lindesay
b72cc7f405 HaikuDepot : Fix Compile Warnings
Change-Id: I3f44eb33d26c1236de2b132a27ca3ad4ddb0bbc1
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7298
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
2024-01-11 09:20:37 +00:00
Augustin Cavalier
2fb174a701 kernel/fs: Add missing initialization. 2024-01-10 12:51:10 -05:00
Jérôme Duval
77cf55c4ad kernel/vfs: create_vnode should also create non existing entries when traversing
Fixes #18355.

Change-Id: I96abb95c14a74bcf9fec802badeb16c978a3b3d1
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6321
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2024-01-10 17:43:46 +00:00
Augustin Cavalier
79c0b6288f kernel/fs: Make vnode_path_to_vnode and derived methods take VnodePutter&.
Upcoming changes will make this method return values in _vnode even
when they return error codes under some conditions. To avoid easily-
caused memory leaks, this commit refactors the output variable to
be VnodePutter&, and all consuming methods to thus make use of Putters.

Should not be a functional change.

Change-Id: Id7b9066f8cd50c159d52c921b16e475e4e1de806
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7301
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2024-01-10 17:43:46 +00:00
Jérôme Duval
96bad7685b PowerStatus: add state "Not charging"
some laptops decide to not charge a fast full battery to not consume a cycle.
In this discharging state, the current rate is zero, thus no time left can be computed.
We add a state "Not charging" to clearly differentiate and avoid user confusion.
PowerStatus was triggering low battery notifications, this is also fixed.

Change-Id: I4745c78eb0863ab01fe34cb065707d068cff0f0e
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7300
Reviewed-by: Fredrik Holmqvist <fredrik.holmqvist@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
2024-01-09 04:07:05 +00:00
Augustin Cavalier
bb09458028 kernel/vfs: Convert from custom VNodePutter to the generic VnodePutter.
The latter is actually an AutoDeleter based on CObjectDeleter.
No functional change intended.
2024-01-08 15:14:09 -05:00
Augustin Cavalier
76f69a9e77 kernel/fs: More usage of FileDescriptorDeleter.
Remaining non-uses are mostly in specialized functions that e.g. operate
on many file descriptors at once (like vfs_exec_io_context.)

Reduces "goto"s. Should not have any functional change.
2024-01-08 14:57:38 -05:00
Augustin Cavalier
1bde6f6c36 kernel/fs: Standardize AutoDeleters for file_descriptor on FileDescriptorPutter.
No functional change intended.
2024-01-08 14:52:14 -05:00
Augustin Cavalier
fa766875af kernel: Rename DescriptorPutter to FileDescriptorPutter.
For consistency. No functional change.
2024-01-08 14:11:30 -05:00
Augustin Cavalier
1322e37a03 docs/user: Fix typo. 2024-01-08 14:07:53 -05:00
Augustin Cavalier
12bba3817d nvme, mmc: Fix SMAP violations in B_GET_MEDIA_STATUS.
Fixes #18736.
2024-01-06 12:07:25 -05:00
X512
3433ec7334 vfs/preallocate: fix file descriptor leak
Fixes #18724.

Change-Id: I1a17a36106d13853888342a397ecd03087b1fdcf
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7299
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2024-01-06 15:20:09 +00:00
Autocomitter
cfcb53d90a Update translations from Pootle 2024-01-06 08:17:18 +00:00
Jérôme Duval
fffd9d7dd4 AdapterIO: only for SEEK_SET is the position absolute
Change-Id: I8debbcc0a2d9e499bebcebe5361475737dc8f9f0
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7295
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
2024-01-04 15:06:37 +00:00
X512
21fa9b3bb4 registrar: use smaller minimal timer interval
Fixes #4576.

Change-Id: Ie0788ba9b48597bb9cead20b3125af251b5b59cf
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2888
Reviewed-by: Fredrik Holmqvist <fredrik.holmqvist@gmail.com>
2024-01-03 19:18:46 +00:00
Adrien Destugues
8d27b645e7 features.h: fix build when BSD headers are not in include path
In our C library we try to provide a "clean" POSIX/ISO-C set of include
files that strictly conforming applications can use. However, we also
want to provide some extensions that are commonly available in BSD or
GNU systems.

These are normally provided in a separate directory
(headers/compatibility/bsd) and additionally guarded by compiler defines
that can either be explicitly set, or enabled by default if the language
standard (selected from the compiler command line) is one with GNU
extensions (this is the default for GCC). This is controlled by a header
file called features.h.

However, for some headers it is not so simple to split the GNU
extensions apart from the other parts of the file, because it's not just
extra functions, but additional flags and defines.

So, we need the "features.h" mechanism to be available even in the base
set of headers, but not enable anything if the BSD headers are not in
the search path. The simplest way to achieve this is to have an empty
features.h in the base set of headers, that can then be overriden by the
one in headers/compatibility/bsd if needed.

Fixes #18732

Change-Id: Ia54d1206c2fba378ae276ed4232aee8443180afb
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7287
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
2024-01-03 17:11:56 +00:00
John Scipione
4fc18643b9 Keymap: Put status icons inside menu fields
Draw warning and stop icons on top of the menu fields instead.
Remove conflict views, create a new file to hold StatusMenuField
and StatusMenuItem. Set the icon with them instead.

Change-Id: If6c00199f24ac4f4fc789f12cc6cdcd7a912418f
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7209
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
2024-01-03 03:26:27 +00:00
John Scipione
f99596f4e3 Icon-O-Matic: Fix crashes while auto-scrolling
This fixes crashes that happen when scrolling list views in Icon-O-Matic
triggered by the BListView auto-scroll feature reintroduced in hrev57439.

Take out the auto-scrolling code from Icon-O-Matic, call BListView's
MouseMoved() instead since BListView's can scroll now. The BListView auto-
scroll feature has been updated to work with draggable multi-select.

ScrollTo(index) method has been moved from Icon-O-matic to BListView and
is used to scroll to an index instead of a selection since the selection
doesn't change while you are dragging.

Override BListItem's DrawItem() method to prevent it from drawing. I've
hijacked DrawItem()'s complete param to mean even or odd instead.

Everybody draws the same background PathListView.cpp and StyleListView.cpp
now push the frame over and draw text using SimpleListView parent class
DrawItem() instead of repeating the drawing code.

InitiateDrag got moved from the abstract DragSortableListView class to the
SimpleListView implementation class.

The following color constants have been added:
rgb_color kDropIndicatorColor = make_color(255, 65, 54, 255);
rgb_color kDragFrameColor = make_color(17, 17, 17, 255);

First one is the red drop target indicator line. It has been changed to
clrs.cc red which is the same as B_FAILURE_COLOR, but I didn't want to use
that InterfaceDef constant as it doesn't indicate failure in this case,
it's just a slightly different red.

Second one is the drag selection outline, it has been changed from pure
black to clrs.cc black which is a shade lighter than pure black.

Fixes #18707

Change-Id: Ib0b375d7d5641d458a6ce004a6dfeac551636698
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7215
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
2024-01-03 03:24:13 +00:00
PulkoMandy
2f719499aa ffmpeg: update dump_ffframe_video for ffmpeg6
- coded_picture_number, display_picture_number and key_frame are deprecated
- dump all of the frame flags
- add missing entries in the picture type list

Change-Id: I64f0f20833f9cf3f31f77b26b464b36f68a67998
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7251
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
2024-01-03 02:14:17 +00:00
PulkoMandy
c020b0832c ffmpeg: remove unused and broken video framerate computation
ffmpeg already provides us with a framerate if it is known at the stream
level. If it is not known at this level, the framerate may not be fixed
througout the video, and so the best thing to do is to leave the media
kit field_rate unset, and let applications handle frames according to
their presentation timestamps as they come (this is what we had been
doing anyway, the code to output the framerate to the media kit had been
commented out for a long time and the computed value was not used)

Since ffmpeg removed the ticks_per_frame field [1], the code would not
compile anymore with later ffmpeg versions.

[1] https: //patchwork.ffmpeg.org/project/ffmpeg/patch/20230507133255.20881-12-anton@khirnov.net/

Change-Id: Icc0988c507965883a1570e46f904ebf235fb71bc
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7247
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2023-12-31 20:48:32 +00:00
Augustin Cavalier
141cc59300 TCP: Actually invoke SendQueued when the window widens.
IMMEDIATE_ACKNOWLEDGE invokes SendQueued ... but with
a send window size forced to 0, so it just generates an
ACK (or a duplicate ACK as the case may be), and doesn't
actually trigger sending of data.

So, adjust the check, introduce a new action flag, and
invoke it properly.

Fixes traffic stalls caused by waiting for the
persist timeout to occur.

This amends hrev51540 (yes, from 2017.)

Change-Id: I6344463938cfaa0134bb8cf3e224789cded0987c
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7285
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2023-12-31 03:36:27 +00:00
Augustin Cavalier
d7c71d7b49 TCP: Coalesce more ACKs in DelayedAcknowledge.
First, we don't need to generate ACKs for every other
segment received, only every second full-size segment
or within 500ms, as the comment notes. So check the
receive window size before deciding to send an ACK
immediately.

Second, let the timeout routine handle sending the ACK
even in the immediate invocation case. This way, we
don't spend time in receive routines waiting for the
send path locks, and also multiple packets received in
quick succession will have one ACK generated instead of
many.

Also, following the previous commit, the timeout routine
will avoid generating duplicate ACKs now. In the case
where a duplicate ACK really needs to be generated,
DelayedAcknowledge won't be used anyway.

Inspired by ambroff's remarks and patch in
comment:14 of #18203.

Greatly reduces the number of ACKs generated,
and increases throughput due to less duplicate ACKs
causing congestion logic to kick in.

Change-Id: I37991464b1a802aceb3e2b453df8dc4cb2e14ce5
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7284
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2023-12-31 03:36:27 +00:00
Augustin Cavalier
5e7d399ef4 TCP: Check state in Persist and DelayedAcknowledge timeouts.
As the comment already notes, it's possible that we wind up
in the timeout routine despite the timer being cancelled, if
the cancellation was done after execution was in progress.

In either case, do not invoke Send if there is nothing to do,
as invoking Send...(force = true) will generate a duplicate ACK.
Duplicate ACKs will be noticed by the remote end as a sign of
congestion, so we don't want that to happen.

Change-Id: Iac30c140c322ccf0b0477e434459e7674bc24e1a
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7283
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
2023-12-31 03:36:27 +00:00
Augustin Cavalier
265e1e4d6a TCP: Update implementation comment at the top of the file.
A variety of things marked "not implemented" actually are,
at least partially, but the comment was not adjusted.

Change-Id: I760cca8ef3f601d27c0143f7dc75f5049d02f899
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7282
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
2023-12-31 03:36:27 +00:00
Augustin Cavalier
6b7fde3300 tcp_shell: Don't include dropped packets in the dump.
Otherwise it's just confusing.

Change-Id: Ic88550c05a957b06917cfc08d1163ffe5b2e0652
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7281
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2023-12-31 03:36:27 +00:00
Augustin Cavalier
dc8bc8c1ce tcp_shell: Add send_loop command.
Useful for sending more data than fits in one buffer.
With "send_loop 100m", the traffic stalls are readily
reproduced.
2023-12-30 16:30:14 -05:00