haiku/headers/private/bluetooth
Augustin Cavalier bb83316a58 L2CAP: Major refactor of the whole component.
(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.
2024-05-01 00:25:43 -04:00
..
BluetoothIconView.h Bluetooth Pref: Updating view of incomming connection when Paring 2021-03-30 17:25:13 +00:00
CodeHandler.h Fix mask and endline style 2010-01-03 21:19:47 +00:00
CommandManager.h WIP... Updating Bluetooth. 2012-08-27 19:23:22 +00:00
ConnectionIncoming.h Bluetooth Pref: Inactiveate button and things that don't do anything. 2021-04-10 20:28:43 +00:00
ConnectionView.h Bluetooth Pref: Inactiveate button and things that don't do anything. 2021-04-10 20:28:43 +00:00
PincodeWindow.h Bluetooth Pref: Inactiveate button and things that don't do anything. 2021-04-10 20:28:43 +00:00
PortListener.h Â- Use given macro for system team, thanks Jerome 2010-04-02 13:37:16 +00:00
bluetoothserver_p.h bluetooth_server: Nuke the weird logging system, just use macros... 2016-05-07 21:10:34 -04:00
btCoreData.h L2CAP: Major refactor of the whole component. 2024-05-01 00:25:43 -04:00
btDebug.h btDebug: Fix duplicate "bt: " in CALLED entries. 2024-04-26 16:21:19 -04:00
btModules.h - Move bluetooth net_device module to a independent module HCI, remake API interfaces 2010-01-17 15:46:36 +00:00
debug.h Adding debug file to bluetooth. 2013-01-12 20:01:28 +01:00
l2cap.h L2CAP: Major refactor of the whole component. 2024-05-01 00:25:43 -04:00