(And surrounding portions of the "btCoreData" module.)
* Rewrote the main "l2cap.h" header representing protocol constants
and structures. Now conforms to general Haiku naming conventions
rather than BSD ones. Some more constants added/removed based
on the most recent Bluetooth specification.
* Rewrote all code derived from the BSDs to match Haiku conventions
and structures in the driver.
* Dropped the "channel" and "frame" structures from "btCoreData".
Channels are now managed by L2capEndpoints, and "frames" are
now just plain net_buffers without surrounding structures.
This also makes state management much simpler.
* Made it so that actual net_buffers are passed through to the
l2cap_receive function rather than another data structure.
A fake interface address is used to communicate connection
information. (This probably ought to be changed, though.)
* Get rid of l2cap_lower and l2cap_upper abstractions.
Everything related to channel/endpoint management is now
done in L2capEndpoint, while buffer reception is handled
directly in l2cap_receive and elsewhere, same as other drivers.
* Wire up more hooks and fix module flags (needed to be able to
get the module loaded and opening sockets at all.)
* Implement an actual locking strategy in L2capEndpoint
and HciConnection. There's still problems with lifetime
management, but at least thread-safety is mostly handled.
* Create an L2capEndpointManager and use it to manage
the endpoints, rather than having a single (unsafe)
linked-list.
And plenty of other refactorings and cleanups besides.
There's still more to be done for Bluetooth overall, though:
* The "btCoreData" and "hci" modules also badly need a major
overhaul, and should be merged into a single "bluetooth"
bus_manager. They also shouldn't be passing around pointers
to other modules like this.
* There's a number of TODOs/FIXMEs in the L2CAP module, most
notably around timeouts (especially command timeouts) and
parameter validation/specification.
Tested by myself with kallisti5's help. Incoming connections
(on the PSM for SDP) get all the way to the latter half
of the Configuration step before hanging.
Errors are now enabled for all audio drivers.
Change-Id: Ia4e986f0ed8965376c3bbefc3d9f04bcd68ad561
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7621
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Alexander von Gluck <alex@terarocket.io>
The compiler complains about implicit declaration of free and calloc
despite stdlib.h being included. I think it's because of -ffreestanding
being used on the command line?
Change-Id: I57c3899e5034d1c2ee9cb6c1ed4c92aa818b53ea
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7619
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Alexander von Gluck <alex@terarocket.io>
These have never been included in the Haiku build as far as I can see.
All the soundcards they support are already handled in the auich dirver.
All the IDE driver that ichaudio claims to support, I'm not sure why they
are in an audio driver.
One of them was written for BeOS and never updated for Haiku
multi_audio, and the other was apparently some experiment that didn't
get anywhere in the end. To avoid confusion, let's keep only one driver.
Change-Id: I5bf48e7dd2c5340e84a1ab4eb3e3b079103b7988
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7604
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
- use shared (updated) util.c for memory allocation
- disable functions that are currently not used (ac97 suopport)
Untested, I don't have the hardware.
Change-Id: I9c406e46af94dfc213cfa258c5f375da3c0c719d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7603
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Alexander von Gluck <alex@terarocket.io>
Move util.c from auich (the most up to date version) to the parent
directory of ac97. Use it also for auvia. This means changing several
physical addresses to use phys_addr_t instead of pointers, and declaring
buffers allocated by alloc_mem to be user-accessible or not.
Untested, I don't have the hardware.
Change-Id: I2ababc713384cbf34174fbcecfb3595547a1fd97
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7602
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Alexander von Gluck <alex@terarocket.io>
There seem to be a gcc2 bug resulting in bitfields of uint32 type being cast to int.
The bitfield is mostly not needed here, since the fields are 8, 16 or 32
bits, so just use the appropriate types.
Change-Id: Ie4297db8bcda8ca0937c7f55915b318a1f4f6e55
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7599
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Requires HaikuPorts#7573 to be merged.
Closes#17836.
Smoke-tested on beta4 32 bits:
Gutenprint printer addon loads libgutenprint.so.9.5.0, shows new
printer models from where to choose from at "install new printer"
time, and "prints something" when using the Print-To-File transport.
Change-Id: Ia40dfd3c2163795e83c2cc173fd510d64c4bf6c9
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5969
Haiku-Format: Haiku-format Bot <no-reply+haikuformatbot@haiku-os.org>
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
Change-Id: I45b3fbe0b4ec014d185ea8c3ed8798ae316e54a9
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7554
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
Haiku-Format: Haiku-format Bot <no-reply+haikuformatbot@haiku-os.org>
Partial change, for testing on x86_64. You need to build with
-sHAIKU_NO_DOWNLOADS=1 and manually provide the needed packages in
generated/downloads.
Confirmed working on x86_64. Other platforms will need similar updates.
Change-Id: I81ca4b1d81bd18e64f50250970e00e0a072072d3
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7278
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
* Update bash to a less-buggy working native build.
* Add file for python3
* Add readline for bash
* Update xz_utils to a working native build.
Change-Id: Iedfcb8277b242ea43a2fd870850057429c6b09e0
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7528
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
It has been replaced by Noto as the default font for CJK characters and
is not referenced anywhere else anymore.
Change-Id: I9eb706531deb44395d71e0a04b0ec5e2f2dea230
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7499
Reviewed-by: nephele nephele <nep-git@packageloss.eu>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
* our ip modules don't support connect()/send(). Just use sendto().
* ping6 disappears, ping supports -4 or -6 to force IPv4 or IPv6
Change-Id: I1e982e354cc75d3a314c5bbbfffa0373e8f4d9af
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7427
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
* Non-x86 will likely break until they get an updated icu74
build-package
Change-Id: I5762d14f848e1c4e9b837e1dea9c1a54efa8401d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7346
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
Requires multiple media server restarts to switch
outputs to it, but that's a known media services
problem (#12777 and #12776.)
Input doesn't work quite right with the hardware
I've been testing with, but that's also a known
problem it seems (#9951). Meanwhile, output
seems to work pretty well, once it gets going.
Also fix the broken DeskBar symlink for TV.
Change-Id: I23a9cc5cf3e3d0c6ae1608a3b96a37e9a8c431a2
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7362
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
* Rename the "tun" network device to "tunnel". FreeBSD calls theirs
"tuntap" but speaks of both TUN and TAP devices as interfaces for
tunnels. The other BSDs seem to do likewise.
* Fold the "tun" driver into the "tunnel" network device. The
network device now publishes entries in devfs when interfaces
are created, and unpublishes them when interfaces are destroyed.
This removes the need for the driver and device to communicate
through a file descriptor, and thus allows the receive queue
to be totally eliminated, massively simplifying that logic.
* Use standard net-stack FIFOs instead of TCP BufferQueue, which is
specialized to TCP's needs in far too many ways. Thanks to the
previous commit adding support for interrupting semaphore waits,
we can use the FIFO wait mechanisms, too.
* Restructure the TAP logic, and generate MAC addresses more like
Linux does.
* Actually set type = IFT_TUN, and use the "loopback" frame handler
instead of the "ethernet" frame handler. This allows significant
cleanup of the header handling logic.
* In TUN mode, reject packets that don't look like IP packets.
* Delete "tunconfig"; it was mostly stubs and is now unnecessary.
TUN mode tested and confirmed as working by kallisti5 with OpenVPN.
TAP mode partially tested, but not yet confirmed as working.
Fixes#18673.
Change-Id: Ibd803139474e8db556a4f567901da15ee4083621
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7143
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
The previous commits have cleaned all the remaining ones.
Change-Id: I6b12ba4f23779f3e2e4fd5a00c6acfaaeb50f4d6
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6804
Reviewed-by: Fredrik Holmqvist <fredrik.holmqvist@gmail.com>
* We might as well "try as hard as we can" to get build files.
* With this setting, DNS resolution errors count as retryable
errors. wget will retry to get files up to 20 times by default.
* Should improve build relability on less-than-ideal network
connections. (aka, a brief network disconnection shouldn't stop
a local build if possible)
Change-Id: I39652fafb5eee237c463e1b777b1057ee1d53db1
There are now some system headers (e.g. <stdatomic.h>) that have outright
different versions for C and C++ which are not compatible with each other.
Change-Id: Ibf797e0817f0fe4d5241424d7d06023b19888c02
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6991
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
* 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>
This disables -Werror for the use of old GCC extensions listed here:
https://gcc.gnu.org/onlinedocs/gcc/Deprecated-Features.html
We do not apparently use any of those anymore (if we ever did). I think
this was accidentally enabled at the same time as
deprecated-declarations (which we still need, for example because we
still have some uses of auto_ptr).
Change-Id: I147276b42d9d066df56e8b135bc8fd885dc937a7
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6798
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
The main motivator is the update to GCC 13. As part of this, some of the other
dependencies have been updated as well.
Newly introduced:
- gawk on x68_64 (new dependency of texinfo)
- libjx (new dependency of haikuwebkit)
- openexr30 (new indirect dependency of haikuwebkit)
- brotli (new indirect dependency of haikuwebkit)
On x86_gcc2, some packages have switched to the modern GCC version:
- diffutils
- findutils
- libpsl
- tcpdump
Change-Id: Ic617b5b4af9eb34c0d28259a3c0ddbcc33f98a5d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6772
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>