#
bb83316a |
|
26-Apr-2024 |
Augustin Cavalier <waddlesplash@gmail.com> |
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.
|
#
ee014562 |
|
10-Jan-2010 |
Oliver Ruiz Dorantes <oliver.ruiz.dorantes@gmail.com> |
- Add macros to distingish between requests and responses git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34999 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
7a3a199a |
|
22-Nov-2008 |
Oliver Ruiz Dorantes <oliver.ruiz.dorantes@gmail.com> |
Add flags to handle the status of the configuration of the channel git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28716 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2c6619e4 |
|
14-Oct-2008 |
Oliver Ruiz Dorantes <oliver.ruiz.dorantes@gmail.com> |
Styling and define module path outside the driver git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28105 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
696b8e46 |
|
09-Aug-2008 |
Oliver Ruiz Dorantes <oliver.ruiz.dorantes@gmail.com> |
Move header to private, is meant to be used by acl component as well git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26903 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ee01456254328fdecaea89a5f6cc54f2eedd00fc |
|
10-Jan-2010 |
Oliver Ruiz Dorantes <oliver.ruiz.dorantes@gmail.com> |
- Add macros to distingish between requests and responses git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34999 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
7a3a199ad5aa143d44f6dd08b4e639fbfd653f9a |
|
22-Nov-2008 |
Oliver Ruiz Dorantes <oliver.ruiz.dorantes@gmail.com> |
Add flags to handle the status of the configuration of the channel git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28716 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2c6619e446da9eb6027e256ade74c8325fba3544 |
|
14-Oct-2008 |
Oliver Ruiz Dorantes <oliver.ruiz.dorantes@gmail.com> |
Styling and define module path outside the driver git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28105 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
696b8e46f3434bdffdd5971ee3b3cb4349d3ba0a |
|
09-Aug-2008 |
Oliver Ruiz Dorantes <oliver.ruiz.dorantes@gmail.com> |
Move header to private, is meant to be used by acl component as well git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26903 a95241bf-73f2-0310-859d-f6bbb57e9c96
|